Работа с внешними обработками в 1С:Предприятие — неотъемлемая часть повседневных задач разработчиков, администраторов и даже опытных пользователей. Но что делать, если нужно передать коллеге ссылку на обработку, интегрировать её в другой модуль или просто сохранить путь для быстрого доступа? В отличие от стандартных объектов конфигурации, внешние обработки хранятся в файловой системе, и их "адрес" не всегда очевиден.

Проблема усложняется тем, что 1С не предоставляет встроенного инструмента для копирования ссылки — её нужно формировать вручную или с помощью кода. В этой статье разберём все актуальные способы: от простого копирования файлового пути до генерации универсальных ссылок через встроенный язык. Особое внимание уделим нюансам для разных версий платформы (8.3.20+ vs 8.2) и типичным ошибкам, которые возникают при работе с путями в сетевых или облачных конфигурациях.

Если вы ищете способ автоматизировать открытие обработок по ссылке — в конце статьи есть раздел с готовыми примерами кода для вставки в модули. А для тех, кто работает с 1С:Fresh или 1С:EDT, мы отдельно рассмотрели специфику облачных решений.

📊 Какой способ получения ссылки вам нужен чаще?
Для ручного открытия обработки
Для интеграции с другим ПО
Для передачи коллегам
Для автоматизации в коде

1. Способ №1: Получение файлового пути через проводник Windows

Самый простой метод — найти файл обработки (.epf или .erf) в проводнике и скопировать его путь. Но здесь есть подводные камни, особенно если обработка хранится в базе данных или подключена через Расширения конфигурации.

Чтобы найти файл:

  1. Откройте конфигуратор 1С:Предприятия (режим Конфигуратор).
  2. Перейдите в меню Файл → Открыть....
  3. В списке типов файлов выберите Внешние обработки (*.epf).
  4. Найдите нужную обработку в списке последних файлов или через проводник.

После того как файл найден, кликните по нему правой кнопкой мыши, выберите Свойства, а затем скопируйте путь из поля Расположение. Для быстрого копирования можно использовать комбинацию Shift + ПКМ — в контекстном меню появится пункт Копировать как путь.

💡

Если обработка хранится в сетевой папке, убедитесь, что путь доступен для всех пользователей, которым вы отправляете ссылку. Используйте UNC-пути вида \\server\share\folder\processing.epf вместо локальных Z:\folder\processing.epf

⚠️ Внимание: Если обработка подключена через Расширение конфигурации, её физического файла может не существовать — в этом случае используйте методы №2 или №3.

2. Способ №2: Получение пути через конфигуратор (для подключённых обработок)

Если обработка уже подключена к базе, её путь можно узнать через дерево конфигурации. Этот метод работает даже для обработок, хранящихся в базе данных (например, в 1С:Fresh).

Инструкция:

  1. Откройте конфигуратор в режиме Конфигуратор.
  2. Раскройте ветку Общие → Внешние обработки.
  3. Найдите нужную обработку и кликните по ней правой кнопкой.
  4. Выберите Свойства.
  5. В окне свойств перейдите на вкладку Дополнительно.
  6. Поле Путь к файлу содержит искомую информацию.

Для обработок, хранящихся в базе (без привязки к файлу), поле Путь к файлу будет пустым. В этом случае единственный способ получить "ссылку" — сгенерировать её программно (см. Способ №3).

Что делать, если поле "Путь к файлу" пустое?

Это означает, что обработка хранится непосредственно в базе данных (например, была загружена через Файл → Открыть и сохранена в конфигурации). В таком случае физического файла .epf не существует, и для передачи обработки придётся:

  • 📤 Экспортировать её в файл через Файл → Сохранить как...;
  • 🔄 Использовать программное получение ссылки (метод №3);
  • 🖥️ Для облачных баз (1С:Fresh) — воспользоваться механизмом Обмен данными.

3. Способ №3: Программное получение ссылки на обработку

Для автоматизации или интеграции с другими системами часто требуется получать путь к обработке динамически, прямо из кода. В 1С:Предприятие 8.3 это можно сделать несколькими способами.

Вариант 1. Через объект ВнешняяОбработка

Процедура ПолучитьПутьКОбработке()

ПутьКФайлу = "";

Попытка

Обработка = ВнешниеОбработки.Создать("ИмяОбработкиВКонфигурации");

ПутьКФайлу = Обработка.ПутьКФайлу();

Сообщить("Путь к обработке: " + ПутьКФайлу);

Исключение

Сообщить("Ошибка: " + ОписаниеОшибки());

КонецПопытки;

КонецПроцедуры

Вариант 2. Через ПолучитьОбъектМодуля() (для обработок в базе)

Процедура ПолучитьСсылкуНаОбработкуВБазе()

Обработка = ОбъектыМодулей.Обработка.НайтиПоИмени("ИмяОбработки");

Если Обработка = Неопределено Тогда

Сообщить("Обработка не найдена!");

Возврат;

КонецЕсли;

// Для обработок в базе формируем "виртуальную" ссылку

Ссылка = "1c://open?type=processing&name=" + Обработка.Имя();

Сообщить("Ссылка для открытия: " + Ссылка);

КонецПроцедуры

Для облачных решений (1С:Fresh) прямой доступ к файловой системе невозможен. Вместо этого используйте механизм Публикация через HTTP-сервисы или экспортируйте обработку в файл через ФайловыеПотоки.

⚠️ Внимание: В 1С:Предприятие 8.2 метод ПутьКФайлу() может возвращать относительные пути (например, .\ext\processing.epf). Для корректной работы всегда используйте ПолноеИмяФайла() из модуля ФайловаяСистема.

☑️ Подготовка к программному получению пути

Выполнено: 0 / 4

4. Особенности работы с ссылками в сетевых и облачных базах

Если ваша база расположена на сервере или в облаке (1С:Fresh, 1С:EDT), стандартные методы получения пути могут не сработать. Рассмотрим ключевые нюансы:

Для сетевых баз (файловый вариант):

  • 📂 Используйте UNC-пути (\\server\share\...) вместо локальных (C:\...).
  • 🔒 Проверьте права доступа: у пользователя должна быть возможность чтения файла обработки.
  • 🔄 Если обработка хранится в базе, экспортируйте её в общую папку через Файл → Сохранить как....

Для облачных баз (1С:Fresh):

  • ☁️ Прямой доступ к файлам отсутствует — используйте HTTP-сервисы или REST API.
  • 🔗 Ссылки формируются по шаблону: https://{идентификатор-базы}.1cfresh.com/hs/exchange/{имя-обработки}.
  • 🔑 Требуется настройка прав доступа в Личном кабинете 1С:Fresh.

В 1С:EDT (Eclipse Development Tools) путь к обработке можно получить через Project Explorer, но для интеграции с другими системами рекомендуется использовать механизм Git или Artifacts.

5. Типичные ошибки и как их избежать

При работе со ссылками на обработки пользователи часто сталкиваются с одними и теми же проблемами. Разберём самые распространённые:

Ошибка Причина Решение
Файл не найден (FileNotFound) Указан относительный путь или файл перемещён Используйте ПолноеИмяФайла() или UNC-пути
Отказано в доступе (AccessDenied) Недостаточно прав на файл или папку Настройте права в ОС или опубликуйте обработку через HTTP
Недопустимое имя объекта В имени файла или пути есть запрещённые символы Переименуйте файл, используя только латиницу и _
Обработка не является внешней Попытка открыть встроенную обработку как внешнюю Экспортируйте обработку в файл через Файл → Сохранить как...

Ещё одна частая проблема — различия в путях для 32-битной и 64-битной версий 1С. Например, в Windows x64 путь к временным файлам может выглядеть как:

  • C:\Users\ИмяПользователя\AppData\Local\Temp\1C\1cv8\... (для 32-бит)
  • C:\Users\ИмяПользователя\AppData\Local\Temp\1C\1cv8x64\... (для 64-бит)

Чтобы избежать путаницы, всегда используйте КаталогВременныхФайлов() или КаталогПрограммы() для формирования путей.

1) Существует ли файл по указанному пути;

2) Доступен ли он для текущего пользователя;

3) Совпадает ли разрядность 1С и пути (x86 vs x64).-->

6. Как передать ссылку коллегам: лучшие практики

Просто скопировать путь к файлу недостаточно — нужно убедиться, что получатель сможет открыть обработку без ошибок. Следуйте этим рекомендациям:

Для локальных и сетевых баз:

  • 📎 Прикрепляйте файл обработки (.epf) к письму или сообщению.
  • 🔗 Если передаёте путь, используйте UNC (\\server\share\...) или сетевой диск (Z:\...).
  • 📋 Указывайте версию платформы, для которой предназначена обработка (например, 8.3.20+).

Для облачных баз (1С:Fresh):

  • ☁️ Настройте HTTP-сервис для доступа к обработке по URL.
  • 🔐 Используйте механизм Обмен данными для экспорта/импорта.
  • 📌 Прикрепите инструкцию по подключению обработки через Файл → Открыть....

Для интеграции с другими системами:

  • 🤖 Формируйте ссылки в формате 1c://open?type=processing&path=....
  • 🔄 Проверяйте кодировку пути (для кириллических имён используйте URLEncode()).
  • 🛠️ Тестируйте открытие ссылки на целевой машине.
⚠️ Внимание: При передаче обработок через почту или мессенджеры некоторые сервисы (например, Outlook или Gmail) могут блокировать файлы с расширением .epf. В этом случае архивируйте файл в .zip или переименовывайте его в .txt (с указанием инструкции по переименованию обратно).

7. Автоматизация: открытие обработки по ссылке

Если вы часто работаете с внешними обработками, можно автоматизировать их открытие по ссылкам. Ниже приведён универсальный код для модуля, который обрабатывает ссылки вида 1c://open?type=processing&path=....

Процедура ОбработатьСсылку(Ссылка) Экспорт

Если НЕ СтрНачинаетсяС(Ссылка, "1c://open?type=processing") Тогда

Возврат;

КонецЕсли;

// Парсим параметры из ссылки

Параметры = СтрЗаменить(Ссылка, "1c://open?type=processing&", "");

МассивПараметров = СтрРазделить(Параметры, "&");

Путь = "";

Для Каждого Параметр Из МассивПараметров Цикл

Если СтрНачинаетсяС(Параметр, "path=") Тогда

Путь = СтрЗаменить(Параметр, "path=", "");

Путь = URLDecode(Путь); // Декодируем URL (например, %20 → пробел)

Прервать;

КонецЕсли;

КонецЦикла;

Если Путь = "" Тогда

Сообщить("Ошибка: не указан путь к обработке!");

Возврат;

КонецЕсли;

// Проверяем существование файла

Если НЕ ФайловаяСистема.СуществуетФайл(Путь) Тогда

Сообщить("Ошибка: файл не найден по пути " + Путь);

Возврат;

КонецЕсли;

// Открываем обработку

Попытка

Обработка = ВнешниеОбработки.Создать(Путь);

Обработка.Открыть();

Исключение

Сообщить("Ошибка открытия обработки: " + ОписаниеОшибки());

КонецПопытки;

КонецПроцедуры

// Вспомогательная функция для декодирования URL

Функция URLDecode(Строка)

Возврат СтрЗаменить(СтрЗаменить(Строка, "+", " "), "%", "%%");

КонецФункции

Чтобы использовать этот код:

  1. Создайте общий модуль (например, РаботаСоСсылками).
  2. Добавьте процедуру ОбработатьСсылку.
  3. В модуле управляемого приложения или формы добавьте обработчик для параметров командной строки:
    Процедура ПриНачалеРаботыСистемы()
    

    Если НЕ ПараметрыЗапуска = Неопределено Тогда

    РаботаСоСсылками.ОбработатьСсылку(ПараметрыЗапуска);

    КонецЕсли;

    КонецПроцедуры

Теперь вы можете открывать обработки по ссылкам прямо из браузера, мессенджера или другой программы, передавая URL вида:

1c://open?type=processing&path=C:\Processings\MyProcessing.epf

8. Альтернативные способы: публикация обработок через HTTP

Если вам нужно предоставить доступ к обработке пользователям без прямого доступа к файловой системе (например, для клиентов или удалённых сотрудников), лучшее решение — опубликовать её через HTTP-сервис. Это актуально для 1С:Fresh и корпоративных порталов.

Шаги настройки:

  1. Откройте конфигуратор и перейдите в Администрирование → Публикация на веб-сервере.
  2. Создайте новый HTTP-сервис или используйте существующий.
  3. В модуле сервиса добавьте метод для загрузки обработки:
    Функция ПолучитьОбработку(ИмяОбработки) Экспорт
    

    Обработка = ВнешниеОбработки.НайтиПоИмени(ИмяОбработки);

    Если Обработка = Неопределено Тогда

    Возврат Неопределено;

    КонецЕсли;

    // Возвращаем обработку в виде двоичных данных

    Данные = Новый ДвоичныеДанные(Обработка.ПолучитьДвоичныеДанные());

    Возврат Данные;

    КонецФункции

  4. Опубликуйте сервис и получите 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С;
  • 🔒 Настройки Брандмауэра Windows (должен быть разрешён доступ к сетевым ресурсам);
  • 🖥️ Настройки Политики безопасности (например, Сетевой доступ: модель общего доступа...).

В корпоративных сетях может потребоваться обратиться к администратору для настройки Kerberos-аутентификации.

Как передать обработку коллеге, если она использует другую версию платформы?

Обработки не всегда совместимы между версиями . Чтобы избежать ошибок:

  • 📌 Указывайте минимальную версию платформы в имени файла (например, Processing_8.3.20+.epf);
  • 🔄 Сохраняйте обработку в формате .erf (текстовый формат, совместимый с разными версиями);
  • 🛠️ При необходимости конвертируйте обработку через Конвертацию данных (меню Файл → Открыть..., затем Сохранить как... с выбором нужной версии).
Можно ли открыть обработку по ссылке из браузера или мессенджера?

Да, но для этого нужно:

  1. Настроить протокол 1c:// в реестре Windows (см. раздел об автоматизации);
  2. Формировать ссылки в формате 1c://open?type=processing&path=C:\...\file.epf;
  3. Убедиться, что на целевом ПК установлена 1С:Предприятие и ассоциирована с файлами .epf.

Для 1С:Fresh этот метод не работает — используйте HTTP-сервисы.

Что делать, если обработка после передачи не открывается ("Обработка повреждена")?

Причины и решения:

  • 📥 Файл повреждён при передаче: попробуйте переслать его в архиве (.zip) или через облачное хранилище;
  • 🔠 Несовпадение версий: проверьте версию платформы (в свойствах файла обработки указано минимальное требование);
  • 🔒 Блокировка антивирусом: добавьте папку с обработками в исключения Windows Defender или другого антивируса;
  • 📝 Ошибка в коде: откройте обработку в конфигураторе и проверьте на синтаксические ошибки (Сервис → Проверить модуль).