Имя: Пароль:
1C
 
Туплю с регистром сведений.
0 Zombi
 
04.08.16
15:47
Нужно почистить измерение в РС, пишу:


Процедура КнопкаВыполнитьНажатие(Кнопка)

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ОтчетОРозничныхПродажах.Ссылка
                   |ИЗ
                   |    Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
                   |ГДЕ
                   |    ОтчетОРозничныхПродажах.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";
                  
    Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
    Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Список = Новый СписокЗначений;
    
    Пока Выборка.Следующий() Цикл
            
        НаборЗаписей = РегистрыСведений.ОбщепитУчетДанныхПродаж.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.ДокументПриемник.Установить(Выборка.Ссылка);
        НаборЗаписей.Прочитать();
        
        Таблица = НаборЗаписей.Выгрузить();
        
        НаборЗаписей.Очистить();
        НаборЗаписей.Записать(Истина);
        
        Таблица.ЗаполнитьЗначения(Документы.ОтчетОРозничныхПродажах.ПустаяСсылка(), "ДокументПриемник");
        Таблица.ЗаполнитьЗначения(Ложь, "ОбновленПриемник");
        
        
        НаборЗаписей = РегистрыСведений.ОбщепитУчетДанныхПродаж.СоздатьНаборЗаписей();
        НаборЗаписей.Загрузить(Таблица);

        
        НаборЗаписей.Записать(Истина);

        
    КонецЦикла;
    
КонецПроцедуры


Затираются все записи. Где туплю?
1 Волшебник
 
модератор
04.08.16
15:48
отбор не установился
2 Волшебник
 
модератор
04.08.16
15:48
во втором наборе нет отбора
3 StanislawJack
 
04.08.16
16:01
(2) или закомментировать повторное создание набора:
НаборЗаписей = РегистрыСведений.ОбщепитУчетДанныхПродаж.СоздатьНаборЗаписей();
4 Zombi
 
04.08.16
16:02
Процедура КнопкаВыполнитьНажатие(Кнопка)

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ОтчетОРозничныхПродажах.Ссылка
                   |ИЗ
                   |    Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
                   |ГДЕ
                   |    ОтчетОРозничныхПродажах.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";
                  
    Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
    Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Список = Новый СписокЗначений;
    
    Пока Выборка.Следующий() Цикл
            
        НаборЗаписей = РегистрыСведений.ОбщепитУчетДанныхПродаж.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.ДокументПриемник.Установить(Выборка.Ссылка);
        НаборЗаписей.Прочитать();
        
        Таблица = НаборЗаписей.Выгрузить();
        
        НаборЗаписей.Очистить();
        НаборЗаписей.Записать(Истина);
        
        Таблица.ЗаполнитьЗначения(Документы.ОтчетОРозничныхПродажах.ПустаяСсылка(), "ДокументПриемник");
        Таблица.ЗаполнитьЗначения(Ложь, "ОбновленПриемник");
        
        
        НаборЗаписей = РегистрыСведений.ОбщепитУчетДанныхПродаж.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.ДокументПриемник.Установить(Документы.ОтчетОРозничныхПродажах.ПустаяСсылка());
        
        НаборЗаписей.Загрузить(Таблица);
        //
        //Для Каждого Движение Из НаборЗаписей Цикл
        //    
        //    Движение.ДокументПриемник = Документы.ОтчетОРозничныхПродажах.ПустаяСсылка();
        //    Движение.ОбновленПриемник = Ложь;
        //    
        //КонецЦикла; //Для
        
        //НаборЗаписей.Отбор.ДокументПриемник.Установить(Документы.ОтчетОРозничныхПродажах.ПустаяСсылка());
        НаборЗаписей.Записать(Истина);
        
        //НаборЗаписей.Очистить();
        //НаборЗаписей.Отбор.ДокументПриемник.Установить(Выборка.Ссылка);
        //НаборЗаписей.Записать();
        
    КонецЦикла; //Пока
    
КонецПроцедуры


Удаляет записи.
5 StanislawJack
 
04.08.16
16:06
А! Понятно :) Вы читаете записи по отбору реквизита "ДокументПриемник", потом очищаете это значение (ПустаяСсылка) и записываете по тому же отбору (ПустаяСсылка). То есть в результате у все записи сливаются в одну с пустым значением "ДокументПриемник". Что хотели получить в итоге то?
6 StanislawJack
 
04.08.16
16:09
Я так думаю, что надо использовать больше измерений в отборах, что бы сохранить уникальность каждого из считываемых/записываемых наборов записей.
7 anatoly
 
04.08.16
16:16
на ИС есть обработка для любых действий с РС, бесплатно.
8 aleks_default
 
04.08.16
16:26
сначала бы объяснили смысл этого действа
9 Zombi
 
05.08.16
07:20
Да, измерения добавить надо было. Спасибо всем. А с утра лучше думается.
10 FIXXXL
 
05.08.16
08:20
(9) конечно, проще некуда
старое переименовываешь с префиксом Удалить, создаешь новое измерение
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший