Имя: Пароль:
1C
1С v8
Использование СледующийПоЗначениюПоля
0 егаис
 
03.03.19
22:53
Сразу извинюсь за глупый вопрос, но никогда данной конструкцией не пользовался
На выходе имеем выборку запроса с полями "Сотрудник, Транспортное средство, ВидВремени, Дата, Дни, Часы". (функция возвращает выборку Запрос.Выполнить().Выбрать())
Следующая конструкция
    Пока ВыборкаДанныхОВремени.СледующийПоЗначениюПоля("Сотрудник") Цикл
        Пока ВыборкаДанныхОВремени.СледующийПоЗначениюПоля("ТС") Цикл
            Пока ВыборкаДанныхОВремени.Следующий() Цикл
КонецЦикла;
КонецЦикла;
КонецЦикла;

имеем место быть? Вложенность учтется или получим кашу в виде выбора сначала сотрудников, потом различных ТС?
Нужно без итогов в запросе считывать вложенно данные, по группировке Сотрудник -> ТС -> Остальные данные
1 palsergeich
 
03.03.19
22:55
Учтется
2 palsergeich
 
03.03.19
22:55
Но надо аккуратно
3 егаис
 
03.03.19
22:58
да вот какая-то херня получается
Иванов УАЗ 001
Иванов УАЗ 002
Иванов УАЗ 001

1 и 3 строка отличаются остальными данным, т.е. нет группировки по Сотрудник->ТС
4 егаис
 
03.03.19
22:59
за основу взят табель УАТ 2.1
Нужен допил в части табеля в разрезе ТС

споткнулся на какой-то фигне
5 palsergeich
 
03.03.19
23:01
Ну дык проблема то на ВыборкаДанныхОВремени.Следующий()
Подумай как дорабатывать
6 егаис
 
03.03.19
23:03
заремил
все равно трижды залетает в цикл
    Пока ВыборкаДанныхОВремени.СледующийПоЗначениюПоля("Сотрудник") Цикл
        Пока ВыборкаДанныхОВремени.СледующийПоЗначениюПоля("ТС") Цикл
            ДанныеОВремениПоСотруднику.Очистить();
            //Пока ВыборкаДанныхОВремени.Следующий() Цикл
            //    СтрокаТаблицыДанныхОВремени = ДанныеОВремениПоСотруднику.Добавить();
            //    ЗаполнитьЗначенияСвойств(СтрокаТаблицыДанныхОВремени, ВыборкаДанныхОВремени);
            //КонецЦикла;    
            //
            //Если СтрокиПоСотрудникам = Неопределено Тогда
            //    МассивСтрокПоСотруднику = ТабельНоваяСтрокаДанныхОВремениТС(Форма.Объект.ДанныеОВремени, ВыборкаДанныхОВремени.Сотрудник, ВыборкаДанныхОВремени.ТС, НомерСтрокиСотрудник, Форма.ВысотаСтроки);
            //Иначе                    
            //    МассивСтрокПоСотруднику = СтрокиПоСотрудникам[ВыборкаДанныхОВремени.Сотрудник];
            //КонецЕсли;    
            //
            //ТабельЗаполнитьСтрокиПоСотрудникуТС(
            //    Форма,
            //    ДанныеОВремениПоСотруднику,
            //    МассивСтрокПоСотруднику,
            //    КодыВидовВремени,
            //    ВысотаСтроки,
            //    ЗаполнятьТерриторииИУсловия);
            //    
            //НомерСтрокиСотрудник = НомерСтрокиСотрудник + 1;    
        КонецЦикла;    
    КонецЦикла;
7 palsergeich
 
03.03.19
23:04
Ну так и должно быть по логике кода.
Вопрос то в чем?
8 palsergeich
 
03.03.19
23:05
Надо доработать запрос, что бы 3го витка не было или в него не заходить и иметь все данные на 2ой вложенности
9 егаис
 
03.03.19
23:05
по логике должно быть
Иванов
- УАЗ 001
- УАЗ 002
не?
10 егаис
 
03.03.19
23:06
(8) придется на итоги тогда переходить и группировку писать
ладно, думал можно обойти проще
11 palsergeich
 
03.03.19
23:06
(9) дорабатывать запрос. или просто убери 3ю вложенность
12 Йохохо
 
03.03.19
23:09
а это точно должно работать, если выбран обход не по группировкам? "Выбрать()"
13 егаис
 
03.03.19
23:16
(12) вот и мне кажется, что не для вложенных сей метод
Перешел на итоги, все работает, даже шустрее.
тему можно закрывать.