Свойства и методы универсальных коллекции значений типа дерево значений как и таблицы значений не доступны в тонком клиенте. Их нужно создавать на сервере, а затем методом контекста формы ЗначениеВРеквизитФормы( , ) преобразовать значение объекта в реквизит управляемой формы с указанным именем ИмяРеквизита
Мне дали задание – создать форму списка заказа в виде дерева значений, как показано на рис 1
Форма создается очень просто в конфигураторе ( см рис 2)
Рис 2 Управляемая форма с деревом значений
Однако, у меня не получилось на сервере создавать дерево значений в путем выгрузки результата запроса по группировкам в дерево таким образом : Дерево = РезультатЗапроса.Выгрузить ( ОбходРезультатаЗапроса.ПоГруппировкам ); У меня возникала ошибка при вызове метода контекста формы: ЗначениеВРеквизитФормы ( Дерево , “ДеревоЗаказов”); Возможно. причина была в том, что структура колонок реквизита формы ДеревоЗаказов не соответствовала структуре объекта дерево, полученного в результате выгрузки запроса. Я не стал глубоко об этом думать и решил создавать дерево значений в цикле. Программный код показан ниже:
Для создания полной копии исходного дерева значений можно использовать метод метод скопировать:
Следующая процедура предназначена для заполнения реквизита формы типа «ДеревоЗначений» Параметры: КоллекцияЭлементовДерева – реквизит формы, который имеет тип «ДеревоЗначений» . Реквизит заполняется значениями из второго параметра процедуры. ДеревоЗначений – ДеревоЗначений – параметр содержит данные для заполнения.
Альтернативный способ добавления элементов и реквизитов на формы 32
Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.
09.09.2019 3275 5 bmk74 0
Работа с релизами 1С и договорами ИТС 25
Работа с релизами 1С и партнерским кабинетом.
15.08.2019 3898 23 RocKeR_13 10
Утилиты ЕГАИС (1С:Розница 2.2) 9
Утилиты для упрощения работы с ЕГАИС в 1С:Розница.
16.07.2019 4577 14 RocKeR_13 4
Вам нравятся запросы в 1С? 14
Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата. Пора с этим заканчивать!
03.07.2019 10374 1 m-rv 79
Модель объекта 7
Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.
30.06.2019 3413 1 vadim1980 0
Цифровая подпись Cades-BES для XML средствами 1С с помощью КриптоПро 6
Обработка иллюстрирует возможность подписания XML SOAP-конверта по стандарту Cades-BES средствами 1С с помощью внешней компоненты КриптоПРО "CAdESCOM" с учетом ГОСТ 2001 и ГОСТ 2012. Стандарт используется в различных механизмах государственных сайтов России, в том числе в СМЭВ и ГИС ЖКХ. Код не привязан к прикладному решению может быть встроен куда угодно, но только на платформе Windows.
13.05.2019 3846 12 PythonJ 25
Быстрый запрос 41
Можно ли дать пользователю "удочку", а не "рыбу"? До сих пор ответ на этот вопрос был отрицательным. Всякий инструмент, который мог бы делать с базой данных все или почти все (или хотя бы многое), отвергался пользователями, как слишком сложный. Вспомните тот же SQL, который изначально разрабатывался именно как пользовательский инструмент. "Быстрый запрос" — это попытка устранить сложность, но сохранить при этом универсальность.
29.04.2019 6485 15 mkalimulin 28
Безопасная работа с транзакциями во встроенном языке 187
Разбираемся с опасностями использования транзакций во встроенном языке 1С. Познаем ошибку "В данной транзакции уже происходили ошибки". Учимся защищаться от них.
25.03.2019 15333 7 tormozit 35
Трудовой договор, Дополнительное соглашение, Лист ознакомления, Договор о материальной ответственности, Договор о коммерческой тайне, Согласие на обработку персональных данных для ЗУП 3.1 17
Комплект печатных форм для отдела кадров для документов Прием на работу и Кадровый перевод: Трудовой договор, Доп. соглашение к трудовому договору, Лист ознакомления с локальными нормативными актами, Договор о полной материальной ответственности, Договор о неразглашении коммерческой тайны, Согласие на обработку персональных данных.
12.03.2019 10475 56 Asenka 3
Расширение: Цветовые схемы для 1С: Предприятия 11
Расширение позволяет сменить цвет оформления для интерфейса Такси.
10.02.2019 6005 24 spec8s 6
Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 532
Коннектор — библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.
31.01.2019 27962 264 bonv 109
Редактор объектов информационной базы 8.3 40
Универсальная внешняя обработка (СДРОбъектУпр) для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.31 от 02.10.2019
23.01.2019 10295 143 ROL32 24
Расширение "Курсы валют в формулах расчета динамических цен" для УНФ 1.6 5
Расширение "Курсы валют в формулах расчета динамических цен" с автоматическим пересчетом цен при изменении курсов валют для конфигурации "Управление нашей фирмой, редакция 1.6"
17.01.2019 5586 13 Palmer1976 4
Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия — Simple UI (обновлено 14.11.2019) 174
Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.
09.01.2019 22604 223 informa1555 172
Эту статью я хочу написать в виде конкретных примеров по работе с деревом значений в 1С 8.3 и 8.2.
Дерево значений представляет из себя некую структуру с иерархией. У каждой строки дерева значений может быть сколько угодно подчиненных строк.
Предлагаю сразу начать с примера и получить все записи из справочника «Номенклатура» в виде дерева значений.
Создание дерева значений в 1С
Проще всего это сделать с помощью запроса. Предлагаю создать внешнюю обработку 1С на управляемых формах, добавить на форму табличное поле и кнопку «Получить дерево». По действию кнопки (точнее, команды) выполним простейший запрос.
Вот пример процедуры:
Здесь стоит особенно обратить внимание на два фактора, без которых дерево не сформируется:
строка в запросе «ИТОГИ ПО Родитель»
и Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
Если не указать правильно вид обхода результата выборки по запросу, то мы получим обычную таблицу значений.
Результат вывода данного запроса 1С дерево значений на управляемую форму выглядит следующим образом:
Получите 267 видеоуроков по 1С бесплатно:
Мы получаем структуру с подчиненными строками. Колонка «Родитель» – это группа, колонка «Номенклатура – это элемент справочника.
Теперь, на мой взгляд, самое интересное. Как организовать обход дерева значений, если мы заранее не знаем, сколько уровней в нем.
Обход дерева значений с помощью рекурсии
В основном обход дерева в 1С делается с помощью рекурсии. Даже когда известно, сколько уровней в нем. С рекурсией это проще, всего около шести строк:
В результате получим такие сообщения:
Пример данной обработки для управляемых форм можно скачать по ссылке. С помощью аналогичного кода 1С возможно преобразовать дерево значений в таблицу значений.
При обходе дерева Вы можете выполнять различные действия над ним. Например:
подсчет итогов по группам;
раскраску строк по нужным параметрам;
удалять ненужные строки;
можно делать различные отборы;
и так далее.
Работать с деревом значений не так уж и трудно. Фактически это та же таблица значений, но здесь присутствует невидимая колонка «Родитель». Поэтому нет никаких проблем с преобразованием дерева значений в таблицу значений.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.