Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 14:17

Запрос из регистра сведений

Автор programmister, 16 июл 2018, 10:32

0 Пользователей и 1 гость просматривают эту тему.

programmister

Сделал так:  ТЗ = Запрос.Выполнить().Выбрать();
      Пока ТЗ.Следующий Цикл
     
      Для Номер = 1 По 31 Цикл
         Колонка = Строка["Колонка" + Номер];
         
                   
        // Если ТЗ.Количество() > 0 Тогда
         Если (Номер >= ДЕНЬ(ТЗ[0].ДатаНачала)) и (Номер <= ДЕНЬ(ТЗ[0].ДатаОкончания)) и (Колонка = "я") Тогда
               Колонка = НРег(Лев(ТЗ[0].ВидОтклонения,2));
               Строка["Колонка" + Номер] = Колонка;
               Строка["Время" + Номер] = 0;
         КонецЕсли;
         КонецЕсли;


Ошибка  Поле объекта не обнаружено (Следующий)
      Пока ТЗ.Следующий Цикл

LexaK

Пока ТЗ.Следующий() Цикл //скобки добавьте

да и здесь и далее
     Если (Номер >= ДЕНЬ(ТЗ[0].ДатаНачала)) и (Номер <= ДЕНЬ(ТЗ[0].ДатаОкончания)) и (Колонка = "я") Тогда
ТЗ[0] - уже не надо, просто ТЗ

если помогло нажмите: Спасибо!

programmister

Спасибо огромное!!!! Работает!!!
ТЗ = Запрос.Выполнить().Выбрать();
     //+
     Пока ТЗ.Следующий() Цикл
     
      Для Номер = 1 По 31 Цикл
         Колонка = Строка["Колонка" + Номер];
         
                   
         //Если ТЗ.Количество() > 0 Тогда
         Если (Номер >= ДЕНЬ(ТЗ.ДатаНачала)) и (Номер <= ДЕНЬ(ТЗ.ДатаОкончания)) и (Колонка = "я") Тогда
               Колонка = НРег(Лев(ТЗ.ВидОтклонения,2));
               Строка["Колонка" + Номер] = Колонка;
               Строка["Время" + Номер] = 0;
        // КонецЕсли;
         КонецЕсли;
         

Добавлено: 17 июл 2018, 05:51


Опять глюк((((( теперь получается что отклонения из регистра берутся как надо то есть если их несколько то он их заполняет но при этом первое задваивается, если я правильно понимаю это из за того что  Пока ТЗ.Следующий() Цикл цикл берет первое значение из регистра затем на этапе следующей итерации он добаляет к этому количеству дней (отпуска командировки) еще такое же количество и в итоге получается что по факту человек брал с 1 по 5 число отпуск 5 дней а с 10 по 15 командировка 5 дней у меня показывает что с 1 по 5 отпуск не 5 а 10 дней и командировка при этом правильно отображается 5 дней, как сделать так чтоб дни не задваивались?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск