Новая таблица обработчиков обновления. Возвращает пустую таблицу обработчиков обновления и первоначального заполнения ИБ.
// Возвращает пустую таблицу обработчиков обновления и первоначального заполнения ИБ.
//
// Возвращаемое значение:
// ТаблицаЗначений - таблица с колонками:
// 1) Для всех типов обработчиков обновления:
//
// * НачальноеЗаполнение - Булево - если Истина, то обработчик должен срабатывать при запуске на "пустой" базе.
// * Версия - Строка - например, "2.1.3.39". Номер версии конфигурации, при переходе
// на которую должна быть выполнена процедура-обработчик обновления.
// Если указана пустая строка, то это обработчик только для начального заполнения
// (должно быть указано свойство НачальноеЗаполнение).
// * Процедура - Строка - полное имя процедуры-обработчика обновления/начального заполнения.
// Например, "ОбновлениеИнформационнойБазыУПП.ЗаполнитьНовыйРеквизит"
// Обязательно должна быть экспортной.
// * РежимВыполнения - Строка - режим выполнения обработчика обновления. Допустимые значения:
// Монопольно, Отложенно, Оперативно. Если значение не заполнено, обработчик
// считается монопольным.
//
// 2) Для обработчиков обновления в модели сервиса:
//
// * ОбщиеДанные - Булево - если Истина, то обработчик должен срабатывать до
// выполнения любых обработчиков, использующих разделенные данные.
// Допустимо указывать только для обработчиков с режимом выполнения Монопольно и Оперативно.
// Если указать значение Истина для обработчика с режимом
// выполнения Отложенно, будет выдано исключение.
// * УправлениеОбработчиками - Булево - если Истина, то обработчик должен иметь параметр типа Структура, в котором
// есть свойство РазделенныеОбработчики - таблица значений со структурой,
// возвращаемой этой функцией.
// При этом колонка Версия игнорируется. В случае необходимости выполнения
// разделенного обработчика в данную таблицу необходимо добавить строку с
// описанием процедуры обработчика.
// Имеет смысл только для обязательных (Версия = *) обработчиков обновления
// с установленным флагом ОбщиеДанные.
//
// 3) Для отложенных обработчиков обновления:
//
// * Комментарий - Строка - описание действий, выполняемых обработчиком обновления.
// * Идентификатор - УникальныйИдентификатор - необходимо заполнять для обработчиков отложенного обновления,
// для остальных заполнение не требуется. Требуется для идентификации
// обработчика в случае его переименования.
//
// * БлокируемыеОбъекты - Строка - необходимо заполнять для обработчиков отложенного обновления,
// для остальных заполнение не требуется. Полные имена объектов через запятую,
// которые следует блокировать от изменения до завершения процедуры обработки данных.
// Если заполнено, то также требуется заполнить и свойство ПроцедураПроверки.
// * ПроцедураПроверки - Строка - необходимо заполнять для обработчиков отложенного обновления,
// для остальных заполнение не требуется. Имя функции, которая для переданного объекта
// определяет, завершена ли для него процедура обработки данных.
// Если переданный объект обработан, то следует вернуть значение Истина.
// Вызывается из процедуры ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан.
// Параметры, передаваемые в функцию:
// Параметры - Структура - см. ОбновлениеИнформационнойБазы.МетаданныеИОтборПоДанным.
//
// 4) Для обработчиков обновления в библиотеках (конфигурации) с параллельным режимом выполнения отложенных обработчиков:
//
// * ПроцедураЗаполненияДанныхОбновления - Строка - указывается процедура, которая регистрирует данные,
// подлежащие обновлению данным обработчиком.
// * ЗапускатьТолькоВГлавномУзле - Булево - только для обработчиков отложенного обновления с режимом выполнения Параллельно.
// Указать Истина, если обработчик обновления должен выполняться только в главном
// узле РИБ.
// * ЗапускатьИВПодчиненномУзлеРИБСФильтрами - Булево - только для обработчиков отложенного обновления с режимом
// выполнения Параллельно.
// Указать Истина, если обработчик обновления должен также выполняться в
// подчиненном узле РИБ с фильтрами.
// * ЧитаемыеОбъекты - Строка - объекты, которые обработчик обновления будет читать при обработке данных.
// * ИзменяемыеОбъекты - Строка - объекты, которые обработчик обновления будет изменять при обработке данных.
// * ПриоритетыВыполнения - ТаблицаЗначений - таблица приоритетов выполнения между отложенными обработчиками,
// изменяющими или читающими одни и те же данные. Подробнее см. в комментарии
// к функции ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика.
//
// 5) Для внутреннего использования:
//
// * ВыполнятьВГруппеОбязательных - Булево - следует указывать, если обработчик требуется
// выполнять в одной группе с обработчиками на версии "*".
// При этом возможно менять порядок выполнения обработчика
// относительно других путем изменения приоритета.
// * Приоритет - Число - для внутреннего использования.
//
// 6) Устарели, используются для обратной совместимости (для новых обработчиков не указывать):
//
// * МонопольныйРежим - Неопределено, Булево - если указано Неопределено, то обработчик
// должен безусловно выполняться в монопольном режиме.
// Для обработчиков перехода на конкретную версию (версия <> *):
// Ложь - обработчик не требует монопольного режима для выполнения.
// Истина - обработчик требует монопольного режима для выполнения.
// Для обязательных обработчиков обновления (Версия = "*"):
// Ложь - обработчик не требует монопольного режима.
// Истина - обработчик может требовать монопольного режима для выполнения.
// В такие обработчики передается параметр типа структура
// со свойством МонопольныйРежим (типа Булево).
// При запуске обработчика в монопольном режиме передается
// значение Истина. В этом случае обработчик должен выполнить
// требуемые действия по обновлению. Изменение параметра
// в теле обработчика игнорируется.
// При запуске обработчика в немонопольном режиме передается
// значение Ложь. В этом случае обработчик не должен вносить никакие
// изменения в ИБ.
// Если в результате анализа выясняется, что обработчику требуется
// изменить данные ИБ, следует установить значение параметра в Истина
// и прекратить выполнение обработчика.
// В этом случае оперативное (немонопольное) обновление ИБ будет
// отменено и будет выдана ошибка с требованием выполнить обновление в
// монопольном режиме.
//
Функция НоваяТаблицаОбработчиковОбновления() Экспорт
Обработчики = Новый ТаблицаЗначений;
// Общие свойства.
Обработчики.Колонки.Добавить("НачальноеЗаполнение", Новый ОписаниеТипов("Булево"));
Обработчики.Колонки.Добавить("Версия", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0)));
Обработчики.Колонки.Добавить("Процедура", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0)));
Обработчики.Колонки.Добавить("РежимВыполнения", Новый ОписаниеТипов("Строка"));
// Для библиотек.
Обработчики.Колонки.Добавить("ВыполнятьВГруппеОбязательных", Новый ОписаниеТипов("Булево"));
Обработчики.Колонки.Добавить("Приоритет", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(2)));
// Для модели сервиса.
Обработчики.Колонки.Добавить("ОбщиеДанные", Новый ОписаниеТипов("Булево"));
Обработчики.Колонки.Добавить("УправлениеОбработчиками", Новый ОписаниеТипов("Булево"));
// Для отложенных обработчиков обновления.
Обработчики.Колонки.Добавить("Комментарий", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0)));
Обработчики.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("УникальныйИдентификатор"));
Обработчики.Колонки.Добавить("ПроцедураПроверки", Новый ОписаниеТипов("Строка"));
Обработчики.Колонки.Добавить("БлокируемыеОбъекты", Новый ОписаниеТипов("Строка"));
// Для параллельного режима отложенного обновления.
Обработчики.Колонки.Добавить("ПроцедураЗаполненияДанныхОбновления", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0)));
Обработчики.Колонки.Добавить("ОчередьОтложеннойОбработки", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(4)));
Обработчики.Колонки.Добавить("ЗапускатьТолькоВГлавномУзле", Новый ОписаниеТипов("Булево"));
Обработчики.Колонки.Добавить("ЗапускатьИВПодчиненномУзлеРИБСФильтрами", Новый ОписаниеТипов("Булево"));
Обработчики.Колонки.Добавить("ЧитаемыеОбъекты", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0)));
Обработчики.Колонки.Добавить("ИзменяемыеОбъекты", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0)));
Обработчики.Колонки.Добавить("ПриоритетыВыполнения");
Обработчики.Колонки.Добавить("Многопоточный", Новый ОписаниеТипов("Булево"));
// Устарело. Обратная совместимость с редакцией "2.2".
Обработчики.Колонки.Добавить("Опциональный");
Обработчики.Колонки.Добавить("МонопольныйРежим");
Возврат Обработчики;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
НовыеПараметрыОбработчикаОбновления (БСП)
НовоеОписаниеОбрабатываемыхДанных (БСП)
ДанныеДляОбновленияВМногопоточномОбработчике (БСП)
НовыйКонтекстПолученияИУстановкиОбновлений (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)