Регистры сведений: изменить регистр при добавлении нового измерения

1. Arkadag 06.03.21 10:30 Сейчас в теме
Приветствую, Форумчане!
1с8.3.12, самопис, УФ

Имеется регистр "РегистрЦен"
Измерения: Номенклатура, Цена
Регистратор: документ "Установка цены" (ТЧ: Номенклатура, Цена)

Недавно решили в документ добавить реквизит "Модель" (составной: "Модель1" и "Модель2"), причем модели применяются не у всей номенклатуры...
Этот реквизит соответственно тоже должен отражаться в регистре сведений цен, что было благополучно сделано... Но

Стало невозможно использовать этот регистр как "срез последнего", т.к. в регистраторе теперь есть записи с "Модель" НЕОПРЕДЕЛЕНО (старые записи) и новые записи с Пустой ссылкой на "Модель" в случае, если модель не применяется...

01.01.2019 Товар1 300 денег Модель "Неопределено"
01.01.2021 Товар1 350 денег Модель "Справочник.Модель.Пустаяссылка

Далее понимаете катастрофу в ситуации.
Конечно можно переделать все запросы к этому регистру типа выбрать 1 по сортировке, но сами понимаете как это весело...

Есть ли какой-нить простой и безопасный способ переделать регистр сведений, чтобы обновить старые записи с учетом нового реквизита?

Сейчас мысль только одна: писать обработку и изменять все записи

НаборЗаписей = РегистрыСведений.РегистрЦен.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Модель.Установить(Неопределено);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
     Запись.Модель = Справочник.Модель.ПустаяСсылка;
КонецЦикла;
НаборЗаписей.Записать(); 


Посоветуйте
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 06.03.21 10:39 Сейчас в теме
(1)
Выбрать Период, Регистратор, Номенклатура, Цена, ВЫБОР КОГДА НЕ Модель = ЗНАЧЕНИЕ(Справочник.Модели.ПустаяСсылка) Тогда ЗНАЧЕНИЕ(Справочник.Модели.ПустаяСсылка)  ИНАЧЕ Модель КОНЕЦ КАК Модель ИЗ РегистрСведений.РегистрЦен ИТОГИ ПО Регистратор


далее:

Выборка = Запрос.Выполнить().Выбрать(ОбходРезультата.ПоГруппировкам);

Пока выборка.Следующий() Цикл

НЗ = РегистрСведений.РегистрЦен.СоздатьНаборЗаписей();
НЗ.Отбор.Регистратор.Установить(Выборка.Регистратор);

ВыборкаДЗ = Выборка.Выбрать();

Пока ВыборкаДЗ.Следующий() Цикл

ЗаполнитьЗначенияСвойств(НЗ.Добавить(), ВыборкаДЗ);

КонецЦикла;

НЗ.Записать();

КонецЦикла;
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот