v7: Как перебрать ТЗ и вывести в отчёт. #761947


#0 by Trotter
В общем имеем ТЗ: Дата | наименование | количество Дата | наименование | количество Дата | наименование | количество Дата | наименование | количество В ТЗ всегда разное количество строк Живая ТЗ выглядит так: 27.12.15 | пирог с яблоком  | 1 27.12.15 | пирог с яблоком  | 2 27.12.15 | пирог с черникой | 3 28.12.15 | пирог с яблоком  | 1 28.12.15 | пирог с яблоком  | 1 28.12.15 | пирог с черникой | 3 28.12.15 | пирог с черникой | 7 29.12.15 | пирог с яблоком  | 1 В отчёте должно быть следующие: 27.12.15 | пирог с яблоком  | 1 27.12.15 | пирог с яблоком  | 2 27.12.15 | пирог с черникой | 3                   27.12.15 | пирог с яблоком  | 3 ИТОГ:             27.12.15 | пирог с черникой | 3 28.12.15 | пирог с яблоком  | 1 28.12.15 | пирог с яблоком  | 1 28.12.15 | пирог с черникой | 3 28.12.15 | пирог с черникой | 7                   28.12.15 | пирог с яблоком  | 2 ИТОГ:             28.12.15 | пирог с черникой | 10 29.12.15 | пирог с яблоком  | 1 ИТОГ:             29.12.15 | пирог с черникой | 1 как бы вы перебрали данную ТЗ и выводили значения в отчёт ? Нужен алгоритм! )) Если, пока, цикл... ))
#1 by Trotter
Ну вот "табуляция" немного поплыла... (
#2 by Garykom
открой для себя ТЗ.Свернуть("","")
#3 by Trotter
Да, это уже конечный результат для поля "ИТОГ"
#4 by Garykom
+ Свернуть("Дата,Наименование","Количество")
#5 by Trotter
Как разбить по датам ?
#6 by aka AMIGO
по датам - сортировать
#7 by Trotter
Как ? какое условие ?
#8 by Garykom
+ так сначала свернуть а потом циклу по свернутому и внутри циклу по не свернутому с условием свернутое = начало не свернутое ))
#9 by Chameleon1980
копировать тз для итогов в другую (или считать в переборе) если копировать - читать сп по свернуть
#10 by Trotter
Условие для перебора таблици с учётом меняющихся дат какое должно быть ?
#11 by HawkEye
если типовым механизмом, сортируешь первую ТЗ по Дата, Наименование выгружаешь в промежуточную ТЗ, сворачиваешь ее по Дата и Наименованию, дальше цикл по первой ТЗ с проверкой значений в текущей строке с предыдущим, как то-то изменилось - лезешь в промежуточную и достаешь итог. или без выгрузки в промежуточную, цикл по первой, нашел дату и номенклатуру в промежуточной - добавил кол-во, не нашел создал новую строку, а по предыдущей вывел итог...
#12 by aka AMIGO
ТЗ.Сортировать("Дата,Наименование"); а условие - по какой-нибудь темп-переменной в цикле.
#13 by aka AMIGO
Вернее, так: ...
#14 by aka AMIGO
В общем - всё, как обычно. См. типовые печати в конфе
#15 by HawkEye
автор пиши свой код, нечего чужими мозгами жить )
#16 by Trotter
Правдо с выводом "ИТОГ" мне помог друг, хитрости 7ки... ))
#17 by Serginio1
#18 by Serginio1
Внутри смотри ТестЕрт.ert
#19 by Serginio1
Использую каждый день
#20 by Trotter
Спасибо. гляну.
#21 by Chameleon1980
(или считать в переборе) ну дык писал жеж. если новые значения опред. полей. вывод итога обнуляем счетчик итогов и далее
#22 by Mikeware
или 1с++, ИндексированнаяТаблица, Группировать
#23 by Chameleon1980
заранее извиняюсь перед ТС. Но... думаю, что если до такого не додумал... то.... пердоне
#24 by MishaD
Посмотрел , сворачивание тз в цикле, не проще ли было переменную счетчик завести. А то представляю бешенную скорость работы.
#25 by Mikeware
нифига не понял... забей.
#26 by Chameleon1980
повторю: ...заранее извиняюсь перед ТС. Но... думаю, что если "ОН" до такого не додумал... то.... врядли осилит ИТ
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям