Работа с внешними обработками в 1С:Предприятие — неотъемлемая часть повседневных задач разработчиков, администраторов и даже опытных пользователей. Но что делать, если нужно передать коллеге ссылку на обработку, интегрировать её в другой модуль или просто сохранить путь для быстрого доступа? В отличие от стандартных объектов конфигурации, внешние обработки хранятся в файловой системе, и их "адрес" не всегда очевиден.
Проблема усложняется тем, что 1С не предоставляет встроенного инструмента для копирования ссылки — её нужно формировать вручную или с помощью кода. В этой статье разберём все актуальные способы: от простого копирования файлового пути до генерации универсальных ссылок через встроенный язык. Особое внимание уделим нюансам для разных версий платформы (8.3.20+ vs 8.2) и типичным ошибкам, которые возникают при работе с путями в сетевых или облачных конфигурациях.
Если вы ищете способ автоматизировать открытие обработок по ссылке — в конце статьи есть раздел с готовыми примерами кода для вставки в модули. А для тех, кто работает с 1С:Fresh или 1С:EDT, мы отдельно рассмотрели специфику облачных решений.
1. Способ №1: Получение файлового пути через проводник Windows
Самый простой метод — найти файл обработки (.epf или .erf) в проводнике и скопировать его путь. Но здесь есть подводные камни, особенно если обработка хранится в базе данных или подключена через Расширения конфигурации.
Чтобы найти файл:
- Откройте конфигуратор 1С:Предприятия (режим
Конфигуратор). - Перейдите в меню
Файл → Открыть.... - В списке типов файлов выберите
Внешние обработки (*.epf). - Найдите нужную обработку в списке последних файлов или через проводник.
После того как файл найден, кликните по нему правой кнопкой мыши, выберите Свойства, а затем скопируйте путь из поля Расположение. Для быстрого копирования можно использовать комбинацию Shift + ПКМ — в контекстном меню появится пункт Копировать как путь.
Если обработка хранится в сетевой папке, убедитесь, что путь доступен для всех пользователей, которым вы отправляете ссылку. Используйте UNC-пути вида \\server\share\folder\processing.epf вместо локальных Z:\folder\processing.epf
⚠️ Внимание: Если обработка подключена через Расширение конфигурации, её физического файла может не существовать — в этом случае используйте методы №2 или №3.
2. Способ №2: Получение пути через конфигуратор (для подключённых обработок)
Если обработка уже подключена к базе, её путь можно узнать через дерево конфигурации. Этот метод работает даже для обработок, хранящихся в базе данных (например, в 1С:Fresh).
Инструкция:
- Откройте конфигуратор в режиме
Конфигуратор. - Раскройте ветку
Общие → Внешние обработки. - Найдите нужную обработку и кликните по ней правой кнопкой.
- Выберите
Свойства. - В окне свойств перейдите на вкладку
Дополнительно. - Поле
Путь к файлусодержит искомую информацию.
Для обработок, хранящихся в базе (без привязки к файлу), поле Это означает, что обработка хранится непосредственно в базе данных (например, была загружена через Путь к файлу будет пустым. В этом случае единственный способ получить "ссылку" — сгенерировать её программно (см. Способ №3).
Что делать, если поле "Путь к файлу" пустое?
Файл → Открыть и сохранена в конфигурации). В таком случае физического файла .epf не существует, и для передачи обработки придётся:
Файл → Сохранить как...;
3. Способ №3: Программное получение ссылки на обработку
Для автоматизации или интеграции с другими системами часто требуется получать путь к обработке динамически, прямо из кода. В 1С:Предприятие 8.3 это можно сделать несколькими способами.
Вариант 1. Через объект ВнешняяОбработка
Процедура ПолучитьПутьКОбработке()
ПутьКФайлу = "";
Попытка
Обработка = ВнешниеОбработки.Создать("ИмяОбработкиВКонфигурации");
ПутьКФайлу = Обработка.ПутьКФайлу();
Сообщить("Путь к обработке: " + ПутьКФайлу);
Исключение
Сообщить("Ошибка: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Вариант 2. Через ПолучитьОбъектМодуля() (для обработок в базе)
Процедура ПолучитьСсылкуНаОбработкуВБазе()
Обработка = ОбъектыМодулей.Обработка.НайтиПоИмени("ИмяОбработки");
Если Обработка = Неопределено Тогда
Сообщить("Обработка не найдена!");
Возврат;
КонецЕсли;
// Для обработок в базе формируем "виртуальную" ссылку
Ссылка = "1c://open?type=processing&name=" + Обработка.Имя();
Сообщить("Ссылка для открытия: " + Ссылка);
КонецПроцедуры
Для облачных решений (1С:Fresh) прямой доступ к файловой системе невозможен. Вместо этого используйте механизм Публикация через HTTP-сервисы или экспортируйте обработку в файл через ФайловыеПотоки.
⚠️ Внимание: В 1С:Предприятие 8.2 методПутьКФайлу()может возвращать относительные пути (например,.\ext\processing.epf). Для корректной работы всегда используйтеПолноеИмяФайла()из модуляФайловаяСистема.
☑️ Подготовка к программному получению пути
4. Особенности работы с ссылками в сетевых и облачных базах
Если ваша база 1С расположена на сервере или в облаке (1С:Fresh, 1С:EDT), стандартные методы получения пути могут не сработать. Рассмотрим ключевые нюансы:
Для сетевых баз (файловый вариант):
- 📂 Используйте UNC-пути (
\\server\share\...) вместо локальных (C:\...). - 🔒 Проверьте права доступа: у пользователя должна быть возможность чтения файла обработки.
- 🔄 Если обработка хранится в базе, экспортируйте её в общую папку через
Файл → Сохранить как....
Для облачных баз (1С:Fresh):
В 1С:EDT (Eclipse Development Tools) путь к обработке можно получить через
https://{идентификатор-базы}.1cfresh.com/hs/exchange/{имя-обработки}.Project Explorer, но для интеграции с другими системами рекомендуется использовать механизм Git или Artifacts
5. Типичные ошибки и как их избежать
При работе со ссылками на обработки пользователи часто сталкиваются с одними и теми же проблемами. Разберём самые распространённые:
| Ошибка | Причина | Решение |
|---|---|---|
Файл не найден (FileNotFound) |
Указан относительный путь или файл перемещён | Используйте ПолноеИмяФайла() или UNC-пути |
Отказано в доступе (AccessDenied) |
Недостаточно прав на файл или папку | Настройте права в ОС или опубликуйте обработку через HTTP |
Недопустимое имя объекта |
В имени файла или пути есть запрещённые символы | Переименуйте файл, используя только латиницу и _ |
Обработка не является внешней |
Попытка открыть встроенную обработку как внешнюю | Экспортируйте обработку в файл через Файл → Сохранить как... |
Ещё одна частая проблема — различия в путях для 32-битной и 64-битной версий 1С. Например, в Windows x64 путь к временным файлам может выглядеть как:
Чтобы избежать путаницы, всегда используйте 1) Существует ли файл по указанному пути; 2) Доступен ли он для текущего пользователя; 3) Совпадает ли разрядность 1С и пути (x86 vs x64).--> Просто скопировать путь к файлу недостаточно — нужно убедиться, что получатель сможет открыть обработку без ошибок. Следуйте этим рекомендациям:
Для локальных и сетевых баз:
Для облачных баз (1С:Fresh):
Для интеграции с другими системами:
Если вы часто работаете с внешними обработками, можно автоматизировать их открытие по ссылкам. Ниже приведён универсальный код для модуля, который обрабатывает ссылки вида Если НЕ СтрНачинаетсяС(Ссылка, "1c://open?type=processing") Тогда Возврат; КонецЕсли; // Парсим параметры из ссылки Параметры = СтрЗаменить(Ссылка, "1c://open?type=processing&", ""); МассивПараметров = СтрРазделить(Параметры, "&"); Путь = ""; Для Каждого Параметр Из МассивПараметров Цикл Если СтрНачинаетсяС(Параметр, "path=") Тогда Путь = СтрЗаменить(Параметр, "path=", ""); Путь = URLDecode(Путь); // Декодируем URL (например, %20 → пробел) Прервать; КонецЕсли; КонецЦикла; Если Путь = "" Тогда Сообщить("Ошибка: не указан путь к обработке!"); Возврат; КонецЕсли; // Проверяем существование файла Если НЕ ФайловаяСистема.СуществуетФайл(Путь) Тогда Сообщить("Ошибка: файл не найден по пути " + Путь); Возврат; КонецЕсли; // Открываем обработку Попытка Обработка = ВнешниеОбработки.Создать(Путь); Обработка.Открыть(); Исключение Сообщить("Ошибка открытия обработки: " + ОписаниеОшибки()); КонецПопытки; КонецПроцедуры // Вспомогательная функция для декодирования URL Функция URLDecode(Строка) Возврат СтрЗаменить(СтрЗаменить(Строка, "+", " "), "%", "%%"); КонецФункции
C:\Users\ИмяПользователя\AppData\Local\Temp\1C\1cv8\... (для 32-бит)C:\Users\ИмяПользователя\AppData\Local\Temp\1C\1cv8x64\... (для 64-бит)КаталогВременныхФайлов() или КаталогПрограммы() для формирования путей.
6. Как передать ссылку коллегам: лучшие практики
.epf) к письму или сообщению.\\server\share\...) или сетевой диск (Z:\...).
для экспорта/импорта.
Файл → Открыть....
1c://open?type=processing&path=....URLEncode()).⚠️ Внимание: При передаче обработок через почту или мессенджеры некоторые сервисы (например, Outlook или Gmail) могут блокировать файлы с расширением
.epf. В этом случае архивируйте файл в .zip или переименовывайте его в .txt (с указанием инструкции по переименованию обратно).7. Автоматизация: открытие обработки по ссылке
1c://open?type=processing&path=....
Процедура ОбработатьСсылку(Ссылка) Экспорт
Чтобы использовать этот код:
- Создайте общий модуль (например,
РаботаСоСсылками). - Добавьте процедуру
ОбработатьСсылку. - В модуле управляемого приложения или формы добавьте обработчик для параметров командной строки:
Процедура ПриНачалеРаботыСистемы()Если НЕ ПараметрыЗапуска = Неопределено Тогда
РаботаСоСсылками.ОбработатьСсылку(ПараметрыЗапуска);
КонецЕсли;
КонецПроцедуры
Теперь вы можете открывать обработки по ссылкам прямо из браузера, мессенджера или другой программы, передавая URL вида:
1c://open?type=processing&path=C:\Processings\MyProcessing.epf
8. Альтернативные способы: публикация обработок через HTTP
Если вам нужно предоставить доступ к обработке пользователям без прямого доступа к файловой системе (например, для клиентов или удалённых сотрудников), лучшее решение — опубликовать её через HTTP-сервис. Это актуально для 1С:Fresh и корпоративных порталов.
Шаги настройки:
- Откройте конфигуратор и перейдите в
Администрирование → Публикация на веб-сервере. - Создайте новый HTTP-сервис или используйте существующий.
- В модуле сервиса добавьте метод для загрузки обработки:
Функция ПолучитьОбработку(ИмяОбработки) ЭкспортОбработка = ВнешниеОбработки.НайтиПоИмени(ИмяОбработки);
Если Обработка = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
// Возвращаем обработку в виде двоичных данных
Данные = Новый ДвоичныеДанные(Обработка.ПолучитьДвоичныеДанные());
Возврат Данные;
КонецФункции
- Опубликуйте сервис и получите URL вида:
https://{ваш-сервер}/hs/exchange/GetProcessing?name=MyProcessing.
Для защиты данных настройте аутентификацию в параметрах публикации. В 1С:Fresh это делается через Личный кабинет в разделе Настройки интеграции.
В облачных решениях (1С:Fresh, 1С:EDT) прямая работа с файлами обработок запрещена — используйте только HTTP-сервисы или механизмы обмена.
HTTP-сервисы — единственный надёжный способ предоставить доступ к обработкам пользователям без доступа к файловой системе или конфигуратору.
FAQ: Частые вопросы по работе со ссылками на обработки
Можно ли получить ссылку на обработку, которая хранится в базе данных (без файла)?
Да, но только программно. Для таких обработок физического файла .epf не существует, поэтому стандартными средствами путь получить нельзя. Используйте методы из Способа №3 (например, формируйте "виртуальную" ссылку через ОбъектыМодулей).
Для 1С:Fresh единственный вариант — экспортировать обработку в файл через Файл → Сохранить как... или настроить HTTP-сервис.
Почему при открытии обработки по UNC-пути (\\server\...) возникает ошибка доступа?
Эта ошибка связана с правами Windows, а не 1С. Проверьте:
- 🔓 Права на папку для пользователя, под которым запущена 1С;
- 🔒 Настройки Брандмауэра Windows (должен быть разрешён доступ к сетевым ресурсам);
- 🖥️ Настройки Политики безопасности (например,
Сетевой доступ: модель общего доступа...).
В корпоративных сетях может потребоваться обратиться к администратору для настройки Kerberos-аутентификации.
Как передать обработку коллеге, если она использует другую версию платформы?
Обработки не всегда совместимы между версиями 1С. Чтобы избежать ошибок:
- 📌 Указывайте минимальную версию платформы в имени файла (например,
Processing_8.3.20+.epf); - 🔄 Сохраняйте обработку в формате
.erf(текстовый формат, совместимый с разными версиями); - 🛠️ При необходимости конвертируйте обработку через Конвертацию данных (меню
Файл → Открыть..., затемСохранить как...с выбором нужной версии).
Можно ли открыть обработку по ссылке из браузера или мессенджера?
Да, но для этого нужно:
- Настроить протокол
1c://в реестре Windows (см. раздел об автоматизации); - Формировать ссылки в формате
1c://open?type=processing&path=C:\...\file.epf; - Убедиться, что на целевом ПК установлена 1С:Предприятие и ассоциирована с файлами
.epf.
Для 1С:Fresh этот метод не работает — используйте HTTP-сервисы.
Что делать, если обработка после передачи не открывается ("Обработка повреждена")?
Причины и решения:
- 📥 Файл повреждён при передаче: попробуйте переслать его в архиве (
.zip) или через облачное хранилище; - 🔠 Несовпадение версий: проверьте версию платформы (в свойствах файла обработки указано минимальное требование);
- 🔒 Блокировка антивирусом: добавьте папку с обработками в исключения Windows Defender или другого антивируса;
- 📝 Ошибка в коде: откройте обработку в конфигураторе и проверьте на синтаксические ошибки (
Сервис → Проверить модуль).