Имя: Пароль:
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) вот и мне кажется, что не для вложенных сей метод
Перешел на итоги, все работает, даже шустрее.
тему можно закрывать.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн