v7: Группировки и Свернуть() по таблице значений #754662


#0 by EverGreenMouse
Итак сабж: выгружаю ТЧ документа в таблицу значений. ТЧ документа имеет вид Расх.накл. | Клиент | адрес доставки. Обрабатываю таблицу значений: выбратьСтроки; Суть в следующем. В макете при печать должно в одной ячейке выходить Клиент, АдресДоставки и номера всех расходных накладных по клиенту,  а так же может быть один клиент, но разные адреса доставки. То есть, в случае совпадения Клиента и Адреса, выводить список накладных по этим параметрам.
#1 by jurassic
понял
#2 by EverGreenMouse
как-то я криво написал. Попытаюсь еще разок. В ТЧ документа есть три колонки. В случае, если Клиент и АдресДоставки одинаковые в нескольких строках, то расходные накладные для этих строк при печати должны выводиться через запятую.
#3 by jurassic
понял ещё раз
#4 by torgm
отсортируй по контрагенту адресу доставки, и формируй там все в один проход делается
#5 by Mikeware
Сделай!© в чем проблема-то?
#6 by EverGreenMouse
Ну хорошо. Как правильно тогда параметр макета описать? СокрЛП(тбл.Клиент) + ", " + СокрЛП(тбл.АдресДоставки)+" , Расх.накл №"+СокрЛП(тбл.НомерДок) Разумеется, он выводит только одну накладную. А как вывести все, через запятую?
#7 by mehfk
2000р.
#8 by ДенисЧ
Пригласить программиста
#9 by EverGreenMouse
ну нет) Как бы я, но с 7 я не работал никогда. В 8ке я бы запросом решил проблему за 5 минут, а тут хз
#10 by Mikeware
циклом, циклом.... Ну, или 1с++, ИТЗ, Группировать...
#11 by Смотрящий
Вложенную таблицу сделай
#12 by torgm
Сторожилы бают, что строки частями можно складывать... Врут наверное...
#13 by EverGreenMouse
Можно, но допетрить не могу, как это сделать. Объявить переменную, в нее складывать строки и ее выводить в параметр макета? Это вроде логично, но как оформить заполнение этой переменной?
#14 by ДенисЧ
В 8ке запросом ты бы объединил несколько строк? Сказки в другом месте рассказывай...
#15 by jurassic
если текущий равен предыдущему, складывать, иначе заводить с нуля. конец если
#16 by EverGreenMouse
нет, не объединил бы, а сгруппировал как надо и результат запроса по группировкам складывал бы в строку и хорошо
#17 by ДенисЧ
Так и тут группируй, кто мешает?
#18 by jurassic
нуну
#19 by Ёпрст
sqllite + group_concat, это ежели в запросе. А так, ИТЗ + группировать, если по-простому
#20 by EverGreenMouse
Ок. Перейдем еще проще. Есть таблица значений Расх.накл | Клиент | Адрес расх1       клиент1  адрес1 расх2       клиент1  адрес1 расх3       клиент2  адрес2 Как путем семерки объединить все накладные, идущие по одному клиенту и на один адрес? понятно, что в цикле в цикле. но как их правильно организовать?
#22 by jurassic
так и скажи: я ни черта не понял
#23 by mehfk
5000р.
#24 by torgm
условие поставь на контрагента адрес
#25 by Ёпрст
ИТЗ.Группировать("Вася:*Клиент,*Адрес");
#26 by Ёпрст
если не использовать ИТЗ, то примитив ТЗ.Сортировать("Контрагент,Адрес") и обход тз. всё
#27 by Serginio1
#28 by Дмитрий
При записи в таблицу проверяй на наличие строки с клиентом и адресом, если такая строка есть, добавляй накладную к реквизиту накладная
#29 by Ёпрст
у него же не снеговик, в клюшках всё проще
#30 by Serginio1
Там и для клюшек
#31 by Ёпрст
в каком месте ? Предлагаешь автору транслировать твой код в клюшки самостоятельно ? :)
#32 by EverGreenMouse
#33 by EverGreenMouse
ОУ
#34 by Serginio1
Там внутри находятся обработки. Я кстати очень часто их применяю для группировки данных
#35 by Масянька
Пе-ре-ве-ди (С)
#36 by EverGreenMouse
#37 by jurassic
Клеинт - это специалист по женскому вопросу?
#38 by EverGreenMouse
Да. Он самый
#39 by Serginio1
34 можно скачать здесь
#40 by Serginio1
У тебя будут проблемы если будут дубли Функция ПолучитьСтрокуСортПоля(Колонка,Тз,ЕстьСпр,ЕстьДок)
#41 by Serginio1
То есть нужно сортировать тбл.Сортировать("Клиент*, АдресДоставки, НомерДок", ""); Тогда сортировка будет по ID
#42 by Serginio1
Кстати в Linq есть аналог Group by с выводом детальных записей с агрегатными функциями Я очень часто использую 27 как в 7 ке так и в 8 ке. Оочень удобно. Такой вариант можно было бы сделать и для ИТЗ Кстати    Ёпрст а почему не хочешь изучать .Net. Очень удобно через него расширять возможности 7 ки. Да и в 8 ке полно задач решаемых с помощью стандатрных сборок
#43 by Ёпрст
с клюшками почти не работаем уже, да и лень
#44 by Serginio1
Не верю, что ты ленивый. Что же реально мешает? Всегда хочется познать новое и применить знания. Да и время судя по количеству постов на форуме есть. 8 ку же изучил.
#45 by SiAl-chel
Используй черный запрос про документам. Группировки: Клиент, Адрес доставки, Реализация (Упорядочивание по номеру). Циклы используешь с учетом группировок. В исходную таблицу выводи строки во второй группировке (Адрес доставки), но после цикла по третьей группировке (Реализация), потому что во второй группировке будешь формировать строку с номерами накладных. НомераНакладных = "";
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С