Size: a a a

1С, БСП, DevOps и Архитектура

2021 June 16

А

Андрей in 1С, БСП, DevOps и Архитектура
логика такая что в документ должны попадать позиции с одинаковыми 4 полями
если не делать итоги то нужно группировать по всем этим полям и в процессе перебора строк смотреть изменилось ли значение по сравнению с предыдущей строкой или нет, что не очень-то удобно
или я чего-то не понимаю?
источник

А

Андрей in 1С, БСП, DevOps и Архитектура
вот пример таблицы
Договор1 рубли 01.01 Ваня ...
Договор1 рубли 01.01 Ваня...
Договор1 рубли 01.01 Петя...

1я и 2я строки должны попасть в один документ, 3-я уже в другой, как без итогов этого добиться?
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Можно извращаться с НайтиСледующий(), но это в плане поддержки и нагрузки на мозг гораздо хуже по сравнению с 4-8 уровнями вложенности
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
А, я понял, ага. Нуууууу, можно конечно условный хеш в запросе посчитать который будет совпадать у строк с одинаковым значением ключевых полей, по нему сгруппироваться и обойти
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Ну не хеш, Ключ записи, условный
источник

А

Андрей in 1С, БСП, DevOps и Архитектура
ну да, умнее вложенности ничего не придумал
источник

А

Андрей in 1С, БСП, DevOps и Архитектура
не то чтобы это сильно проще, мой вариант понятнее, но меня смущает куча вложенностей
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Сильно проще в целом, если правильно ключ собрать в запросе. Код станет очень плоский и без кучи вложенностей.
источник

А

Андрей in 1С, БСП, DevOps и Архитектура
хм, а как в запросе его собрать?
я думал изначально пробежать таблицу и сгенерить ключ
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Да как больше нравится, хоть коды справочников склеить и получить на выходе уникальную строку по ключевым полям в пределах выборки
источник

А

Андрей in 1С, БСП, DevOps и Архитектура
не нравится мне)
коды склеивать - лишние запросы к каждой таблице
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Можно ещё предварительно сделать Вт с только ключевыми полями сгруппировать, сделать автономерзаписи, и этот номер и будет ключём
источник

А

Андрей in 1С, БСП, DevOps и Архитектура
вот это кстати красиво
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Там вариантов извращений масса, для каждого эстета свой фломастер
источник

А

Андрей in 1С, БСП, DevOps и Архитектура
попробую с автономер строки, спасибо
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Пожалуйста
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Начиная с 8.3.20 походу станет очень легко такие ключи собирать (когда появится преобразование любой лабуды в строку)
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
Это если их конкатенировать можно будет
источник

AE

Alexander Efremov in 1С, БСП, DevOps и Архитектура
Можно рекурсивно обходить группировки
Процедура РазобратьУровеньИтогов(Выборка, ТекущийУровень)
 ВложеннаяВыборка = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
 Пока  ВложеннаяВыборка.Следующий() Цикл
   // Если ТекущийУровень = n Тогда Сделать что то полезное
   РазобратьУровеньИтогов(ВложеннаяВыборка, ТекущийУровень + 1)
 КонецЦикла;
КонецПроцедуры
источник

AE

Alexander Efremov in 1С, БСП, DevOps и Архитектура
Соответственно вызвав ее   РазобратьУровеньИтогов(РезультатЗапроса, 0);
источник