Куперс

Бухучет и анализ

Номенклатура в 1С 8 3

В предыдущих уроках мы рассмотрели с Вами, что конфигурация 1С состоит из набора различных объектов 1С. Такие объекты бывают разных видов.

Сегодня мы рассмотрим особенности одного из видов объектов 1С Предприятие – справочников.

Справочники 1С 8.2 предназначены для хранения информации, которая будет использована в других объектах 1С – документах, отчетах. Таким образом учет в 1С ведется в разрезе (по) справочников.

Информация, которая хранится в справочниках называют Нормативно-справочной информацией.

Справочники 1С 8.2 делятся на собственно Справочники и Классификаторы. Под Классификаторами (в разговорах программистов 1С) понимаются справочники, состав которых утвержден государством (а таких куча, например Классификатор стран мира или Классификатор единиц измерения).

Тем не менее это не мешает во множестве компаний такие классификаторы исправлять и дополнять как хочется.

Зачем нужны Справочники 1С

Яркий пример можно сделать на примере товара. Есть некий товар, например «Лопата». Движения этого товара (покупка, поступление на склад, продажа) оформляются определенными документами.

В «жизни» — это бумажные документы, т.к. некие бланки, при заполнении которых каждый просто пишет от руки — Лопата, 20 штук.

В электронной системе, 1С – это электронные документы, где также есть поле товара. Но если каждый оператор будет писать наименование товара от руки, то могут быть опечатки. И тогда купили мы «Лопату», а продали «Лапату». Дополнительно – минус в том, что нам придется это писать множество раз.

Поэтому мы заводим список товаров, в который один раз заводим этот товар. Чтобы указать товар в документах, достаточно выбрать его из готового списка. Дополнительный плюс — когда мы заводим товар в список, мы можем указать какие-либо данные по нему, например «Страна происхождения».

Таким образом справочники в 1С Предприятие – это готовые списки данных, которые нужны для учета – товары, клиенты и прочее. Пользователи могут дополнять и изменять эти списки самостоятельно.

Где расположены Справочники 1С 8.2

В режиме 1С Предприятие пользователь работает с пользовательским интерфейсом, который разработал для него программист. У разных пользователей может быть разный интерфейс. Поэтому каждый конкретный справочник программист мог расположить в совершенно различных меню.

В толстом клиенте, у пользователя с административными правами (Администратор) есть стандартное меню Операции. В этом меню есть пункт «Справочники», через который можно открыть любой справочник.

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

В режиме 1С Конфигуратор справочники находятся в одноименной ветке Конфигурации, в окне конфигурации. Раскрыв ветку мы можем начать работать с любым справочником (точнее изменять или настраивать его шаблон). Для того, чтобы начать с ним работу нужно кликнуть по нему два раза мышкой.

Как выглядят Справочники 1С

При открытии справочника Вы видите его форму списка. Так как справочник – это список данных, то в этой форме мы его и видим. Список может быть сгруппирован по группам для удобства использования.

Нажав на группу мы проваливаемся в нее. Нажав на элемент – открывается форма элемента справочника. Она состоит из группы полей этого справочника, который предполагается заполнять.

В 1С Предприятие у справочников есть обычно два обязательных поля, по которым один элемент можно отличить от другого. Это код и наименование справочника. Однако программист может отключить наличие этих полей, хотя это делается редко.

Поле Код, которое заполняется обычно автоматически (номера по порядку) обычно по-умолчанию закрыты от редактирования пользователем. Изменить можно вот таким способом (конечно если это разрешено правами).

Справочники 1С 8.2 могут быть связаны между собой (подчиненный справочник 1С). Например, у одного элемента справочника Клиенты может быть несколько подчиненных элементов справочника Договоры с клиентами.

Настройка и разработка Справочников 1С

Создать новый справочник 1С или изменить существующий можно в конфигураторе. Общая методика работы такая же, как с другими объектами 1С, что было рассмотрено в предыдущем уроке.

Основные особенности Справочников 1С, по закладкам:

  • Основные – название справочника 1С 8.2 в конфигураторе (Имя) и для пользователя (Синоним)
  • Подсистемы и Функциональные опции – на какой закладке рабочего стола пользователя в тонком клиенте будет находится справочник, условия его видимости
  • Иерархия – особенность именно справочников, позволяет разрешить или запретить организацию списка с помощью группировки в группы
  • Владельцы – если этот справочник подчиненный другому, то нужно указать другой справочник, на примере Клиентов и Договоров клиентов – нужно у справочника Договоров указать владельца – справочник Клиенты
  • Данные
  • Можно настроить наличие и виды обязательных полей – Код и Наименование – если Вы хотите убрать это поле, укажите длину 0
  • Список реквизитов – т.е. полей справочника
  • Табличные части – справочник может иметь кроме полей, вложенные таблицы, которые называют Табличные части
  • Нумерация – особенности автоматического заполнения поля Код
  • Формы – формы, которые видит пользователь при работе со справочником – списка, элемента и т.п.; может быть много, но по умолчанию будут использованы те, которые указаны здесь в настройке
  • Основы работы с документами 1С

    Общие принципы работы в 1С

Рассмотрим основные нюансы работы со справочником Номенклатура в 1С 8.3 Бухгалтерия 3.0: заполнение карточки номенклатуры, установка цен номенклатуры, как создать виды номенклатуры и настроить счета учета номенклатуры. Изучим пример начального заполнения карточки номенклатуры в 1С 8.3.

Подробнее смотрите в онлайн-курсе: «Бухгалтерский и налоговый учет в 1С:Бухгалтерия 8 ред. 3 от А до Я»

Что такое номенклатура

Номенклатура – это перечень товарно-материальных ценностей и услуг, готовой продукции, которые приобретает или реализует предприятие:

В 1С 8.3 в справочнике Номенклатура хранятся карточки номенклатуры, которые содержат информацию о кратком и полном наименовании, виде номенклатуры, единице измерении, ставке НДС, для импортных товаров/услуг можно указать номер ГТД и многое другое:

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

Что такое номенклатурная группа в 1С 8.2 (8.3), какие ошибки может допускать бухгалтер при работе с номенклатурными группами – смотрите в нашем видео:

Пример начального заполнения номенклатуры

Теперь более подробно рассмотрим заполнение карточки номенклатуры в 1С 8.3. В ходе текущей работы пользователи программы могут заполнять карточку номенклатуры несколькими способами:

  • Непосредственно в справочнике Номенклатура:

  • непосредственно из приходного/расходного документа:

или счета на оплату:

  • Через функцию подбора номенклатуры в приходных/расходных документах:

Теперь более подробно рассмотрим саму карточку номенклатуры в 1С 8.3:

Наименование – это используемое пользователем в текущей работе название товара, работы или услуги (ТРУ). Оно может отличаться от наименования в приходном/расходном документе, если наименование очень длинное. Именно это наименование будет использоваться программой 1С 8.3 для быстрого поиска номенклатуры при заполнении документов.

Полное наименование – это наименование, которое будет использоваться для печатных форм документов. Данное поле рекомендуется заполнять в соответствии с приходным документом или технологической картой.

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

Артикул – заполняется в случае, если в параметрах учета установлен флаг печати артикула рядом с наименованием номенклатуры. В основном используется торговыми предприятиями, у которых разработана система кодировки товаров/услуг и которую необходимо отражать в программе 1С 8.3.

Вид номенклатуры – это аналитика, которая позволяет разделять номенклатуру в зависимости от вида ТРУ. Играет важную роль для правильно работы настроек счетов учета номенклатуры.

Единица – та единица измерения, в которой ведется учет данного вида ТРУ:

В 1С 8.3 есть возможность создавать вручную или использовать Общероссийский классификатор единиц измерения:

Рекомендуем использовать в 1С 8.3 Классификатор, так как в нем содержаться правильные наименования и коды единиц измерения. Как работать с классификатором единиц измерения (ОКЕИ), добавление новой единицы измерения в классификатор в 1С 8.3 читайте в следующей статье.

% НДС – можно установить определенную ставку НДС для данной номенклатуры, если она не измениться от условия покупки / продажи:

Номенклатурная группа – та номенклатурная группа, к которой могут быть отнесены затраты на приобретение/производство данного вида номенклатуры и используется для группировки затрат на производство продукции или выручки от реализации.

Комментарий – данное поле заполняется пользователем для удобства, может содержать любую информацию, важную для работы с карточкой номенклатуры. Данная информация будет видна только пользователям программы, на печать документа не выводится. В справочнике Номенклатура облегчает работу с карточками номенклатуры:

Раздел Производство – заполняется для отражения информации в 1С 8.3 при передаче материалов в производство:

  • Статья затрат помогает отражать затраты на материалы и полуфабрикаты при передаче их в производство;
  • Спецификация – заполняется для готовой продукции, содержит перечень материалов, полуфабрикатов или комплектующих, которые используются при производстве данной продукции. В зависимости от специфики производства спецификаций может быть несколько:

Раздел Алкогольная продукция – заполняется для правильного отражения информации об алкогольной продукции в регламентированной отчетности:

Раздел Импортный товар – заполняется для правильного учета импортной номенклатуры по номерам ГТД:

Раздел Классификация – заполняется при ведении внешнеэкономической деятельности. В этом разделе можно выбрать код номенклатуры из классификатора товарной номенклатуры внешнеэкономической деятельности:

Помимо этого, в верхней части карточки номенклатуры есть ссылки на другие доступные к заполнению реквизиты:

Что такое в 1С 8.3 вид номенклатуры

В программе 1С 8.3 реализована возможность настроить счета учета номенклатуры. Для этого необходимо заполнить справочник Виды номенклатуры. Зачастую в 1С 8.3 данный справочник заполняется по видам номенклатуры или же по группам номенклатуры, которые созданы в справочнике Номенклатура.

Очень важно не допускать дублей в видах номенклатуры, так как это увеличивает шанс ошибки при заполнении карточек номенклатуры и может вызвать неправильную работу счетов учета номенклатуры. Как в 1С 8.3 осуществить поиск дублей и как правильно сделать удаление дублей рассмотрено в следующей статье.

Чтобы перейти в справочник Виды номенклатуры в 1С 8.3 , необходимо нажать на ссылку Виды номенклатуры в справочнике Номенклатура:

Создавать виды номенклатуры можно в справочнике Виды номенклатуры нажав на кнопку Создать:

Или заполняя справочник Номенклатура создавая группы номенклатуры:

Или же заполняя карточку номенклатуры:

Заполняя вид номенклатуры необходимо указать наименование вида номенклатуры, а также признак услуги – только для нематериальных активов или получаемых/оказываемых услуг. Если же такую отметку не поставить, то программа 1С 8.3 не даст возможность выбрать номенклатуры с данным видом в документ Акт выполненных работ:

Счета учета номенклатуры

Счета учета номенклатуры в 1С 8.3 – специальный регистр, в котором можно задавать правила учета номенклатуры по группам, по видам номенклатуры, для конкретной карточки или же для склада/типа склада.

По умолчанию в конфигурации 1С 8.3 уже идут записи счетов учета номенклатуры:

В случае необходимости, их можно дополнить или поменять. Для этого необходимо, находясь в справочнике Номенклатура, перейти по ссылке в Счета учета номенклатуры:

Каким образом установить взаимосвязь между справочником Номенклатура и счетами учета номенклатуры в 1С 8.2 (8.3) чтобы правильно заполнялись первичные документы и автоматически проставлялся правильный счет учета смотрите в нашем видео уроке:

Настройка счетов учета номенклатуры

Попадая в счета учета номенклатуры, первое, что видим – ссылку на счета учета в документах. Данная настройка позволяет включать или выключать возможность просмотра счетов в документах прихода/расхода/списания ТМЦ (товарно-материальных ценностей).

В табличной части видим настройки счетов учета, которые уже занесены в программу 1С 8.3. Чтобы изменить какую-либо настройку необходимо через контекстное меню/горячей клавишей F2 или двойным щелчком мыши открыть настройку:

В открывшейся карточке в верхнем поле выбираем, для чего мы настраиваем счета учета номенклатуры, в нижней части – производим настройки:

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

Как установить цены номенклатуры

Установка цен номенклатуры в 1С 8.3 позволяет задавать цены для определенной номенклатуры или группы номенклатуры по типам цен номенклатуры.

Как установить хранение нескольких значений цены для одной и той же позиции номенклатуры в 1С 8.3 читайте в следующей статье.

Типы цен номенклатуры – это те цены, которые используются на предприятии. Это могут быть плановые цены для производства или продажи ТРУ, или же розничные/оптовые цены.

В 1С 8.3 на одну дату можно задать только один уровень цены для одного типа цены номенклатуры.

Для создания типа цены номенклатуры в 1С 8.3 необходимо из справочника Номенклатура перейти по ссылке в Типы цен номенклатуры:

Как загрузить прайс лист из Excel в документы Установка цен номенклатуры читайте в следующей статье.

Создавая тип цены номенклатуры можно выбрать валюту, порядок включения НДС в цену и округление (до десятых или целых):

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

Для установки цены номенклатуры по типу цены необходимо перейти в справочник Склад и выбрать документ Установка цен номенклатуры:

Создавая документ, выбираем дату установки цены номенклатуры, а также тип цены:

После этого переходим к заполнению табличной части. Ее можно заполнить несколькими способами:

1. Через кнопку Подбор: данный способ позволяет работать сразу с несколькими группами номенклатуры, дает возможность увидеть только ту номенклатуру, которая есть на остатках или сразу весь список; есть строка полнотекстового поиска; в нижней части подбора сразу устанавливаем цены:

2. Через кнопку Добавить – удобно, когда требуется установить цены для небольшого количества номенклатуры:

3. Через кнопку Заполнить: удобно, так как возможно несколько вариантов заполнения табличной части.

По номенклатуре – в документ попадают все созданные карточки номенклатуры:

По группе номенклатуры – можно выбрать одну группу номенклатуры и установить для нее цены:

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

Добавить по ценам номенклатуры – позволяет в уже заполненный документ добавить позиции тем же способом, как в выше указанном пункте:

Сработает хорошо, если сначала выполнить операцию как при заполнении по ценам номенклатуры, а потом, изменив тип цен для документа – добавить по ценам номенклатуры.

Обновить по ценам номенклатуры – позволяет перенести в табличную часть действующие цены для выбранной номенклатуры:

Заполнить/добавить по поступлению – позволяет заполнить табличную часть на основании документа поступления ТРУ:

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

Изменение цен номенклатуры

Бывают случаи, когда цены меняются на какой-то конкретный процент или же нужно округлить все цены до целых рублей и т.д. Для этого в программе 1С 8.3 есть механизм изменения:

По типу цены – дает возможность изменить тип цен номенклатуры в документе, если ранее для выбранной номенклатуры уже устанавливался новый тип цен, не теряя заполненную табличную часть:

На процент – увеличить или уменьшить цену на определенный процент:

Округлить цену до:

Считаем очень полезным в данном документе заполнение поля Комментарий, если устанавливаете цены для разный категорий ТРУ, так как это облегчит работу со справочником Установка цен номенклатуры:

Окно редактирования — в основном используется для создания новых объектов.
Палитра свойств — не привязано к конкретному объекту конфигурации.
Занятие 3.
Для чего предназначен объект конфигурации Справочник?
Справочник предназначен для работы со списками данных, описания их свойств и структуры.
Какие характерные особенности объекта конфигурации Справочник?
Справочник состоит из элементов; Каждый элемент представляет собой отдельную запись в таблице, хранящей информацию из этого справочника;
Элемент также может содержать дополнительную информацию, которая подробнее описывает этот элемент — одинаковый для всех элементов справочника — реквизит; Реквизит также является объектом конфигурации;
Для чего используются реквизиты и табличные части справочника?
Реквизиты используются для описания дополнительной информации, описывающей элемент справочника;
Табличная часть используется для описания информации элемента справочника, одинаковой по структуре, но различной по количеству.
Зачем нужны иерархические справочники и что такое Родитель?
Иерархические справочники нужны для группировки элементов справочника по какому-либо признаку или принципы. Различаются несколько типов иерархий: иерархия групп и элементов — элемент справочника, представляющий группу — родитель для всех элементов и групп, входящих в эту группу;
Иерархия элементов — родителем является не группой элементов справочника, а непосредственно сам элемент.
Зачем нужны подчиненные справочники и что такое Владелец?
Элементы одного справочника могут быть подчинены элементам другого справочника, и в таком случае устанавливается связь один-ко-многим. Так же может быть использована связь один-к-одному, когда каждый элемент подчиненного справочника связан с одним из элементов справочника-владельца.
Какие основные формы существуют у справочника?
Форма элемента — для редактирования или создания элемента справочника;
Форма группы — для редактирования или создания группы справочника;
Форма списка — для отображения списка элементов в справочнике;
Форма выбора группы — для выбора одной из группы справочника;
Что такое предопределенные элементы справочника?
Элементы справочника, создающиеся в конфигураторе, данные элементы пользователь удалить не может; Служат для хранения информации всегда, независимо от действий пользователя;
Чем с точки зрения конфигурации отличается обычный элемент от предопределенного?
На предопределенные элементы могут быть завязаны алгоритмы работы конфигурации, следовательно, система добавляет эти элементы в структуру базы данных сама, без участия пользователя.
Как пользователь может отличить обычный элемент от предопределенного?
С помощью пиктограммы

Дерево значений является одним из популярных типов данных, часто встречающихся на формах и конфигурации. Важным его преимуществом является заложенная платформой иерархичность, которой удобно воспользоваться в некоторых ситуациях, например, осуществить поиск по определенной группе элементов или получить отдельные итоговые суммы в различных категориях. Дерево значений в 1С – достаточно эффективный инструмент, достойный, чтобы разработчики тратили на его изучение свое время.

Размещение на форме и заполнение дерева значений

Чтобы на управляемой форме вывести дерево значений, необходимо добавить новый реквизит, выбрать нужный тип, добавить колонки и перетащить влево. На вопрос о добавлении колонок ответьте утвердительно, и перед вами предстанет общий вид дерева значений. Чтобы увидеть какие-либо записи, необходимо добавить строки дерева значений 1С с нужными данными.

Рис.1 Дерево значений

Существует несколько способов заполнения дерева значений нужными нам свойствами с определенной иерархией. Самый простой вариант – заполнить вручную, последовательно добавляя элементы и внимательно самостоятельно соблюдая иерархию. Естественно, при большом количестве элементов данный вариант не должен рассматриваться разработчиками 1С. Данный способ вывода информации состоит из следующих операторов:

На стороне сервера:

На стороне клиента:

Рис.2 Результат исполнения кода

Таким способом можно оформить на управляемой форме 1С небольшое дерево значений или простую иерархию, используя цикл. Однако часто возникает задача представить на форме сложный иерархический справочник из базы данных. И здесь на помощь придет помещение результата запроса в дерево на форме. Алгоритм достаточно прост и логичен:

  • Создаем запрос и указываем нужные нам условия. Важно, чтобы псевдонимы совпадали с наименованием колонок дерева значений на форме; Запрос = Новый Запрос; Запрос.Текст = «ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура | |УПОРЯДОЧИТЬ ПО | Номенклатура ИЕРАРХИЯ»;
  • Получаем данные с нужным видом обхода. Если не указывать, то получится не иерархическая таблица значений. Данные = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ЗначениеВРеквизитФормы(Данные,»ДеревоНом»)

Рис.3 Иерархическая таблица значений

При многократном использовании управляемой формы приходится очищать реквизиты. Не является исключением и дерево значений, если нам нужно получать актуальную информацию. Полностью очистить наш реквизит можно различными способами без особых усилий программиста:

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

Работа с заполненным деревом значений

В первую очередь, нужно научиться работать с данными, получая их из дерева. Для этого придется написать процедуру обхода строк дерева значений. Данные можно получить на сервере или клиенте, причем разница в алгоритмах будет небольшая. Ниже представлен алгоритм обхода дерева с краткими пояснениями операторов:

На клиентской стороне:

  • Вызываем процедуру, используя в качестве параметров строки дерева; ОбойтиЭлементыДерева(Дерево.ПолучитьЭлементы());
  • Внутри процедуры в цикле перебираем строки и проверяем наличие вложенных строк внутри каждой из них. Если таковые обнаружились, то снова вызываем эту же процедуру. Таким способом мы последовательно обойдем все строки, какой бы вложенностью не обладало наше дерево значений. &НаКлиенте Процедура ОбойтиЭлементыДерева(СтрокиДерева) Для каждого элемента Из СтрокиДерева Цикл Сообщить(элемента.ЭлементДерева); ВложенныеСтроки = элемента.ПолучитьЭлементы(); Если ВложенныеСтроки.Количество() > 0 Тогда ОбойтиЭлементыДерева(ВложенныеСтроки); КонецЕсли; КонецЦикла; КонецПроцедуры

На серверной стороне:

  • Получаем объект с формы; ДеревоНаСервере = РеквизитФормыВЗначение(«Дерево»);
  • Вызываем процедуру с объектом в качестве параметра; ОбойтиДеревоНаСервере(ДеревоНаСервере);
  • В цикле по каждой строке дерева проверяем количество вложенных элементов и при их наличии снова вызываем процедуру. &НаСервере Процедура ОбойтиДеревоНаСервере(ДеревоНаСервере) Для каждого строка из ДеревоНаСервере.Строки цикл Сообщить(Строка.ЭлементДерева); Если Строка.Строки.Количество() > 0 Тогда ОбойтиДеревоНаСервере(Строка); КонецЕсли; КонецЦикла; КонецПроцедуры

Иногда в процессе обхода строк нам может потребоваться удалить что-либо. Для этого используется метод «Удалить(_параметр_)», для которого в качестве параметра может использоваться индекс или непосредственно строка. Так как в процессе обхода вы рассматриваете все строки по отдельности, не составит труда удалить некоторые из них. Будьте внимательны, так как при удалении строки удаляются все вложенные элементы.

Также достаточно распространенной задачей является преобразование дерева значений в таблицу значений. Так как нам нельзя терять иерархию, в таблице будет на 2 поля больше, чем в дереве – добавятся идентификатор и родитель. Заполнить таблицу с сохранением структуры мы сможем с помощью рекурсивной процедуры.

Целиком алгоритм состоит из:

  1. Вызов процедуры с указанием начального идентификатора; ПреобразоватьВТЗРекурсия(тДерево, тТаблица, Новый УникальныйИдентификатор(«00000000-0000-0000-0000-000000000000»));
  2. Цикл с добавлением данных в таблицу значений и проверкой на наличие вложенных элементов в дереве в каждой итерации. При их наличии снова начинается вызов рекурсивной процедуры. &НаСервере Процедура ПреобразоватьВТЗРекурсия(тДерево, тТаблица, ГУИД) Для Каждого тСтр Из тДерево.Строки Цикл нСтр = тТаблица.Добавить(); нСтр.Колонка1 = тСтр.Колонка1; нСтр.Колонка2 = тСтр.Колонка2; нСтр.Родитель = ГУИД; нСтр.ГУИД = Новый УникальныйИдентификатор(); Если тСтр.Строки.Количество()>0 Тогда ПреобразоватьВТЗРекурсия(тСтр, тТаблица, нСтр.ГУИД); КонецЕсли; КонецЦикла; КонецПроцедуры

Зачастую пользователям бывает мало просто добавить дерево значений в 1С на управляемую форму. Постоянно поступают запросы, чтобы была возможность посмотреть всю структуру. Для этого придется развернуть дерево значений прямо на глазах у пользователя. В 1С это можно сделать, обойдя в цикле все строки и воспользовавшись одним из их методов:

ЭлементыДерева = Дерево.ПолучитьЭлементы(); Для каждого элемента из ЭлементыДерева цикл элементы.Дерево.Развернуть(элемента.ПолучитьИдентификатор(),Истина); КонецЦикла; Рис.4 Развернутое дерево значений

Также могут случаться ситуации, когда нужно свернуть имеющееся дерево. Для сворачивания конкретной строки можно воспользоваться методом «Свернуть(_Строка_)», аналогичным по синтаксису вышеописанному «Развернуть()». Чтобы полностью свернуть все дерево, придется воспользоваться рекурсивной функцией. Ее код достаточно прост и поддерживает общую методологию работы с деревом значений:

&НаКлиенте Процедура СвернутьДерево (ЭлементыДерева) Для Каждого элемента Из ЭлементыДерева Цикл ВлЭлементыЭлемента = элемента.ПолучитьЭлементы(); Если ВлЭлементыЭлемента.Количество() > 0 тогда СвернутьДерево(ВлЭлементыЭлемента); КонецЕсли; Элементы.Дерево.Свернуть(элемента.ПолучитьИдентификатор()); КонецЦикла; КонецПроцедуры Рис.5 Результат запроса Свернуть дерево

Одним из сложных нюансов, связанных с деревом значений, является отсутствие возможности отбора, когда родитель не удовлетворяет условию, а подчиненный элемент удовлетворяет. Нет однозначного ответа, что делать в подобных ситуациях, поэтому разработчики 1С решили не добавлять стандартную возможность фильтрации для дерева значений. Однако с этим можно справиться, разработав свою методику, например, скопировать дерево, удалить неподходящие значения и изменить иерархию.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх