1с табличная часть отображение дерево

Табличная часть в Дерево значений

Сгруппировываю по паллет/наименование и суммирую коробки/вес
Тк в одном паллете могут быть разные наименования, не получится увидеть сумму коробок и веса по паллету.

И потому хочу по красоте из табличной части «Перепись» сделать Дерево значений «ДЗ», где Родителями будут значения из колонки «Паллет». Чтобы можно было увидеть примерно такой результат:

+Паллет1 /12/123
.Товар1 /10/111
.Товар2 /2/12

+Паллет2 /3/22
.Товар1 /1/10
.Товар2 /2/12

То что находил в интернете адаптировать не смог. У меня точно известно что у родителя всего один подуровень. Помогите с реализацией задумки. Спасибо

Добился результата таким кодом:

&НаСервере Процедура ВДЗНаСервере() ЗначениеВРеквизитФормы(ТаблицаЗначенийВДеревоЗначений(РеквизитФормыВЗначение("Перепись"),"Паллет"),"ДЗ"); КонецПроцедуры &НаСервере Функция ТаблицаЗначенийВДеревоЗначений(ТЗ, ГруппировкаКолонка) Экспорт ПЗ = Новый ПостроительЗапроса; ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);//передаем ТЗ ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять; ПЗ.ИсточникДанных.Колонки[ГруппировкаКолонка].Измерение = Истина;//по этой колонке идет группировка ПЗ.ЗаполнитьНастройки(); ПЗ.Выполнить(); Дерево = ПЗ.Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Возврат Дерево; КонецФункции

Но нет суммы колонок в родителе, есть идеи как реализовать?

(0) >> Но нет суммы колонок в родителе

«Тк в одном паллете могут быть разные наименования, не получится увидеть сумму коробок и веса по паллету.» Основная задача. Мне удалось только Сгруппировать по Паллету, а сумму я не вижу

(12) ДЗ имеет такие колонки: Паллет/Наименование/Коробки/Вес
в сумме должны быть и штуки(коробки) и киллограммы(вес).
В итоге строка Родителя должна выглядеть так : Паллет1/(пусто)/12(это коробки)/123 (это киллограммы)

(0) Вот Вы пишете «Сгруппировываю по паллет/наименование и суммирую коробки/вес»

Что мешает сгруппировать по «паллет» и суммировать «коробки/вес»?

https://ibb.co/4m7pGCC — Изначальные данные полученные из ТСД
Далее я их группирую в отдельное табличное поле по Паллету, Наименованию и суммирую коробки и вес паллета и с определенным наименованием (верхняя таблица) https://ibb.co/MgH8THT
Получаю в ДЗ (нижняя таблица) группировку по родителю, мне не хватает сумм ДЗ по подчиненным родителю строкам в колонках «Мест» и «Вес» (уж извините что не все наименования колонок совпадают из первого топика, надеялся что так задача будет понятней)

(17) Теперь группируйте данные по паллету, без наименования, суммируя коробки и вес.

Кстати, у Вас на скриншоте нет коробок (или мест)

(18) «(уж извините что не все наименования колонок совпадают из первого топика, надеялся что так задача будет понятней)»
Подскажете как должен выглядеть код?

(19) Вам не нужно дерево значений. Вам нужен отчёт на СКД к табличной части. В запросе нужны итоги по группировкам

(21) Я в программировании 1с совсем зеленый. Я раньше такого не делал и с ходу на ум приходит куча вопросов.
1. Как без запроса получить данные для отчета, ведь я данные не сохраняю (все манипуляции должны быть произведены до сохранения) и не умею к ним обращаться без этого «выбрать * из Документ.Тсд где Документ.Тсд.Ссылка = &Ссылка» и тд.
2. Как отчет поместить на форму документа
Это пока первое что пришло на ум.
Вам виднее, безусловно. Но вместо одного вопроса по пути создания дерева, мне придется задавать кучу других, а все мы знаем как на такие вопросы отвечают на форуме))
Вряд ли найдутся желающие помочь мне в этом разобраться.

Читайте также:  Дерево похожее на хорька

и я маленько наврал, из табличной части по итогу получить данные для дерева значений у меня не получилось и пришлось создать еще таблицу с типом таблица значений, которую я заполнил аналогично табличной части «перепись». Тк из ТЗ получить ДЗ больше информации в интернете.

(24) Сохранять не вариант.
(27) Давайте я попробую ввести новые 100% данные. Все предыдущие забыли.
В документы на форме присутствуют 2 табличные части:
1. Объект.Перепись (Большая таблица с переписью коробок в первом скриншоте) эта таблица мне нужна для дальнейшей распечатки переписи каждого паллета. Она заполняется из данных ТСД по кнопке.
2. Объект.Заказ (верхняя таблица из второго скриншота) эта таблица формируется на основании первой в ряде случаев, группируя по паллету и названию и суммируя колонки «Мест» и «Вес» в соответвии с группировкой. Эта таблица мне тоже нужна как табличная часть, тк при другом формате считывания данных ТСД сам суммирует коробки и Вес в соответствии со штришкодом, данные из такого считывания заполняют эту таблицу минуя таблицу перепись, тк там уже и не перепись а просуммированные данные, на основании которых я планирую заполнять Документ реализации, именно по этому эта таблица и называется «Заказ».

Возвращаясь к нашим баранам с переписью. Мне нужна информативная таблица (В моем случае это дерево значений, которое я назвал «ДеревоПаллет») с переписью паллет, где будет номер «Паллет»а, сумма «Мест», и сумма «Вес», и чтобы была возможность развернуть этот паллет и увидеть из чего он состоит (меня устраивает нижняя таблица значений из второго скриншота, за исключением того что нет суммы «мест» и «Вес»а всего паллета.

Теоритически можно не использовать табличную часть «Заказ». И напрямую получать данные из таблицы «перепись», но мне было проще с ней, по шагам, получил одно, из этого другое и тд. В данном случае табличную часть «Заказ» я планировал скрывать и выводить таблицу «ДеревоПаллет».

Читайте также:  Отделка откосов окон деревом внутри дома

Далее при клике в таблице «Дерево паллет» на строку паллета я хотел распечатывать перепись каждого паллета в отдельности по коробке, данные для которой я буду брать из табличной части «Перепись».

Мой рабочий код для заполнения «ДеревоПаллет» такой:

&НаСервере Процедура ВДЗНаСервере() ЗначениеВРеквизитФормы(ТаблицаЗначенийВДеревоЗначений(РеквизитФормыВЗначение("ТЗ"),"Паллет"),"ДеревоПаллет"); КонецПроцедуры &НаСервере Функция ТаблицаЗначенийВДеревоЗначений(ТЗ, ГруппировкаКолонка) Экспорт ПЗ = Новый ПостроительЗапроса; ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);//передаем ТЗ ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять; ПЗ.ИсточникДанных.Колонки[ГруппировкаКолонка].Измерение = Истина;//по этой колонке идет группировка ПЗ.ЗаполнитьНастройки(); ПЗ.Выполнить(); Дерево = ПЗ.Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Возврат Дерево; КонецФункции

Минус его в том, что у меня пока не получилось заполнить данные из табличной части «Заказ» и пришлось создать таблицу значений «ТЗ» заполняемую точно также как и табличную часть «Заказ» (тк в интернете больше примеров как и ТЗ сделать ДЗ).

Собственно проблема осталась одна: мне нужна сумма каждого паллета в дереве значений «ДеревоПаллет», в строке родителя.
Или подскажите как реализовать задуманное иначе.
Спасибо

(29) Пока никакая, я за подсказкой сюда и обратился.
Я не понимаю как работает Построитель запроса. Да и вообще дерево значений. Такие задачи решаю с помощью поиска типовых решений в интернете и адаптирую под себя.

(32) Увы ПЗ.ИсточникДанных.Колонки[«Вес»].Ресурс = Истина; Поле объекта ресурс не найдено.
Я вот думаю, может существует костыль в виде обхода дерева и таким образом как то у родителя вносить в колонки суммы подчиненных значений?

(33)
ПЗ.ИсточникДанных.Колонки[«Вес»].Поле = Истина;
ПЗ.ИсточникДанных.Колонки[«Вес»].Итог = «Сумма(Вес)»;

&НаСервере
Функция ТаблицаЗначенийВДеревоЗначений(ТЗ, ГруппировкаКолонка) Экспорт
ПЗ = Новый ПостроительЗапроса;
ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);//передаем ТЗ
ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
ПЗ.ИсточникДанных.Колонки[ГруппировкаКолонка].Измерение = Истина;//по этой колонке идет группировка
ПЗ.ИсточникДанных.Колонки.Мест.Итог = «СУММА(Мест)»;
ПЗ.ИсточникДанных.Колонки.Вес.Итог = «СУММА(Вес)»;
ПЗ.ЗаполнитьНастройки();
ПЗ.Выполнить();
Дерево = ПЗ.Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
Возврат Дерево;
КонецФункции

Подскажи, как убрать возникшую родительскую строку с общими итогами? (раньше не было)
И как в колонке «Название» написать текстом слово «Паллет»?

(36) Никак через построитель запроса с источником данных. Общие итоги там не отключить.
Сделайте шаг назад. Так ли нужен вам этот построитель?
Да и вообще, если то, что вы демонстрируете — это и есть задача, а не упрощённая интерпретация, может и не мудрить, а загнать свою ТЗ в запрос как параметр, вытащить нужные результаты, обойти и заполнить дерево как требуется?

Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ТЗ.Паллет КАК Паллет,
| ТЗ.Название КАК Название,
| ТЗ.Вес КАК Вес,
| ТЗ.Мест КАК Мест
|ПОМЕСТИТЬ ВТ_ТЗ
|ИЗ
| &ТЗ КАК ТЗ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ТЗ.Паллет КАК Паллет,
| ВТ_ТЗ.Вес КАК Вес,
| ВТ_ТЗ.Мест КАК Мест,
| ВТ_ТЗ.Название КАК Название
|ИЗ
| ВТ_ТЗ КАК ВТ_ТЗ
|ИТОГИ
| СУММА(Вес),
| СУММА(Мест),
| «»Паллет»» КАК Название
|ПО
| Паллет»;

Запрос.Параметры.Вставить(«ТЗ», ТЗ);
РезультатЗапроса = Запрос.Выполнить();

(39)
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ТЗ.Паллет КАК Паллет,
| ТЗ.Название КАК Название,
| ТЗ.Вес КАК Вес,
| ТЗ.Мест КАК Мест
|ПОМЕСТИТЬ ВТ_ТЗ
|ИЗ
| &ТЗ КАК ТЗ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ТЗ.Паллет КАК Паллет,
| ВТ_ТЗ.Вес КАК Вес,
| ВТ_ТЗ.Мест КАК Мест,
| ВТ_ТЗ.Название КАК Название
|ИЗ
| ВТ_ТЗ КАК ВТ_ТЗ
|ИТОГИ
| СУММА(Вес),
| СУММА(Мест),
| «»Паллет»» КАК Название
|ПО
| Паллет»;

Читайте также:  Масло чайного дерева заживляющее

Источник

Как в отобразить табличную часть в виде дерева? #407035

Есть обработка, у обработки ТЧ, в составе колонок которой есть «Номенклатура», «Склад» и «Количество». Хотелось бы отображать ТЧ в виде дерева: строка с номенклатурой, с общим количеством по складам и плюсиком; при нажатии на плюсик открываются подчиненные строки с детализацией количества по складам. Необходимо обеспечить возможность редактирования данных в дереве (добавлять/удалять интерактивно строки не надо, меняется только количество). Как это реализовать, чтобы работало достаточно живенько?

Единственное имеет смысл колонки Склад и Номенклатура спрятать в табличном поле, а добавить колонку Группировка, куда писать значение текущей группировки, и по ней сделать галочку Отображать иерархию

в УТ в форме документа УстановкаЦенНоменклатуры было организована выгрузка табчасти в таблицу значений на форме. можно посмотреть, думаю, чо-то похожее.

Туплю наверно. ТЧ отображается в виде табличного поля, у него разве есть иерархия? Где наод ставить галочку «Отображать иерархию»? Ну опыт работы с деревом уже есть, разберусь легко

Если у табличное поля в данных дерево значений, что я предлагаю, то у колонок будет свойство отображать иерархию, там где оно поставлено появятся плюсики.

А, ну тогда да, ты просто написал в «загружать обратно в ТЧ», я и подумал, что ТЧ толжна быть в данных. В общем все ясно, дерево + построитель запроса

Похожие вопросы 1С

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

  • Почему РежимДиалогаВопрос.ДаНет нельзя размещать в модуле объекта?
  • Как в распределенке передать обновление на подчиненные узлы
  • Полнотекстовый поиск
  • Как в запросе сделать отбор по списку значений?
  • Ошибка при вызове метода контекста (НайтиПоРеквизиту)
  • Как указать в запросе КонецДня() ?
  • 1c v8.1 + PostgreSQL Ошибка подключения
  • Ошибка SMTP error code 503, Message rejected — too many recipients given.
  • Как принудительно закрыть программу 1С конкретного пользователя.
  • SDK Mifare ACR120 для 1C
  • v7: Бесплатный плагин открытия PDF для MSO 2007
  • В продолжение темы «Web-сервисы пример аэрофлот»
  • ошибка при проведении по партиям в УТ (10.3.6.8)
  • Запуск внешних программ из 1с.
  • Как получить текст из «ПоляHTML» ?
  • Загрузка справочника «Сотрудники организации» из ЗУП а Бух
  • v7: Корректировка проводок закрытых периодов
  • Развернуть форму отчета на весь экран
  • Не запускается NetBios в NetHasp License Manager
  • hasp не встает.

Источник

Оцените статью