Произвольный обработчик перед выполнением проекта

В данной статье продемонстрирован пример произвольного обработчика перед выполнением проекта в Экстракторе 1С.

Этот обработчик используется для задания параметров источника. Например, есть запрос, задающий сегментирование по параметру «Буква» (первая буква наименования), и при этом, имеющий 2 параметра просто для вывода значений поля.

Примечание

Данный пример продемонстрирован на версии 3.11.1.44 Экстрактора 1С.

Итак, заходим в раздел «Проекты» Экстрактора 1С, нажимаем «Создать».

Выбираем тип источника данных «Запрос».

В открывшемся окне задаем наименование и добавляем текст запроса (Вы можете использовать предоставленный в данной статье текст запроса, составить свой на языке программирования 1С или воспользоваться конструктором запроса по кнопке «Конструктор…», как это сделать смотрите в статье).

Текст запроса для копирования:
ВЫБРАТЬ &ТекущаяДата КАК ДатаВыгрузки, &КомментарийКВыгрузке КАК КомментарийВыгрузки, Номенклатура.Ссылка КАК Номенклатура, Номенклатура.Родитель КАК Род_1, Номенклатура.Родитель.Родитель КАК Род_2, Номенклатура.Родитель.Родитель.Родитель КАК Род_3, Номенклатура.Код КАК Код, Номенклатура.Артикул КАК Артикул, Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры, Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры, Номенклатура.Родитель.Родитель.Родитель.Родитель КАК Род_4, ПОДСТРОКА(Номенклатура.Наименование, 1, 1) КАК Буква, Номенклатура.НаименованиеПолное КАК НаименованиеПолное, Номенклатура.Наименование КАК Наименование, Номенклатура.Производитель КАК Производитель, Номенклатура.Родитель.Ссылка КАК РодительСсылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ ПОДСТРОКА(Номенклатура.Наименование, 1, 1) = &Буква

На этапе настройки набора данных оставляем все без изменений. Вкладки «Отбор» и «Параметры» также оставляем без изменений.

Пропускаем этап настройки вычисляемых полей.

Затем выбираем подключение и создаем таблицу-приемник (6 и 7 этапы инструкции по созданию проекта). На этапе сопоставления полей проверяем установленные флаги для сегмента.

Этап расширенных настроек пропускаем и завершаем настройку проекта.

Затем задаем наименование проекту в соответствующем поле, затем заходим в настройки строки проекта с помощью кнопки .

Теперь настроим обработчик событий проекта:

  • переходим во вкладку «Обработчики»;

  • активируем переключатель «Перед выгрузкой»;

  • выбираем тип «Обработчик»

  • нажимаем кнопку для добавления произвольного обработчика.

В открывшемся окне вставляем предложенный ниже листинг кода обработчика в поле «Алгоритм».

Листинг кода обработчика перед выполнением проекта
//---------------------------------Параметры обработчика: //"СтруктураПроекта" - это структура из реквизитов проекта. //"Объект" - устаревшее, то же что и "СтруктураПроекта", оставлено для совместимости. // Ссылка на проект содержится в СтруктураПроекта.Ссылка, строки проекта в массиве СтруктураПроекта.СтрокиПроекта // В структуре проекта есть свойство "Параметры", которое можно использовать для установки параметров источника. // В строках проекта есть аналогичное свойство, которое переопределит параметр проекта перед выполнением строки. //"Параметры" - параметры обработчика, тип соответствие. //"ТекстОшибки" - значение этого параметра возвращается из обработчика и, если он не пустой, будет записан в лог и приведет к остановке выгрузки проекта //-------------------------------------------------------- //вычислим текущую дату ЗначениеТекущейДаты = ТекущаяДата(); //запомним значения параметров проекта в переменные ИмяПараметраТекДата = Параметры.Получить("Дата выгрузки имя параметра в запросе"); ИмяПараметраКомментарийКВыгрузке = Параметры.Получить("Комментарий к выгрузке имя параметра в запросе"); //установим параметры источника СтруктураПроекта.Параметры.Вставить(ИмяПараметраТекДата, ЗначениеТекущейДаты); СтруктураПроекта.Параметры.Вставить(ИмяПараметраКомментарийКВыгрузке, "Первичная выгрузка данных");

Остановимся на данных выражениях подробнее:

ИмяПараметраТекДата = Параметры.Получить("Дата выгрузки имя параметра в запросе"); ИмяПараметраКомментарийКВыгрузке = Параметры.Получить("Комментарий к выгрузке имя параметра в запросе");

Здесь указаны параметрам запроса-источника данных, для которых необходимо настроить соответствие задаваемым параметров. Для этого в поле «Параметры» добавляем:

  • «Дата выгрузки имя параметра в запросе», указываем тип «Строка»;

  • «Комментарий к выгрузке имя параметра в запросе», указываем тип «Строка».

Задаем имя создаваемому обработчику и нажимаем «Записать и закрыть».

Теперь остается указать параметры обработчика. Нажимаем кнопку , указываем значения:

  • Дата выгрузки имя параметра в запросе — ТекущаяДата;

  • Комментарий к выгрузке имя параметра в запросе — КомментарийКВыгрузке.

И нажимаем в этом окне «Сохранить и закрыть».

Остается только выполнить выгрузку: нажимаем поочередно кнопки «Записать», «Сформировать очередь» и «Выполнить проект».

Выгрузка будет выглядеть следующим образом: