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

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 71 06.03.21 10:39 Сейчас в теме
(1)
Выбрать Период, Регистратор, Номенклатура, Цена, ВЫБОР КОГДА НЕ Модель = ЗНАЧЕНИЕ(Справочник.Модели.ПустаяСсылка) Тогда ЗНАЧЕНИЕ(Справочник.Модели.ПустаяСсылка)  ИНАЧЕ Модель КОНЕЦ КАК Модель ИЗ РегистрСведений.РегистрЦен ИТОГИ ПО Регистратор


далее:

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

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

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

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

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

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

КонецЦикла;

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

КонецЦикла;
Показать
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)