Справочники в 1С 8.3

Курс

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

Справочник представляет собой некий список данных. Как правило элемент справочника используется для заполнения реквизитов документа (хотя им можно заполнять и реквизиты других справочников, в том числе и реквизиты текущего справочника). Это нужно для исключения неоднозначности ввода информации. Например, в приходной накладной нужно заполнять поставщика. Пусть поставщик называется «Привезу все и всем». Если бы поле «Поставщик» было строкового типа, то один пользователь мог бы вписать в документ «ООО Привезу все и всем», второй «Привезу все и всем ООО», третий «Привезу всем и все» и т.п. После такого заполнения программе будет сложно понять, что это один и тот же поставщик и получить общую сумму задолженности по всем приходным накладным.

Для исключения таких ошибок создается один справочник «Поставщики», в нем создается новый элемент, один раз вводится его наименование, а потом этот элемент выбирается в документах. При этом в реквизите документа будет сохранена ссылка на объект базы данных.

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

Справочник в 1С 8.3

Структура справочника

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

Справочник в 1С 8.3

Если добавить в справочник несколько реквизитов:

Справочник в 1С 8.3

То в таблицу базы данных автоматически будут добавлены две колонки: Артикул и Поставщик:

СсылкаНаименованиеКодАртикулПоставщик

Каждый элемент справочника хранится в отдельной строке (записи) таблицы. Например, если в пользовательском режиме добавить несколько элементов:

Справочник в 1С 8.3

То таблица базы данных будет выглядеть следующим образом:

СсылкаНаименованиеКодАртикулПоставщик
8eae102c-86d5-11eb-80a3-e0d55e4e2669Клавиатура000000001Клав20Привезу все
8eae102d-86d5-11eb-80a3-e0d55e4e2669Смартфон000000002См-30Привезу все

Табличные части справочника

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

Если мы добавим в справочник табличную часть для хранения цен:

Табличные части справочника в 1С 8.3

И для элемента Клавиатура заполним ее следующим образом:

Табличные части справочника в 1С 8.3

То в базе данных будет создана следующая таблица:

СсылкаНомер строкиВид ценыЦена
8eae102c-86d5-11eb-80a3-e0d55e4e26691Оптовая500
8eae102c-86d5-11eb-80a3-e0d55e4e26692Розничная1000

В поле Ссылка хранится тот же самый идентификатор, что и в основной таблице справочника.

Иерархические справочники

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

Иерархические справочники в 1С 8.3

Если установить флаг Иерархический справочник, то в пользовательском режиме можно будет создавать как элементы, так и группы:

Иерархические справочники в 1С 8.3

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

Иерархические справочники в 1С 8.3

На уровне базы данных иерархия реализована через поля ЭтоГруппа и Родитель. В поле Родитель хранится ссылка на группу, в которой находится элемент (или группа, группы могут быть вложены друг в друга). Поле ЭтоГруппа имеет тип булево и в нем хранится признак группа это или элемент.

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

СсылкаНаименованиеКодЭто группаРодитель
СмартфоныСмартфоны000000004Да
СмартфонСмартфон000000002НетСмартфоны
Составляющие ПКСоставляющие ПК000000003Да
КлавиатураКлавиатура000000001НетСоставляющие ПК

Для элементов или групп, которые находятся на верхнем уровне иерархии поле Родитель не заполнено.

Иерархия может быть двух видов:

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

Пример иерархии групп и элементов можно увидеть выше. Это когда есть группы и есть элементы. Иерархия элементов выглядит следующим образом:

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

В этом случае нет разделения на группы и элементы. При этом элементы могут быть вложены друг в друга.

Флаг Размещать группы сверху определяет как будет выполняться сортировка. Если данный флаг установлен, то группы всегда будут выше элементов:

Иерархические справочники в 1С 8.3

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

Если снять данный флажок, то сортировка будет выполняться независимо от признака ЭтоГруппа:

Иерархические справочники в 1С 8.3

Также 1С позволяет ограничить количество уровней иерархии. Если установить флажок Ограничение количества уровней иерархии и в поле Количество уровней иерархии указать 2, то можно будет создавать группы только на верхнем уровне иерархии, а внутри них только элементы. Если попытаться внутри группы «Смартфоны» создать группу, а не элемент, то будет ошибка «Превышено количество уровней!».

Также можно ограничить использование реквизитов. Для этого у каждого в реквизита в свойствах можно указать Использование:

  • Для элемента — реквизит будет доступен только для элементов
  • Для группы — реквизит будет доступен только для групп
  • Для группы и элемента — реквизит будет доступен как для групп, так и для элементов
Иерархические справочники в 1С 8.3

Подчиненные справочники

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

Настройка подчиненности выполняется на закладке Владельцы в подчиненном справочнике:

Подчиненные справочники в 1С 8.3

Для добавления владельца нужно нажать на кнопку с зеленым карандашом и указать справочники-владельцы. Можно указать несколько справочников, тогда поле Владелец будет составного типа.

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

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

Подчиненные справочники в 1С 8.3

Нумерация

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

Нумерация справочников в 1С 8.3

Флаг Автонумерация позволяет автоматически заполнять поле Код при записи. Новый код будет на единицу больше предыдущего. Если данный флаг снят, то поле Код придется заполнять вручную. Как правило данный флаг оставляют включенным.

Флаг Контроль уникальности позволяет контролировать уникальность кодов справочника. Ниже можно указать в пределах чего контролировать уникальность:

  • Во всем справочнике — платформа не даст создать больше одного элемента с одинаковым кодом.
  • В пределах подчинения — в разных группах справочника можно создавать элементы с одинаковым кодом. Только для иерархических справочников
  • В пределах подчинения владельцу — элементы с одинаковым кодом могут быть только если у них отличается владелец. Только для подчиненных справочников.

Также на закладке Данные можно указать Длину кода и Тип кода. Тип может быть строковым или числовым:

Нумерация справочников в 1С 8.3

Формы справочника

На закладке формы можно создать формы для справочника и указать некоторые из них как основные:

Формы справочника в 1С 8.3

Вверху в полях указываются основные формы, а внизу список всех форм. Если основная форма не указана, то форма генерируется платформой автоматически «на лету». Если указана, то используется именно она.

У справочника есть следующие формы:

  • Форма элемента — используется при открытии и создании элемента
  • Форма группы — используется при открытии и создании группы
  • Форма списка — используется для отображения списка всех элементов и групп
  • Форма выбора — используется при выборе элемента в полях с типом данного справочника.
  • Форма выбора группы — используется при выборе группы в полях с типом данного справочника. Для выбора доступны только группы.

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Используя этот сайт, Вы даете согласие на использование cookies. На данном этапе Вы можете отказаться от использования cookies, настроив необходимые параметры в своем браузере.
ok