Имя: Пароль:
1C
1С v8
Обход заданного количества дней всеми записями выборки
0 letovd
 
18.07.19
08:39
Есть некий код, выбираются записи выборки, далее в цикле обход по всем дням и проверка на кратность.
Но когда выбирается следующая запись выборки, то мой день1(накопился xD и) = день2 и соответственно не идет обход по дням)
Помогите выбраться из этой ямы))

        РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    День1 = Дата('20190718');
    День2 = Дата('20190725');
    Пока День1 <= День2 Цикл
    Пока Выборка.Следующий() Цикл
        ДатаПриема = Выборка.ДатаПриема;
        
        Пока День1 <= День2 Цикл

            НомерДня = (КонецДня(День1) - КонецДня(ДатаПриема)         

                НаборЗаписей = РегистрыСведений.График.СоздатьНаборЗаписей();
                                НаборЗаписей.Отбор.Период.Установить(День1);
                  НаборЗаписей.Прочитать();
                
                  НоваяЗапись = НаборЗаписей.Добавить();
                НоваяЗапись.Период = День1;
                НоваяЗапись.НомерСотрудника= Выборка.НомерСотрудника;
                НоваяЗапись.ФИО= Выборка.ФИО;
                        
            Если НомерДня % Выборка.ПериодичностьРаботы = 0 Тогда // если порядковый номер дня кратен дате приема > запись
                НоваяЗапись.ОбъемРаботы = Выборка.ОбъемРаботы;
            КонецЕсли;
            
            Если НомерДня % Выборка.ПериодичностьСмен = 0 Тогда // если порядковый номер дня кратен дате приема > запись
                    НоваяЗапись.ОбъемДней = Выборка.ОбъемДней;    
            КонецЕсли;
            
                НаборЗаписей.Записать(Истина);
                НаборЗаписей.Очистить();

            
            День1 = КонецДня(День1) + 1;
        КонецЦикла;

    КонецЦикла;
1 catena
 
18.07.19
08:45
(0)Ну так присваивай начальное значение после открытия выборки Выборки, но до цикла по дням.
2 letovd
 
18.07.19
08:49
(1) спасибо!!!
Основная теорема систематики: Новые системы плодят новые проблемы.