Имя: Пароль:
1C
1С v8
Замена значения в регистре сведений
0 1Сергей
 
10.09.15
09:36
Опять потребовалось заменить значение в регистре сведений, нашел старую обработку.

Подумалось, зачем эти танцы с таблицей? Или почему надо делать именно так?

Склад = Справочники.Склады.НайтиПоКоду("000001104");
СкладНов = Справочники.Склады.НайтиПоКоду("000000793");

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

Если НаборЗаписей.Количество() > 0 Тогда
    
    // Запоминаем записи и подменяем Склад
    ТаблицаЗаписей = НаборЗаписей.Выгрузить();
    ТаблицаЗаписей.ЗаполнитьЗначения(СкладНов, "Склад");
    
    // Удаляем записи по плохой номенклатуре
    НаборЗаписей.Очистить();
    НаборЗаписей.Записать();
    
    // Загружаем записи из сохраненной таблицы
    НаборЗаписей.Отбор.Номенклатура.Установить(СкладНов);
    НаборЗаписей.Загрузить(ТаблицаЗаписей);
    НаборЗаписей.Записать(Ложь);
    
КонецЕсли;
1 ДенисЧ
 
10.09.15
09:37
а зачем так было сделано?
2 butterbean
 
10.09.15
09:39
>> НаборЗаписей.Отбор.Номенклатура.Установить(СкладНов);
это что за косяк?
3 1Сергей
 
10.09.15
09:40
(1) Склероз :(
Кажется, там могли быть неуникальные записи. Может быть?
4 1Сергей
 
10.09.15
09:40
(2) да, косяк. склад там