В версии 8.2 и старше: приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.
Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:
Передать файл внешней обработки на сервер
Подключить внешнюю обработку
Открыть форму внешней обработки
Чтобы передать файл на сервер, его нужно поместить во временное хранилище. Для этого сначала на клиенте, в обработчике команды открытия внешней обработки, методом глобального контекста ПоместитьФайл() мы помещаем файл из локальной файловой системы во временное хранилище.
В четвертом параметре этого метода указывается признак интерактивного режима выбора файла внешней обработки. Если этот параметр Истина, то появляется диалог выбора файла, в котором можно выбрать файл для помещения в хранилище. В нашем примере этот параметр - Ложь, а путь к файлу, данные из которого будут помещены во временное хранилище, явно задан во втором параметре метода.
При вызове метода ПоместитьФайл() первым его параметром, АдресХранилища, мы указываем пустую строку. После выполнения метода в нее будет помещен путь к файлу внешней обработки во временном хранилище. Этот путь мы используем для того, чтобы подключить внешнюю обработку.
Подключение внешней обработки выполняется на сервере методом Подключить() менеджера внешних обработок. В качестве параметра ему передается путь к файлу внешней обработки во временном хранилище - АдресХранилища. Возвращает этот метод имя подключенной внешней обработки, - ИмяОбработки, - которое мы используем для того, чтобы открыть форму этой обработки.
Для открытия формы внешней обработки используется метод глобального контекста ОткрытьФорму(), в который передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма". В приведенном варианте открывается основная форма обработки.
При работе с внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.
Подробнее о режиме безопасного исполнения программного кода можно прочитать в документации: 1С:Предприятие 8.2. Руководство разработчика, Раздел 5.5.4.3: Объекты конфигурации - Ветвь конфигурации «Общие» - Роли и права доступа - Безопасный режим работы.
Подробнее об использовании метода ПоместитьФайл() можно прочитать в синтакс-помощнике: Глобальный контекст - Процедуры и функции работы с файлами.
Подробнее об использовании метода Подключить() можно прочитать в синтакс-помощнике: Прикладные объекты - Внешние обработки и отчеты - ВнешниеОбработкиМенеджер - Методы.
У объекта ВнешняяОбработкаОбъект, есть свойство ИспользуемоеИмяФайла, доступное в контексте сервера - может пригодиться.
Жизненный пример
Форма с деревом значений, в котором перечислены обработки из каталога на сервере:
При двойном щелчке по названию файла - происходит его программное открытие:
Восстановить нумерацию документов или справочников нам поможет специальная обработка «Универсальные подбор и обработка объектов». Эту обработку можно найти на диске ИТС (УниверсальныеПодборИОбработкаОбъектов.epf).
Порядок работы с обработкой:
Открываем обработку через меню «Файл» – пункт «Открыть»:
Выбираем файл «УниверсальныеПодборИОбработкаОбъектов.epf» и нажимаем «Открыть»:
В открывшемся окне в поле «Объект поиска» выбираем вид документа (которые требуется перенумеровать), для справочника - выбираем нужный справочник:
Далее устанавливаем отбор на закладке «Отбор по значениям реквизитов», например, нам надо восстановить нумерацию документов «Реализация товаров и услуг» начиная с 01 января 2010 года по текущую дату. Нажимаем в командной панели кнопку «Добавить». В окне выбора поля выбираем «Дата», в колонке «Тип сравнения» указываем «Больше», в поле «Значение» устанавливаем 01.01.2010, для справочника - сразу нажимаем «Найти объекты»:
После этого нажимаем «Найти объекты»:
Программа перемещает нас на закладку «Найденные объекты», на которой мы видим список отобранных документов для перенумерации. На рисунке наглядно показано, с какой даты изменена нумерация (убраны так называемые лидирующие нули):
Далее мы переходим на закладку «Обработки», в левой части выбираем пункт «Перенумерация объектов» (дважды кликаем по нему мышкой):
В следующем окне указываем с какого номера перенумеровывать (поле «Начальный номер»). В нашем случае это – 1. Если мы хотим восстановить нумерацию учитывая префикс, устанавливаем переключатель в положение «Не изменять существующие префиксы»:
После нажатия кнопки «Выполнить» происходит перенумерации документов.