1. Главная страница » Компьютеры

1С справочник иерархия элементов

Автор: | 16.12.2019

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

Справочники в конфигураторе 1С 8

Ниже мы рассмотрим настройку и проектирование справочника из конфигуратора на примере справочника «Номенклатура».

Вкладка «Основные»

На вкладке «Основные» указывается имя, синоним, представление объектов, описание назначения.

Вкладка «Иерархия справочника»

Здесь устанавливается иерархичность справочника.

Иерархия в 1С 8.3 бывает двух типов — «групп и элементов» и «элементов«. Отличается тем, что в первом случае родителем (папкой) может быть только папка (группа), а во втором случае родителем может быть и элемент.

«Размещать группы сверху» — флаг отвечает за отображение групп в форме списка.

Также в настройках можно ограничить количество групп иерархии справочника соответствующей настройкой.

Вкладка «Владельцы»

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

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

Вкладка «Данные»

Получите 267 видеоуроков по 1С бесплатно:

Самая важная вкладка с точки зрения программиста. На ней указываются реквизиты справочника.

У справочника есть набор стандартных реквизитов, которые не редактируются программистом 1С 8.2, список их можно увидеть, нажав кнопку «Стандартные реквизиты»:

Остановлюсь на каждом подробнее:

  • ЭтоГруппа — реквизит с типом булево, показывающий, группа это или элемент. Доступен только в иерархическом справочнике. Обратите внимание, значение этого реквизита невозможно изменить в режиме 1С: Предприятие.
  • Код — реквизит, тип число или строка (как правило строка). Номер, присваиваемый системой автоматически. Как правило, рассчитывается как (предыдущий код + 1). Рекомендую использовать именно строковый тип, потому как сортировка числовых значений происходит не так, как нужно. Можно использовать как представление справочника в списке и в полях ввода. Как правило, используется для поиска элемента при вводе по строке. Если Вам нужно убрать поле Код, укажите в длине строки ноль.
  • Наименование — реквизит, обязательный к заполнению, строкового типа. Максимальная длина строки — 150 символов. Можно использовать как представление справочника в списке и в полях ввода. Как правило, используется для поиска элемента при вводе по строке. Если Вам нужно убрать поле Наименование, укажите в длине строки ноль.
  • Родитель — реквизит, имеющий тип СправочникСсылка. . Доступен только в иерархическом справочнике. Указывает на вышестоящего родителя в иерархии. Если Элемент или Группа находятся в корне справочника, указывается значение Справочник. .ПустаяСсылка.
  • Владелец — ссылка на элемент-владелец текущего элемента (группы) справочника. Доступен только в подчиненном справочнике 1С.
  • ПометкаУдаления — реквизит с типом булево. Отвечает за отображение «пометки удаления» в системе. Помеченный на удаление элемент считается непригодным к использованию, однако на нём могут оставаться старые движения в документах.
  • Ссылка — поле строкового типа. В этом реквизите хранится уникальный идентификатор объекта — GUID. То, что в системе мы видим в визуальном отображении под название «ссылка», — это всего лишь представление объекта. Невозможно изменить.
  • Предопределенный — тип булево, отображает, является ли элемент предопределенным, об этом позже. Невозможно изменить.

На вкладке «Данные» так же указывается представление справочника в системе, до версии 8.2.16 представление могло быть лишь Кодом или Наименованием. В свежих версиях платформы (начиная с 8.3) представление можно описать самостоятельно в модуле менеджера с помощью обработчика «ОбработкаПолученияПредставления».

Вкладка «Нумерация»

Здесь указываются настройки справочника по части нумерации. Рекомендуется использовать именно автонумерацию. Контроль уникальности — флаг, который помогает, если нужно, сделать код уникальным. Если с установленным флагом Вы попытаетесь записать элемент справочника с неуникальным кодом, в 1С Вы получите сообщение «Код справочника стал неуникальным».

Серия кодов — определяет, как нумеровать справочник, можно ввести нумерацию справочника в разрезе владельца. Например, у контрагента «Рога и копыта» будет иметься своя нумерация договоров — «1, 2, 3» и тд.

Вкладка «Формы»

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

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

Вкладка «Прочее»

На вкладке можно получить быстрый доступ к основным модулям справочника — модулю объекта и модулю менеджера.

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

На этой вкладке также определяется режим блокировки — автоматический или управляемый. Использование полнотекстового поиска, а также справочная информация о справочнике, доступная в режиме 1С: Предприятия.

Читайте также и другие статьи по конфигурированию 1С.

Минивидео, как работать со справочниками:

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Что такое справочник 1с и для чего он нужен? Справочник хранит условно-постоянную информацию, т.е. информация, которая на длительном промежутке времени почти не меняется. Например, справочник "Номенклатура" содержит перечень продаваемых или выпускаемых товаров. Также справочник может содержать множество свойств описывающих элемент справочника.

Если взять для сравнения пол человека, то здесь список ограничен и не изменен, поэтому для него лучше подходит перечисление.

Создав новый справочник мы увидим следующую картину.

Рассмотрим все его закладки.

Основные

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

Иерархия

На этой закладке можно настроить глубину вложенности элементов справочника. При помощи данной настройки удобно разграничивать и детализировать элементы по каким-то критериям. Например, товары "Шкафы" в одной группе, а товары "Столы" в другой. По умолчанию при создании справочник представляет список элементов. Если поставить флажок Иерархический справочник, то каждый элемент может быть подчинен другому элементу (группе). Ниже указаны варианты настройки этой закладки и изменение отображения в пользовательском режиме.

Иерархия групп и элементов

При данной настройке вложенность элементов может быть только в группы (папки).

Иерархия элементов

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

Размещать группы сверху

При установке этого флажка группы всегда будут вверху, иначе будут расположены в порядке сортировки, например, так:

Ограничение количества уровней иерархии

Если здесь флажок не установлен, то вложенность неограниченна.

Если флажок установлен, то ниже можно указать количество уровней.

Владельцы

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

В поле "Список владельцев справочника" указывается список справочников, которым принадлежат элементы данного справочника.

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

Справочник Контрагенты будем использовать для хранения информации о контрагентах — то есть о тех организациях, с которыми взаимодействует наш салон красоты.

Так же создал справочник ПредставителиКонтрагентов. Он будет содержать список контактных лиц контрагента и, кроме того, будет подчинен справочнику Контрагенты.

Создадим справочник Контрагенты. Это будет иерархический справочник, который содержит основные сведения о контрагентах. Рассмотрим настройки вкладок окна параметров этого справочника.

На вкладке Основные мы зададим имя справочника Контрагенты и такой же синоним.

Вкладка Иерархия, которую мы еще не рассматривали, предназначена для настройки параметров иерархического справочника (рис. 2.21).

Рисунок 2.21 — Справочник Контрагенты, вкладка Иерархия

Рассмотрим установки, которые можно сделать на этой вкладке.

Иерархический справочник. Этот флажок по умолчанию сброшен. То есть, новые справочники по умолчанию не являются иерархическими.

Вид иерархии. Здесь доступно два варианта. Первый – он установлен у нашего справочника — это Иерархия групп и элементов. Второй — это Иерархия элементов. Иерархия групп и элементов означает, что справочник может включать в себя группы, которые, в свою очередь, могут включать в себя другие группы и элементы. Например, в справочнике Контрагенты можно создать такие группы, как Покупатели, Поставщики, Деловые партнеры. В каждую из этих групп можно включать тех контрагентов (то есть — те элементы справочника), характер взаимодействия с которыми соответствует названию группы. Группа, к которой относится элемент, называется его родителем.

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

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

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

Перейдем на вкладку Данные нашего справочника (рис. 2.22) и зададим ему следующие реквизиты (таблица 2.3).

Таблица 2.3 — Реквизиты справочника Контрагенты

Рисунок 2.22 — Справочник Контрагенты, вкладка Данные

Теперь займемся справочником ПредставителиКонтрагентов. На вкладке Основные введем имя ПредставителиКонтрагентов и перейдем на вкладку Владельцы, на этой вкладке нажмем на кнопку Редактировать список владельцев. Появится окно (рис. 2.23), которое содержит список объектов, которые можно назначить владельцами справочника.

Рисунок 2.23 — Справочник ПредставителиКонтрагентов, вкладка Владельцы

В появившемся окне Выбор объекта установим флаг напротив поля Контрагенты. Нажав на кнопку ОК, возвращаемся на вкладку Владельцы, рис. 2.24.

Поле Использование подчинения позволяет задать подчинение элементам справочника- владельца, группам, или группам и элементам. Выбор варианта использования подчинения осуществляется в зависимости от особенностей справочников.

Рисунок 2.24 — Справочник ПредставителиКонтрагентов, вкладка Владельцы

Например, в нашем случае, очевидно, что в иерархическом справочнике Контрагенты каждому контрагенту может соответствовать один или несколько представителей. Поэтому мы указываем в поле Использование подчинения вариант Элементам.

Перейдем на вкладку Данные справочника ПредставителиКонтрагентов (рис. 2.25).

Рисунок 2.25 — Подготовка к копированию реквизитов одного справочника в другой

Мы собираемся добавить реквизиты справочника, которые позволят хранить ФИО представителя и его телефон. Вспомним, что ранее мы создавали похожий справочник — это справочник ФизическиеЛица. Среди реквизитов этого справочника есть такие, которые подойдут нам при конструировании нового справочника. Гораздо быстрее скопировать нужные реквизиты из одного объекта в другой, чем создавать эти реквизиты с нуля. Удобно копировать реквизиты, просто перетаскивая их мышью из одного места дерева конфигурации в другое. В итоге, пользуетесь вы копированием или нет, у вас должен получиться следующий набор реквизитов (таблица 2.4).

Таблица 2.4 — Реквизиты справочника ПредставителиКонтрагентов

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

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

Рисунок 2.26 — Создание новой группы в справочнике Контрагенты

Код присваивается автоматически, поле Родитель так же заполняется автоматически (хотя его можно заполнить и вручную) — оно содержит наименование группы, в которую входит создаваемая группа. В нашем случае это поле остается пустым, так как группы создаются на верхнем уровне справочника Контрагенты. При необходимости мы можем создавать вложенные группы. Например — в группе Поставщики создадим подгруппы Новые и Постоянные (рис. 2.27).

Рисунок 2.27 — Создание подгруппы Постоянные в группе Поставщики справочника Контрагенты

Прежде чем приступать к вводу данных о представителях контрагента вполне логично ввести данные о самом контрагенте. Поэтому, выберем одну из групп (например — Поставщики > Новые) и создадим в ней новый элемент (рис. 2.28). Сохраним созданный элемент нажатием на кнопку ОК. Если теперь мы попытаемся создать новый элемент справочника, в его поле Владелец будет автоматически внесено ООО "Рассвет".

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

Рисунок 2.28 — Создание нового элемента справочника Контрагенты в режиме просмотра «дерево»

Задание 2. Доработка формы списка справочника Контрагенты

Мы уже создали немало объектов, но пока не занимались редактированием их форм. Лишь форму констант мы создавали явно. Формы справочников были созданы автоматически. 1С:Предприятие автоматически создает нужные формы объектов. Такие формы поддерживают лишь минимально необходимую функциональность — ввод, просмотр и изменение данных объектов. Эти формы создаются "на лету" в ходе работы пользователя с объектом. Если форма должна поддерживать какую-нибудь дополнительную функциональность — она должна быть создана при проектировании объекта. Например, выше мы столкнулись с необходимостью выводить элементы подчиненного справочника в форме справочника Контрагенты. Автоматически подобная функциональность не создается.

Существует несколько видов форм. В частности, формы объектов (форма элемента справочника, форма документа, например), формы списков объектов, формы выбора и другие. Если формы не созданы вручную и не указаны в нужном качестве в окне редактирования объекта, они генерируются автоматически при необходимости их использования.

Откроем в конфигураторе окно свойств справочника Контрагенты и перейдем на его вкладку Формы (рис. 2.29).

Ни одна из форм не задана, то есть все они формируются системой при возникновении необходимости в них. Нажмем на кнопку Открыть в поле Списка. Будет вызван конструктор форм (рис. 2.30) для формы списка справочника. Именно эта форма открывается при выборе соответствующего справочника из окна Справочники в режиме 1С:Предприятие.

Не будем менять установки, заданные по умолчанию и нажмем на кнопку Далее. Появится второе окно конструктора форм (рис. 2.31).

Здесь мы можем видеть список реквизитов формы. В частности, это реквизиты Список и Дерево. Дерево — это то, что мы видим в левой части окна формы иерархического справочника, созданной автоматически. Список — это список элементов справочника, который можно видеть в правой части окна формы. Здесь мы можем отредактировать набор отображаемых свойств и нажмем на кнопку Готово. Откроется окно редактора форм, который содержит автоматически сгенерированную форму, готовую к ручному редактированию (рис. 2.32).

Рисунок 2.29 — Вкладка Формы окна свойств справочника Контрагенты

Рисунок 2.30 — Конструктор формы справочника, первый шаг

Рисунок 2.31 — Конструктор формы справочника, второй шаг

Рисунок 2.32 — Результат работы конструктора форм

Упражнение 3. Создание дополнительных справочников

Задание 1. Техническое добавление справочников

Напомним, что мы говорили о создании документа ПоступлениеМатериалов. Для того, чтобы его создать нам понадобится добавить в систему еще несколько справочников.

Создадим справочник ЕдиницыИзмерения. В таблице 2.5 приведены параметры этого справочника. Здесь и далее в подобных таблицах приведена информация лишь о тех параметрах, которые мы изменяем.

Таблица 2.5 — Параметры справочника ЕдиницыИзмерения

Вкладка окна редактирования объекта

Для простых справочников, которые содержат немного реквизитов и для которых не нужно проводить какую-либо обработку данных сразу же после ввода их в форму, можно задавать вариант редактирования В списке. Он предусматривает редактирование элемента справочника в форме списка справочника без вызова формы элемента. В этом справочнике мы планируем использовать реквизит Наименование (напомним, что у справочников, по умолчанию, есть два реквизита — Код и Наименование, их не нужно создавать) для хранения названия единицы измерения. Другие реквизиты нам не понадобятся.

Создадим справочник Номенклатура. (таблица 2.6).

Таблица 2.6 — Параметры справочника Номенклатура

Вкладка окна редактирования объекта

Истина (флаг установлен)

Создадим справочник Подразделения (таблица 2.7).

Таблица 2.7 — Параметры справочника Подразделения

Вкладка окна редактирования объекта

Создадим справочник Сотрудники (таблица 2.8).

Таблица 28 — Параметры справочника Сотрудники

Вкладка окна редактирования объекта

Логика работы с данным справочником такова. ФизическоеЛицо, данные о котором хранятся в справочнике ФизическиеЛица, принимается на работу в определенное подразделение организации, данные об этом фиксируются в справочнике Сотрудники. Реквизит ПриказОПриемеНаРаботу нужен для хранения данных о приказе, которым работник был принят на работу (например: Приказ №1 от 01.01.2010).

Доработаем форму элемента справочника таким образом, чтобы его реквизит Наименование заполнялся автоматически при вводе или изменении данных в полях ФизическоеЛицо или Подразделение, и, в результате содержал бы текст такого вида: Фамилия И.О. (Подразделение).

Перейдем на вкладку окна редактирования объекта Формы, нажмем кнопку Открыть в поле указания формы элемента. В появившемся окне конструктора форм сразу же нажмем на кнопку Готово. У нас получится автоматически созданная форма такого вида (рис. 2.33).

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

Выделим поле ввода Физическое лицо и в окне его свойств нажмем на кнопку Открыть в поле ПриИзменении. В модуле формы будет создан обработчик соответствующего события, (рис. 2.34).

Рисунок 2.33 — События поля ввода формы элемента справочника Сотрудники

Рисунок 2.34 Обработчик события поля

Процедура ФизическоеЛицоПриИзменении создается автоматически. Она будет использоваться в качестве обработчика события в том случае, если будет указана в поле ПриИзменении. Это уже сделано при ее создании. То есть, другими словами, имя процедуры значения не имеет. Значение имеет то, что эта процедура будет указана в поле ПриИзменении окна свойств поля ввода Физическое лицо. Не каждая процедура может быть выбрана в качестве обработчика события. В частности, в нашем случае процедура должна иметь один параметр.

Приступим к написанию текста процедуры. Он будет таким:

Наименование = ФизическоеЛицо.Наименование +" ("+Подразделение.Наименование+")";

Здесь Наименование соответствует реквизиту Данные поля с именем Наименование. Мы можем обращаться к нему напрямую, записывая данные, которые отобразятся в поле Наименование.

ФизическоеЛицо.Наименование дает нам доступ к реквизиту Наименование элемента справочника ФизическиеЛица, подобранного в поле ФизическоеЛицо. Аналогично, код Подразделение.Наименование позволяет работать с реквизитом Наименование элемента справочника Подразделения, который подобран в поле Подразделение. Здесь, опять же, мы обращаемся не к элементу управления (то есть — не к полю), а к данным, которые оно содержит и которые задаются его свойством Данные.

Знак "+" используется для конкатенации (связывания) строк. Символы, заключенные в кавычки интерпретируются системой как текст.

При наборе текста работают подсказки. Для того, чтобы получить справку по коду, можно воспользоваться функцией вызова так называемого Синтакс-помощника из окна редактирования модуля. Для того чтобы получить такую справку, нужно установить курсор в интересующий нас участок текста и нажать сочетание клавиш Ctrl + F1. Например, установим курсор на слово Процедура и нажмем Ctrl + F1. Откроется окно со справочной информацией (рис. 2.35).

Рисунок 2.35 — Синтакс-помощник

Создадим обработчик события ПриИзменении для поля Подразделение. Он будет таким же точно, каким был текст обработчика аналогичного события для поля Физическое лицо, (2.36).

Рисунок 2.36 — Тексты процедур обработчиков событий

Это — типичная в программировании ситуация, когда один и тот же код используется в различных процедурах. Разумно будет вынести его в отдельную процедуру и вызывать эту процедуру в обработчиках событий. Создадим в модуле новую процедуру, введя с клавиатуры следующий код (код, находящийся в теле процедуры, можно добавить копированием из тела одной из других процедур, выделение, копирование, вырезание текста в редакторе модулей выполняется аналогично подобным операциям в любом текстовом редакторе):

Наименование = ФизическоеЛицо.Наименование + " ("+Подразделение.Наименование+")";

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

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

На рисунке 2.37 вы можете видеть итоговый вариант кода модуля.

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

Создадим новый элемент справочника Сотрудники, и, заполняя его, заполним, выбором из справочника ФизическиеЛица поле Физическое лицо. Так как поле Подразделение пока пустое, в поле Наименование отобразится текст вида Фамилия И.О.

Рисунок 2.37 — Тексты процедур обработчиков событий

ознакомился со справочниками, перечислениями 1С:Предприятие 8.2 и получил начальные навыки по работе с ними;

начал рассматривать работу со встроенным языком системы 1С:Предприятие 8.

Читайте также:  Age of empires 3 индейцы

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

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