- Табличная часть в виде дерева значений
- Как в отобразить табличную часть в виде дерева? #407035
- Похожие вопросы 1С
- В этой группе 1С
- Вывод табличной части справочника в виде дерева (или группировка строк табличной части)
- Модуль «Представление табличной части в виде дерева» v1.01
- Порядок установки и обновления
- Пример использования:
Табличная часть в виде дерева значений
Возникло желание отображать и работать с ТЧ документа в режиме УФ как с деревом значений.
Собственно вопрос: есть ли в какой конфигурации такое, чтобы подсмотреть и вдохновение почерпнуть?
(1) Там 1С на пустом месте перемудрило или реально «так сложно, что не стоит»?
не особенно сложно, выгружать в табличное поле при открытии и сохранять перед закрытием. http://infostart.ru/public/73969/
при открытии — загрузка из табличной части в дерево (табличное поле), а обратно — точно, в ПередЗаписью
зачем тебе при чтении на сервере, данные-то в табличной части сохраняются обычным порядком, при открытии их надо на форму загрузить
Если у кого такой же вопрос возникнет, есть интересная инструкташка с рабочим кодом:
http://help1c.com/faq/view/1149.html
Продолжу тему, чтобы не плодить ветки.
Пусть:
0) имеем реквизит формы А (тип «ДанныеФормыДерево»), имеем его отображение на форме в виде таблицы (тип «ТаблицаФормы»);
1) дерево имеет три уровня, одну колонку измерения и одну — как ресурс;
2) на каждом уровне измерение (его значения) имеет уникальный тип (например, магазин/витрина/товар).
Нужно:
1) при добавлении строки в дерево запретить добавлять уровни более 3х;
2) при добавлении 4го уровня (когда пользователь нажимает Ins стоя на элементе 3го уровня — назовем его Х) — операцию прервать и сделать ввод элемента 3го уровня, подчиненному родителю Ха.
Проблема: в событии ПередНачаломДобавления я могу отследить и прервать добавление 4го уровня, но туплю пока, как из этого же события инициировать ввод новой строки, родителем которой будет родитель элемента Х.
Источник
Как в отобразить табличную часть в виде дерева? #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 не встает.
Источник
Вывод табличной части справочника в виде дерева (или группировка строк табличной части)
Справочник Соглашения с клиентами вкладка Уточнение цен по товарам. У номенклатуры есть реквизит Марка (бренд), как сделать группировку в виде дерева по этому реквизиту в списке табличной части? 🙂
Через Еще — настроить список, группировки нет.
Если делать программно, подскажите как 🙂
Спасибо 🙂
(1)
Вариантов тут немного, наверное)
Либо добавить ДеревоЗначений и заполнять его из ТЗ, дальше работая с группировками дерева.
Но проще, наверное, будет добавить на форму ДинамическийСписок и в него уже запихивать вашу таблицу. Но тогда вам надо будет поработать с добавлением новых строк иначе и обновлять каждый раз при добавлении список.
Я бы всё-таки поработать с ДинамическимСписком. Там хоть можно будет самому пользователю управлять группировками, если вдруг появится необходимость
(8)
Кстати, ещё вариант есть сделать 2 таблицы, в одной выбирают элемент, а другая фильтруется по выбранному значению.
ГруппировкаСписка = Список.Группировка.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ГруппировкаСписка.Использование = Истина; ГруппировкаСписка.Поле = Новый ПолеКомпоновкиДанных("Марка");
В ранних 8.1. видел извращения когда ТЧ не показывали на форме, а вместо него показывали ДЗ с загрузкой в дерево данных из ТЧ.
можно еще табл. док так прикрутить.
Костыль еще тот, на маленьких данных красиво, а если в ТЧ 10К+ строк, то думаю юзеры будут вас бить.
От лукавого, покайтесь и займитесь другой задачей.
(4) задачи не мы выбираем, а лишь стараемся помочь пользователю, чтобы им было комфортней работать. В данном случае, количество строк в ТЧ не будет более 100 позиций. Поэтому группировка по Марке (бренду) видится логичным 🙂
Если не ошибаюсь в УТ в документе коммерческое предложение что то подобное.
Вообще из раннего делал так. в тч добавлял служебных полей «видимая строка (булево)», «тип строки (строка)» . Тип строки обозначал разделитель или строка. На форме соответственно были кнопки добавить строку, добавить разделитель. Далее на форме ТЧ фильтровалась через функцию Элементыформы.ТЧ.ОтборСтрок. Т.е. добавляется строка типа разделитель — реквизит Видимаястрока всегда истина. после нее добавлялись строки типа Строка реквизит ВидимаяСтрока изначально истина, но, потом при активизации ячейки к примеру на разделитель все последующие строки ставят Видимаястрока =ложь. А на сам элемент формы тч наложен фильтр, что Видимаястрока= истина.
Источник
Модуль «Представление табличной части в виде дерева» v1.01
Модуль предназначен для отображения табличной части, виде дерева.
Возможности модуля:
1. Быстрое создание и отображения дерева табличной части.
2. Поддержка обработчиков событий табличного поля табличной части. (например в дереве будет работать пересчет строки без дополнительного кодирования).
Порядок установки и обновления
Вариант 1.Файл конфигурации нужно объединить с конфигурацией. Модуль «Представление табличной части в виде дерева» состоит из общего модуля «ОбработкаДереваТабличнойЧасти»
Вариант 2. Добавить в конфигурацию общий модуль «ОбработкаДереваТабличнойЧасти» из шаблона функций и процедур Модуля «Представление табличной части в виде дерева» (файл ОбработкаДереваТабличнойЧасти.st)
Пример использования:
- Есть табличная часть Товары (рис.1) . Необходимо представать табличную часть виде дерева.
- Добавляем панель « ПанельТовары »
- Добавляем на панель «ПанельТовары» страницу «Товары»
- Добавляем панель «ПанельТовары» страницу «ДеревоТовары»
- Добавляем реквизит формы «ДеревоТовары» с типом «Дерево значений».
- Добавляем на страницу «ДеревоТовары» табличное поле «ДеревоТовары».
- Устанавливаем свойство «Данные» — «ДеревоТовары».
- Копируем все колонки из табличного поля «Товары» в табличное поле «ДеревоТовары»
- Устанавливаем свойство «Данные» в колонках в табличного поля «ДеревоТовары», такое же как в имени, т.к. оно измялось при копировании на Колонка2.
- Устанавливаем свойство «Отображать иерархию» в Истина, для колонки которая будет отображать иерархию.
- Добавляем код в модуль формы из «Шаблон функций и процедур Формы» из шаблона. (файл ОбработкаДереваТабличнойЧасти.st).
- В процедуре ИнициализироватьДеревоТовары(), модуля формы, задаем параметры дерева.
- К обработчику события «ПриСменеСтраницы», панели «ПанельТовары», подключаем созданный обработчик «ПанельТоварыПриСменеСтраницы» .
- Получаем результат представленный на рис.2, рис.3.
Работу данного модуля можно посмотреть в приложенной базе.
Версия 1.01
— Добавлена база с примером, где реализовано представление табличной части в виде дерева, с помощью данного модуля .
Источник