Внешние обработки в 1с

Внешние обработки в 1с

Внешние обработки в 1с применяются для изменения каких-либо объектов конфигурации. Они позволяют изменять объекты не снимая конфигурацию с поддержки.

Создание новой внешней обработки в 1С 8.3 на примере

 Заходим в конфигуратор. В меню «Файл» выбираем «Новый…». Откроется окно выбора вида создаваемого файла. Выбираем «Внешняя обработка»:

Внешние обработки в 1с

Далее выбираем «Внешняя обработка» нажимаем ОК. Откроется форма создания внешней обработки:

Внешние обработки в 1с

Запланируем создать «Внешнюю обработку» для пересчета цены номенклатуры. Соответственно добавим необходимые реквизиты на форму обработки.

Внешние обработки в 1с

Назначение обработки осуществлять пересчет цены номенклатуры. Рассмотрим пример, когда для каждой номенклатуры необходимо изменить цену.

Внешние обработки в 1с

Настроим свойства Объекта Номенклатура при изменении.

Внешние обработки в 1с

Созданная процедура будет запускаться на Клиенте и на Сервере. В процедуре будем использовать запрос. Код процедуры будет следующий.

Внешние обработки в 1с

Данный код позволяет получить цену номенклатуры из регистра сведений цены.

Настроим программную запись в регистр сведений Цены:

  1. Создадим независимый регистр Сведений цены с периодом в течении дня.
Регистр сведений
  • Заполним Регистр одним значением.
  • Настроим кнопку записать следующим образом.
Регистр сведений

В модуль обработки добавляется следующий код, обработка размещается во внешних:

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

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

Функция ПолучитьТаблицуКоманд()
  Команды = Новый ТаблицаЗначений;
  Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
  Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
  Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление;
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;

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

Вывод: В результате нами создана внешняя обработка для заполнения регистра сведений цены. Внешние обработки в 1с получили широкое распространение. Они могут использоваться для загрузки и выгрузки различных данных.