Обновлятор: Установка общей даты запрета изменения. БП3
Если установить общую дату вручную:
То в регистре сведений ДатыЗапретаИзменения это выглядит так:
Скрипт для обновлятора, который устанавливает аналогичные настройки выглядит так:
#use "updater1c" // **************************************************************************** // Переменные модуля // **************************************************************************** Перем errors; // Признак того, что при выполнении скрипта были ошибки. Перем updater; // Обновлятор, через который мы получаем информацию о базе, // а также вызываем различные функции обновлятора. Перем connector; // Коннектор для подключения к базе. Перем v8; // Само подключение к базе через коннектор. // **************************************************************************** // Ваш код для выполнения обновлятором // **************************************************************************** Процедура Главная() //========================================================================================== // У С Т А Н О В К А Д А Т Ы З А П Р Е Т А И З М Е Н Е Н И Я Д А Н Н Ы Х //========================================================================================== ДатаЗапрета = '20231001'; //Здесь указать дату запрета //Внимание - удаляются все даты запрета изменения данных и оставляется только одна общая НЗ = v8.РегистрыСведений.ДатыЗапретаИзменения.СоздатьНаборЗаписей(); МЗ = НЗ.Добавить(); МЗ.Пользователь = v8.Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей; МЗ.Объект = v8.ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка(); МЗ.Раздел = v8.ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка(); МЗ.ДатаЗапрета = ДатаЗапрета; НЗ.Записать(); КонецПроцедуры // **************************************************************************** // Служебные процедуры // **************************************************************************** Процедура ПриНачалеРаботы() errors = Ложь; updater = Новый Updater1C; // Если в скрипте не планируется использовать // подключение к базе - просто закомментируйте // две нижние строки. connector = updater.CreateConnector(); v8 = updater.BaseConnectNew(connector); КонецПроцедуры Процедура ПриОкончанииРаботы() Если v8 <> Неопределено Тогда Попытка ОсвободитьОбъект(v8); v8 = Неопределено; Исключение КонецПопытки; КонецЕсли; Если connector <> Неопределено Тогда Попытка ОсвободитьОбъект(connector); connector = Неопределено; Исключение КонецПопытки; КонецЕсли; Если updater <> Неопределено Тогда Попытка ОсвободитьОбъект(updater); updater = Неопределено; Исключение КонецПопытки; КонецЕсли; Если errors Тогда ЗавершитьРаботу(1); КонецЕсли; КонецПроцедуры // **************************************************************************** // Инициализация и запуск скрипта // **************************************************************************** ПриНачалеРаботы(); Попытка Главная(); updater.КодПользователяВыполнился(); Исключение errors = Истина; Сообщить("" + ОписаниеОшибки() + ""); КонецПопытки; ПриОкончанииРаботы();
При этом очищаются все даты запрета обновления, остается только общая.
Запускать лучше с такими настройками (выделено красным):
UPD 2023-12-14: на релизе БП 3.0.144.49 проявился нюанс — первоначальный скрипт выдавал вот такой результат:
Консолью кода проверил как выглядит регистр у меня:
И как он выглядит если поставить вручную общую дату запрета:
Поправил скрипт, чтобы он устанавливал объект и раздел.
Среда: БП 3.0.144.49
Свежие комментарии