В версии 8.2 приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.
Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:
- Передать файл внешней обработки на сервер
- Подключить внешнюю обработку
- Открыть форму внешней обработки
Чтобы передать файл на сервер, его нужно поместить во временное хранилище. Для этого сначала на клиенте, в обработчике команды открытия внешней обработки, методом глобального контекста ПоместитьФайл() мы помещаем файл из локальной файловой системы во временное хранилище.
В четвертом параметре этого метода указывается признак интерактивного режима выбора файла внешней обработки. Если этот параметр Истина , то появляется диалог выбора файла, в котором можно выбрать файл для помещения в хранилище. В нашем примере этот параметр — Ложь , а путь к файлу, данные из которого будут помещены во временное хранилище, явно задан во втором параметре метода.
При вызове метода ПоместитьФайл() первым его параметром, АдресХранилища , мы указываем пустую строку. После выполнения метода в нее будет помещен путь к файлу внешней обработки во временном хранилище. Этот путь мы используем для того, чтобы подключить внешнюю обработку.
Подключение внешней обработки выполняется на сервере методом Подключить() менеджера внешних обработок. В качестве параметра ему передается путь к файлу внешней обработки во временном хранилище — АдресХранилища . Возвращает этот метод имя подключенной внешней обработки, — ИмяОбработки , — которое мы используем для того, чтобы открыть форму этой обработки.
Для открытия формы внешней обработки используется метод глобального контекста ОткрытьФорму() , в который передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма" . В приведенном варианте открывается основная форма обработки. Можно открыть также и неосновную форму обработки — об этом рассказывается в вопросе Как получить неосновную форму обработки?.
При работе в внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.
Подробнее о режиме безопасного исполнения программного кода можно прочитать в документации: 1С:Предприятие 8.2. Руководство разработчика , Раздел 5.5.4.3: Объекты конфигурации — Ветвь конфигурации «Общие» — Роли и права доступа — Безопасный режим работы .
Подробнее об использовании метода ПоместитьФайл() можно прочитать в синтакс-помощнике: Глобальный контекст — Процедуры и функции работы с файлами.
Подробнее об использовании метода Подключить() можно прочитать в синтакс-помощнике: Прикладные объекты — Внешние обработки и отчеты — ВнешниеОбработкиМенеджер — Методы.
Рассмотрим в данной статье пошаговую инструкцию по созданию внешней обработки в 1С 8.3 в режиме управляемого приложения, соответственно, будем использовать управляемые формы. А самое главное — мы научимся подключать её к механизму «внешних обработок» конфигураций 1С, построенных на библиотеке стандартных подсистем версии 2.0 и новее.
Задача будет следующая: создать простейшую внешнюю обработку, которая будет выполнять групповое действие над справочником «Номенклатура», а именно, устанавливать выбранный процент ставки НДС для указанной группы номенклатуры.
Включение механизма внешних обработок в программе
Для этого сразу произведем необходимую настройку в программе (рассматривается конфигурация 1С 8.3: «Бухгалтерия предприятия 3.0» на управляемых формах).
Заходим в меню «Администрирование» и по ссылке «Печатные формы, отчеты и обработки» переходим в настройки. Здесь нужно установить флажок «Дополнительные отчеты и обработки»:
Установка данного флажка дает нам возможность использовать внешние обработки.
Создание новой внешней обработки в 1С 8.3 на примере
Теперь переходим в конфигуратор. В меню «Файл» выбираем «Новый…». Откроется окно выбора вида создаваемого файла. Выбираем «Внешняя обработка»:
Откроется окно новой внешней обработки. Сразу зададим ей имя. Оно будет предложено при сохранении обработки на диск:
Добавим новую управляемую форму обработки. Указываем, что это форма обработки и она является основной:
На форме у нас будет два реквизита:
- ГруппаНоменклатуры – ссылка на справочник «Номенклатура»;
- ВыбСтавкаНДС – ссылка на перечисление Ставки НДС.
Создаем реквизиты в колонке «Реквизит» в верхнем правом окне. Перетаскиваем мышкой их в левое верхнее окно. Новые реквизиты должны сразу отобразиться на форме внизу.
Очередность реквизитов можно менять стрелками «Вверх» – «Вниз»:
Получите 267 видеоуроков по 1С бесплатно:
Осталось добавить кнопку «Установить». В управляемых формах нельзя просто так добавить кнопку на форму. Даже если добавить её в структуру элементов формы, на самой форме её видно не будет. Кнопку обязательно нужно связать с командой, которую она будет выполнять. Переходим к закладке «Команды» и добавляем команду «УстановитьСтавкуНДС». В свойствах команды создаем действие. Обработчик команды выбираем «На клиенте». Команду можно добавить на форму также простым «перетаскиванием» в раздел с элементами формы.
В модуле формы будет создана одноименная процедура. В ней вызовем процедуру на сервере:
В процедуре на сервере напишем небольшой запрос и действия, связанные с установкой ставки НДС:
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ (&ГруппаНоменклатуры)
| И НЕ Номенклатура.ПометкаУдаления
| И НЕ Номенклатура.ЭтоГруппа»;
Запрос.УстановитьПараметр(«ГруппаНоменклатуры», ГруппаНоменклатуры);
РезЗапроса = Запрос.Выполнить();
ВыбДетЗаписи = РезЗапроса.Выбрать();
Пока ВыбДетЗаписи.Следующий() Цикл
СпрНомОбъект = ВыбДетЗаписи.Ссылка.ПолучитьОбъект();
СпрНомОбъект.СтавкаНДС = ВыбСтавкаНДС;
Попытка
СпрНомОбъект.Записать();
Исключение
Сообщить(«Ошибка записи объекта «»» + СпрНомОбъект + «»»!
|» + ОписаниеОшибки());
КонецПопытки;
Возвращаемся на закладку «Форма», добавляем на форму кнопку и связываем ее с командой:
Как таковая наша обработка готова к использованию. Чтобы ее вызвать, в режиме «1С Предприятия» нужно зайти в меню «Файл» – «Открыть» и выбрать созданный файл.
Однако работа в таком режиме удобна для отладки обработки, а для работы пользователю не совсем подходит. Пользователи привыкли, чтобы у них все было «под рукой», то есть в самой базе данных.
Для этого и служит раздел «Дополнительные отчеты и обработки».
Но чтобы добавить туда нашу обработку, нужно сначала дать ей описание и сообщить программе ее свойства.
Описание функции «Сведения О Внешней Обработке»
Приведу пример содержимого данной функции. Она должна быть экспортной и, соответственно, располагаться в модуле обработки:
Функция СведенияОВнешнейОбработке() Экспорт
ДанныеДляРег = Новый Структура();
ДанныеДляРег.Вставить(«Наименование», «Установка ставки НДС»);
ДанныеДляРег.Вставить(«БезопасныйРежим», Истина);
ДанныеДляРег.Вставить(«Версия», «ver.: 1.001»);
ДанныеДляРег.Вставить(«Информация», «Обработка для установки ставки НДС в справочнике Номенклатура»);
ДанныеДляРег.Вставить(«Вид», «ДополнительнаяОбработка»);
ТабЗнКоманды = Новый ТаблицаЗначений;
ТабЗнКоманды.Колонки.Добавить(«Идентификатор»);
ТабЗнКоманды.Колонки.Добавить(«Использование»);
ТабЗнКоманды.Колонки.Добавить(«Представление»);
НовСтрока = ТабЗнКоманды.Добавить();
НовСтрока.Идентификатор = «ОткрытьОбработку»;
НовСтрока.Использование = «ОткрытиеФормы»;
НовСтрока.Представление = «Открыть обработку»;
ДанныеДляРег.Вставить(«Команды», ТабЗнКоманды);
Чтобы лучше понять, какие поля структуры регистрационных данных нужно использовать, посмотрим реквизиты справочника «Дополнительные отчеты и обработки»:
Как видим, все довольно просто. Не совпадает лишь один реквизит: «ВариантЗапуска» – «Использование». Если посмотреть код одного из общих модулей, то мы увидим, как возникает связка этих полей:
Чтобы определить, какие поля структуры обязательны, можно сначала не описывать ее, просто создать пустую, а далее воспользоваться отладчиком. Если трассировать модули при регистрации обработки, сразу становится ясно, какие поля требуются, а какие нет.
Подключение внешней обработки в 1С 8.3
Перейдем теперь в режим «1С Предприятия» и добавим внешнюю обработку:
После записи обработки в справочник нажатием кнопки «Выполнить» она открывается на выполнение. Здесь же можно указать, в каких разделах (подсистемах) программы будет отображаться данная обработка и для каких пользователей.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Для использования внешних (подключаемых) обработок, отчетов, печатных форм, нет необходимости снимать конфигурацию с поддержки и производить впоследствии нетиповое обновление конфигурации 1С. Достаточно включить их в состав вашей базы 1С 8. При обновлении конфигурации вам не придется в таком случае заново добавлять их в состав конфигурации, так как они будут храниться в информационной базе. О том как это сделать я расскажу в этой статье.
Как добавить внешнюю обработку в конфигурацию 1С: Бухгалтерия Предприятия 2.0?
Для добавления внешней обработки в конфигурацию 1С Бухгалтерия Предприятия 2.0 запустим программу в режиме Предприятие. Заходим в меню Сервис => Дополнительные отчеты и обработки => Дополнительные внешние обработки:
В появившемся окне нажимаем кнопку Открыть:
Выбираем файл внешней обработки и нажимаем “Открыть”:
Наименование заполнилось автоматически. Можно назначить права на использование этой обработки нажав на кнопку “Права” и записав обработку, но для этого в конфигурации должно быть включено использование ограничения прав доступа на уровне записей. Нажимаем “ОК” для записи обработки в справочник:
Теперь обработку можно запускать из этого справочника. После обновления конфигурации обработка не удалится из него, так как она входит в состав информационной базы,а не конфигурации программы 1С: Бухгалтерия Предприятия 2.0.
Как добавить внешний отчет в конфигурацию 1С: Управление торговлей 11?
Для добавления внешнего отчета в конфигурацию 1С: УТ 11, заходим в программу в режиме Предприятие. Переходим в подсистему Администрирование => Печатные формы, отчеты и обработки => Дополнительные отчеты и обработки:
Попадаем в справочник “Дополнительные отчеты и обработки”. Здесь представлены все загруженные в информационную базу отчеты и обработки. Нажимаем “Создать”:
Указываем тип файлов “Внешние отчеты (*.erf)”, выбираем файл отчета и нажимаем “Открыть”:
В появившемся окне можем исправить автоматически созданное наименование на более для вас удобное. Далее необходимо указать разделы командного интерфейса в которых будет отображаться этот отчет. Для этого нажимаем “Указать разделы командного интерфейса”:
Отмечаем галочками нужные разделы и нажимаем ОК:
Далее необходимо указать пользователей у которых будет доступ к этому отчету. Для этого нажимаем “Быстрый доступ к команде”:
Выбираем из списка либо каких то определенных пользователей, либо всех сразу и нажимаем ОК:
Нажимаем “Записать и закрыть”:
Теперь чтобы проверить переходим в раздел, который отметили в быстром доступе и нажимаем “Дополнительные отчеты”:
Чтобы запустить отчет нажимаем “Выполнить”:
Также здесь есть возможность настроить список отчетов, т.е. отображение, которые доступны текущему пользователю, для этого жмем “Настроить список моих отчетов”:
Здесь вы можете убрать отображение редко используемых отчетов, если их у вас много:
Как добавить внешнюю печатную форму в конфигурацию 1С: Зарплата и управление персоналом 2.5?
Чтобы добавить внешнюю печатную форму в конфигурацию 1С Зарплата и управление персоналом 2.5 запустим программу в режиме Предприятие. Заходим в меню Сервис => Дополнительные отчеты и обработки => Дополнительные внешние печатные формы:
Открывается справочник “Дополнительные внешние печатные формы”. Нажимаем “Добавить”:
В следующем окне нажимаем “Открыть”:
Выбираем файл внешней печатной формы и нажимаем Открыть:
Если обработка сделана как надо, то должно появиться окно с предложением использовать параметры авторегистрации. Это означает, что печатная форма будет добавлена в документ или справочник для которого она предназначена автоматически. Нажимаем Да:
В табличной части “Принадлежность печатной формы” указано для какого справочника или документа предназначена текущая внешняя печатная форма. Вы можете указать удобное для вас Наименование. Для сохранения нажимаем ОК:
Теперь видим что печатная форма появилась в справочнике “Дополнительные внешние печатные формы”:
Теперь по кнопке Печать появится ваша печатная форма,она будет последней в списке доступных печатных форм:
Смотрите видео по созданию внешней печатной формы для управляемого приложения: