Заменить разделы дат запрета на новые. Обработчик заменяет разделы дат запрета регистре на новые.
// Обработчик заменяет разделы дат запрета регистре на новые.
Процедура ЗаменитьРазделыДатЗапретаНаНовые() Экспорт
Блокировка = Новый БлокировкаДанных;
Блокировка.Добавить("РегистрСведений.ДатыЗапретаИзменения");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Разделы.Ссылка КАК Ссылка,
| Разделы.УдалитьНоваяСсылка КАК УдалитьНоваяСсылка
|ИЗ
| ПланВидовХарактеристик.РазделыДатЗапретаИзменения КАК Разделы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДатыЗапретаИзменения КАК ДатыЗапретаИзменения
| ПО (ДатыЗапретаИзменения.Раздел = Разделы.Ссылка)
| И (Разделы.УдалитьНоваяСсылка <> ЗНАЧЕНИЕ(ПланВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка))";
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СтарыеЗаписи = РегистрыСведений.ДатыЗапретаИзменения.СоздатьНаборЗаписей();
СтарыеЗаписи.Отбор.Раздел.Установить(Выборка.Ссылка);
СтарыеЗаписи.Прочитать();
НовыеЗаписи = РегистрыСведений.ДатыЗапретаИзменения.СоздатьНаборЗаписей();
НовыеЗаписи.Отбор.Раздел.Установить(Выборка.УдалитьНоваяСсылка);
НовыеЗаписи.Прочитать();
Если НовыеЗаписи.Количество() > 0 Тогда
СтарыеЗаписи.Очистить();
ОбновлениеИнформационнойБазы.ЗаписатьДанные(СтарыеЗаписи, Ложь);
Иначе
Для Каждого СтараяЗапись Из СтарыеЗаписи Цикл
НоваяЗапись = НовыеЗаписи.Добавить();
ЗаполнитьЗначенияСвойств(НоваяЗапись, СтараяЗапись);
НоваяЗапись.Раздел = Выборка.УдалитьНоваяСсылка;
Если СтараяЗапись.Раздел = СтараяЗапись.Объект Тогда
НоваяЗапись.Объект = Выборка.УдалитьНоваяСсылка;
КонецЕсли;
КонецЦикла;
СтарыеЗаписи.Очистить();
ОбновлениеИнформационнойБазы.ЗаписатьДанные(СтарыеЗаписи, Ложь);
ОбновлениеИнформационнойБазы.ЗаписатьДанные(НовыеЗаписи, Ложь);
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПриЗаполненииРазделовДатЗапретаИзменения (БСП)
ОчиститьПредопределенныеЭлементыРазделовДатЗапрета (БСП)
ОбновитьРазделыДатЗапретаИзменения (БСП)