Внешние обработки в 1с применяются для изменения каких-либо объектов конфигурации. Они позволяют изменять объекты не снимая конфигурацию с поддержки.
Создание новой внешней обработки в 1С 8.3 на примере
Заходим в конфигуратор. В меню «Файл» выбираем «Новый…». Откроется окно выбора вида создаваемого файла. Выбираем «Внешняя обработка»:
Далее выбираем «Внешняя обработка» нажимаем ОК. Откроется форма создания внешней обработки:
Запланируем создать «Внешнюю обработку» для пересчета цены номенклатуры. Соответственно добавим необходимые реквизиты на форму обработки.
Назначение обработки осуществлять пересчет цены номенклатуры. Рассмотрим пример, когда для каждой номенклатуры необходимо изменить цену.
Настроим свойства Объекта Номенклатура при изменении.
Созданная процедура будет запускаться на Клиенте и на Сервере. В процедуре будем использовать запрос. Код процедуры будет следующий.
Данный код позволяет получить цену номенклатуры из регистра сведений цены.
Настроим программную запись в регистр сведений Цены:
- Создадим независимый регистр Сведений цены с периодом в течении дня.
- Заполним Регистр одним значением.
- Настроим кнопку записать следующим образом.
В модуль обработки добавляется следующий код, обработка размещается во внешних:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Наименование", "Загрузить эл. почту");
ПараметрыРегистрации.Вставить("Версия", "2020.10.20");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Информация", "Загрузить эл. почту");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,
"Загрузить эл. почту",
"Загрузить эл. почту",
"ОткрытиеФормы",
Истина,
);
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Вывод: В результате нами создана внешняя обработка для заполнения регистра сведений цены. Внешние обработки в 1с получили широкое распространение. Они могут использоваться для загрузки и выгрузки различных данных.