Имя: Пароль:
1C
1С v8
Регистр сведений. Отбор с условием больше или меньше.
0 antihacker
 
19.01.17
06:11
Всем привет. Наверное все знают, что отбор по регистру сведений с условием больше или меньше нельзя. Или я ошибаюсь. Таким образом пришлось использовать запрос.

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


    
                РезультатПроданныеТовары = ЗапросПроданныеТовары.Выполнить();

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

                                ТекЗапись.ЧекФРРаспечатан = вхТипУтверждения;
                                ТекЗапись.ОшибкаФРКоментарии = РеузльтатФР;

                КонецЦикла;

                НаборЗаписейПроданныеТовары.Записать();


Но он почему то из реестра удаляет все записи и оставляет измененные строки из запроса. Что я не правильно делаю ?
1 mkalimulin
 
19.01.17
06:20
(0) Так в 1С придумали. Прежде чем писать, надо сначала прочитать. Такая кондовая 1С-овская мудрость.
2 antihacker
 
19.01.17
06:26
Нет. Тут с логикой все правильно. Если хочешь изенить данные существующий строки, то надо сперва прочитать данную строку.
3 Альбатрос
 
19.01.17
06:49
(0) А чего ожидал? Ты взял весь набор записей без отбора и переписал его своей табличкой.
4 antihacker
 
19.01.17
06:59
Да да до твего поста заметил )))

Вот это

НаборЗаписейПроданныеТовары.Записать();

на это заменил

НаборЗаписейПроданныеТовары.Прочитать();

Все на месте. Но почему то строка ТекЗапись.ОшибкаФРКоментарии = РеузльтатФР;
заменяет  все строки. Почему ?
5 Heckfy
 
19.01.17
08:59
Юзайте МенеджерЗаписи. :)