для чего используются реквизиты и табличные части справочника
Справочники в 1С 8.3
Зачем нужны справочники
Справочник представляет собой некий список данных. Как правило элемент справочника используется для заполнения реквизитов документа (хотя им можно заполнять и реквизиты других справочников, в том числе и реквизиты текущего справочника). Это нужно для исключения неоднозначности ввода информации. Например, в приходной накладной нужно заполнять поставщика. Пусть поставщик называется «Привезу все и всем». Если бы поле «Поставщик» было строкового типа, то один пользователь мог бы вписать в документ «ООО Привезу все и всем», второй «Привезу все и всем ООО», третий «Привезу всем и все» и т.п. После такого заполнения программе будет сложно понять, что это один и тот же поставщик и получить общую сумму задолженности по всем приходным накладным.
Для исключения таких ошибок создается один справочник «Поставщики», в нем создается новый элемент, один раз вводится его наименование, а потом этот элемент выбирается в документах. При этом в реквизите документа будет сохранена ссылка на объект базы данных.
В дереве метаданных справочники находятся в узле Справочники. При добавлении нового справочника открывается окно редактирования свойств справочника, в котором, переходя по закладкам можно заполнить основные свойства справочника:
Структура справочника
При создании нового справочника в базе данных автоматически создается таблица для хранения данных этого справочника. Если в справочнике нет ни одного реквизита, то в таблице будут колонки только для полей Код, Наименование, ПометкаУдаления, Ссылка и некоторых других служебных реквизитов. При этом если на закладке Данные указать длину кода или наименования равной нулю, то для них не будет создана колонка в таблице:
Если добавить в справочник несколько реквизитов:
То в таблицу базы данных автоматически будут добавлены две колонки: Артикул и Поставщик:
Ссылка | Наименование | Код | Артикул | Поставщик |
---|
Каждый элемент справочника хранится в отдельной строке (записи) таблицы. Например, если в пользовательском режиме добавить несколько элементов:
То таблица базы данных будет выглядеть следующим образом:
Ссылка | Наименование | Код | Артикул | Поставщик |
---|---|---|---|---|
8eae102c-86d5-11eb-80a3-e0d55e4e2669 | Клавиатура | 000000001 | Клав20 | Привезу все |
8eae102d-86d5-11eb-80a3-e0d55e4e2669 | Смартфон | 000000002 | См-30 | Привезу все |
Табличные части справочника
Табличная часть справочника хранится в отдельной таблице. В этой таблице есть колонки Ссылка и НомерСтроки, а также по одной колонке для каждого реквизита табличной части. Основная таблица справочника и табличная часть связаны между собой через поле Ссылка.
Если мы добавим в справочник табличную часть для хранения цен:
И для элемента Клавиатура заполним ее следующим образом:
То в базе данных будет создана следующая таблица:
Ссылка | Номер строки | Вид цены | Цена |
---|---|---|---|
8eae102c-86d5-11eb-80a3-e0d55e4e2669 | 1 | Оптовая | 500 |
8eae102c-86d5-11eb-80a3-e0d55e4e2669 | 2 | Розничная | 1000 |
В поле Ссылка хранится тот же самый идентификатор, что и в основной таблице справочника.
Иерархические справочники
Справочники могут быть иерархическими, то есть внутри одного элемента могут храниться другие элементы. Настройка иерархии выполняется на закладке Иерархия:
Если установить флаг Иерархический справочник, то в пользовательском режиме можно будет создавать как элементы, так и группы:
Элементы можно перетаскивать в группы, тогда они будут находиться внутри этой группы:
На уровне базы данных иерархия реализована через поля ЭтоГруппа и Родитель. В поле Родитель хранится ссылка на группу, в которой находится элемент (или группа, группы могут быть вложены друг в друга). Поле ЭтоГруппа имеет тип булево и в нем хранится признак группа это или элемент.
Для текущего состояния справочника таблица будет выглядеть следующим образом (для упрощения в поле Ссылка я буду отображать наименование элемента, а не идентификатор. Из реквизитов в таблице только код и наименование):
Ссылка | Наименование | Код | Это группа | Родитель |
---|---|---|---|---|
Смартфоны | Смартфоны | 000000004 | Да | |
Смартфон | Смартфон | 000000002 | Нет | Смартфоны |
Составляющие ПК | Составляющие ПК | 000000003 | Да | |
Клавиатура | Клавиатура | 000000001 | Нет | Составляющие ПК |
Для элементов или групп, которые находятся на верхнем уровне иерархии поле Родитель не заполнено.
Иерархия может быть двух видов:
Пример иерархии групп и элементов можно увидеть выше. Это когда есть группы и есть элементы. Иерархия элементов выглядит следующим образом:
В этом случае нет разделения на группы и элементы. При этом элементы могут быть вложены друг в друга.
Флаг Размещать группы сверху определяет как будет выполняться сортировка. Если данный флаг установлен, то группы всегда будут выше элементов:
Справочник отсортирован по наименованию, но несмотря на то, что буква «С» идет позже буквы «Б» группы расположены выше элемента Бинокль.
Если снять данный флажок, то сортировка будет выполняться независимо от признака ЭтоГруппа:
Также 1С позволяет ограничить количество уровней иерархии. Если установить флажок Ограничение количества уровней иерархии и в поле Количество уровней иерархии указать 2, то можно будет создавать группы только на верхнем уровне иерархии, а внутри них только элементы. Если попытаться внутри группы «Смартфоны» создать группу, а не элемент, то будет ошибка «Превышено количество уровней!».
Также можно ограничить использование реквизитов. Для этого у каждого в реквизита в свойствах можно указать Использование:
Подчиненные справочники
Один справочник может быть подчинен другому справочнику. Например, есть справочник контрагентов и справочник договоров контрагентов. Чтобы в справочнике договоров не заводить отдельный реквизит для указания контрагента можно сделать его подчиненным справочнику контрагентов. В этом случае в таблице справочника будет добавлено поле Владелец, которое будет хранить ссылку на владельца.
Настройка подчиненности выполняется на закладке Владельцы в подчиненном справочнике:
Для добавления владельца нужно нажать на кнопку с зеленым карандашом и указать справочники-владельцы. Можно указать несколько справочников, тогда поле Владелец будет составного типа.
В поле Использование подчинения можно указать могут ли владельцами быть группы справочников или только элементы.
После настройки подчиненности, в пользовательском режиме у справочника-владельца вверху, в панели навигации формы появится ссылка для перехода в подчиненный справочник, причем автоматически будет выполнен отбор по владельцу:
Нумерация
Настройка нумерации справочников выполняется на закладке Нумерация:
Флаг Автонумерация позволяет автоматически заполнять поле Код при записи. Новый код будет на единицу больше предыдущего. Если данный флаг снят, то поле Код придется заполнять вручную. Как правило данный флаг оставляют включенным.
Флаг Контроль уникальности позволяет контролировать уникальность кодов справочника. Ниже можно указать в пределах чего контролировать уникальность:
Также на закладке Данные можно указать Длину кода и Тип кода. Тип может быть строковым или числовым:
Формы справочника
На закладке формы можно создать формы для справочника и указать некоторые из них как основные:
Вверху в полях указываются основные формы, а внизу список всех форм. Если основная форма не указана, то форма генерируется платформой автоматически «на лету». Если указана, то используется именно она.
У справочника есть следующие формы:
Программирование в 1С для всех
Справочники в 1С используются для работы с постоянной или условно постоянной информацией, но, в отличие от констант, данная информация может содержать множество значений. К примеру, если мы разрабатываем конфигурацию для учета движения товаров на складе, то такой информацией может быть вид товара, информация о самих товарах, информация о складах и т.п. Таким образом, справочники необходимы для хранения аналитики учета (то, по чему в дальнейшем будет осуществляться анализ, например, сколько товаров продано). В пользовательском режиме работа осуществляется с элементами справочника. Именно элементы справочника и являются объектами аналитики (именно они и будут анализироваться). Например, у справочника Товары могут быть элементы «Гвозди», «Хлеб» и «Молоко».
Элементы справочника создают операторы в пользовательском режиме 1С. В дальнейшей своей работе они могу использовать тот или иной созданный ранее элемент справочника. Например, элементы справочника Товары могут использоваться в отображении прихода или расхода товара в соответствующих документах.
По умолчанию у любого справочника имеется два реквизита — это Код и Наименование. Это так называемые стандартные реквизиты. Наименование обычно заполняет оператор, а код заполняется автоматически. Иногда стандартных реквизитов Код и Наименование бывает достаточно для работы, но чаще всего прикладная задача требует хранения вспомогательной информации. Для этого создаются реквизиты справочника, позволяющие хранить любую дополнительную информацию об элементе справочника.
Применительно к товарам это может быть артикул, полное наименование, наименование для продажи, вид товара и т.п. Еще новая возможность справочников (в 1С 7.7. этого нет) — это возможность создавать табличные части, в которых хранится однотипная информация, количество которой может быть изменчивым. Например, для товара это могут быть какие-то дополнительные свойства.
Реквизитов и табличных частей может быть неограниченное количество.
Создать новый справочник в 1С достаточно просто. Для этого необходимо зайти в конфигуратор 1С, открыть окно конфигурации, выделить ветвь Справочники, вызвать правой кнопкой мышки контекстное меню, где выполнить команду Добавить.
После этого откроется конструктор справочника, где на закладке «Основные» необходимо ввести имя справочника.
На закладке Данные можно задать длину кода и наименования, тип кода (число или строка) и основное представление элемента справочника (в виде кода или в виде строки).
А также можно создать необходимые реквизиты и табличные части.
В отличие от наименования, код может элементу справочника присваиваться автоматически, если установлен флаг Автонумерация на закладке нумерация.
Реквизиты справочников 1С
Реквизиты справочников 1С создаются на закладке Данные в окне реквизитов.
В качестве реквизитов справочника могут выступать, как примитивные типы, так и ссылочные. Например, мы уже создали справочник ВидыТоваров, а сейчас создадим справочник Товары, где будут реквизиты Артикул (тип Строка) и ВидТовара (ссылка на справочник ВидыТоваров).
В режиме «1С: Предприятия» это будет выглядеть следующим образом.
Обращаю внимание, на что влияет свойство «Основное представление» (закладка Данные конструктора справочника). Если у нас основное представление в виде наименования, то представление элемента справочника в каком-либо реквизите будет в виде наименование этого элемента, как на рисунке представлен элемент справочника ВидыТоваров в реквизите справочника Товары. А если основное представление в виде кода, то тогда представление этого элемента будет в виде кода элемента.
Табличные части справочников 1С
Табличные части создаются на закладке «Данные» в конструкторе справочника.
Можно создавать неограниченное количество табличных частей.
Сделаем справочник Комплектация, у которого будет табличная часть Состав.
У табличной части может быть неограниченное количество реквизитов. Для того, чтобы создать реквизит табличной части, её необходимо выделить и нажать на кнопку «Добавить реквизит».
Реквизиты табличной части могут быть как примитивных типов, так и ссылочных.
Подчиненные справочники 1С
В конфигурации 1С 8.3 можно разрабатывать Подчиненные справочники. В Подчиненном справочнике каждый его элемент имеет владельца, который является элементом или группой другого справочника. Элемент подчиненного справочника не может существовать без владельца.
Сделаем возможность учета единиц измерения. Сначала создадим справочник «Классификатор единиц измерения», в котором будут храниться различные единицы измерения (штуки, килограммы и тд).
У справочника Товары сделаем реквизит основная единица измерения (ссылка на справочник классификатор единиц измерения)
И сделаем справочник, подчиненный справочнику Товары, в котором будут храниться коэффициенты соотношений единиц измерения к основной единице измерения товара. К примеру, основная единица измерения килограмм, но есть еще единица тонна и центнер. Соответственно в первом случае коэффициент будет 1000, а во втором 100.
Создадим справочник ЕдиницыИзмерения.
На закладке Владельцы установим, что владельцем этого справочника является справочник Товары.
И создадим реквизиты: Коэффициент (тип число) и единица измерения (тип ссылка на справочник «Классификатор единиц измерения»).
Вот как это будет выглядеть в режим «1С: Предприятия».
Иерархический справочник 1С
Любой справочник можно сделать Иерархическим – это значит, что пользователь сможет создавать каталоги (или, говоря простым языком, папки), в которых будут содержаться элементы.
Сделаем справочник Товары иерархическим. Для этого переходим на закладку «Иерархия» конструктора справочника и установим флаг «Иерархический».
Иерархия у справочников бывает двух видов: Иерархия групп и элементов и просто Иерархия элементов.
Иерархия групп — это каталоги, которые в себе содержат определенные элементы. А что такое Иерархия элементов? Это когда один элемент подчинен другому.
Посмотрим, как выглядит иерархический справочник в «1С:Предприятии»
Как видите, в форме списка появилось две команды. «Создать» и «Создать группу». При выполнении команды «Создать» будет открыта форма на создание нового элемента, а при выполнении команды «Создать группу» — форма на создание группы (папки).
Вы можете создавать нужные группы, в этих группах создавать элементы, или переносить уже созданные элементы в группы.
Подробно, про иерархический справочник читайте в этой статье:
Что такое предопределенные элементы справочников, и как с ними работать, читайте в этой статье:Остальные статьи по теме конфигурирования:
Более подробно и основательно работа со справочникам в дается в моей книге:
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Объект 1С «Справочники»
Т.о. Справочник предназначен для хранения справочной информации об однотипных объектах и представляет собой список, заполняемый пользователем на этапе исполнения прикладного решения.
Справочник хранится в таблице. Запись (строка) таблицы определяет объект базы данных – элемент справочника. Но объект базы данных включает не только запись в основной таблице справочника, но и все записи всех табличных частей справочника, относящиеся к данному объекту. Таким образом, объект базы данных включает в себя:
Объект справочника может быть создан с помощью менеджера справочника. В этом случае создается новый объект, которого еще нет в базе данных. Если его записать, то появится новый объект в базе данных.
Количество справочников задается на этапе конфигурирования и может быть произвольным.
Особенности Справочника 1С:
Реквизиты справочника 1С
Реквизиты справочника (документа) 1С – это поля справочника (документа), которые отображаются на форме, и предназначенные для заполнения пользователем в процессе исполнения прикладного решения.
Все справочники содержат два обязательных (предопределенных) реквизита:
Набор такой информации является одинаковым для всех элементов конкретного справочника.
Каждый реквизит 1С имеет свойства, отображаемые в палитре свойств реквизита.
В этом случае пользователю в прикладном решении будет отображаться кнопка «Т», при нажатии на которую откроется окно «Выбор типа данных».
Табличные части справочника 1С
Помимо реквизитов каждый элемент справочника может содержать некоторый набор информации, которая одинакова по своей структуре, но различна по количеству, для разных элементов справочника. Например, для каждого сотрудника в справочнике «Сотрудники» это может быть информация о детях или информация об образовании. Для хранения подобных данных служат табличные части справочника.
Иерархия элементов справочника 1С
Справочники поддерживают иерархическое расположение элементов (групп элементов). Например, в справочнике Номенклатура могут быть созданы группы «Товары» и «Услуги», в которых располагаются элементы номенклатуры, относящиеся к этим группам.
Виды иерархии элементов справочников 1С:
Подчинение справочников (Список владельцев справочника)
Справочники могут находиться в состоянии подчинения по отношению друг к другу, т.е. элементы одного справочника могут быть подчинены элементам или группам другого справочника. Например, справочник «Кассы» может быть подчинен справочнику «Организации».
Тогда при оформлении кассовых документов для некоторой организации можно будет выбрать кассу не среди всех имеющихся в программе касс, а среди касс, существующих только в этой организации.
Значения свойства ИспользованиеПодчинения (SubordinationUse):
Свойство ИспользованиеПодчинения о пределяет использование ограничение подчинения для групп и элементов подчиненных справочников. Если у справочника несколько владельцев, то ограничение применяется ко всем владельцам.
Справочники допускают также создание предопределенных элементов, которые существуют в справочнике всегда, вне зависимости от действий пользователя. Такие элементы справочника создаются разработчиком при разработке прикладного решения и не могут быть удалены или перемещены пользователем.
Закладка «Прочее» в окне редактирования объекта конфигурации «Справочник»:
Формы справочника 1С
Для того чтобы пользователь мог просматривать и изменять данные, содержащиеся в справочнике, система поддерживает несколько форм представления справочника, которые генерируются автоматически.
Наряду с этим разработчик имеет возможность создать собственные формы, которые система будет использовать вместо форм по умолчанию
Форма списка справочника 1С
Форма списка 1С используется для просмотра данных, содержащихся в справочнике, и позволяет:
Форма списка может представлять данные в иерархическом и не иерархическом виде, а также позволяет выполнять сортировку и отбор отображаемой информации по нескольким критериям.
Форма элемента справочника 1С
Форма элемента справочника 1С используется для просмотра и изменения данных отдельных элементов справочника. Как правило, она представляет данные в удобном для восприятия и редактирования виде.
Форма группы справочника 1С
Система поддерживает отдельный вид формы для групп справочника. Это связано с тем, что, как правило, состав информации, относящейся к группе справочника, намного меньше, чем состав данных, имеющих отношение к отдельным элементам справочника.
Форма выбора, форма выбора группы 1С
При различных действиях пользователя в прикладном решении возникает необходимость выбора конкретных элементов справочников. Это может потребоваться, например, при создании приходной накладной, в которой должны быть перечислены определенные товары. В этом случае система использует форму выбора справочника, которая, обычно, содержит минимальный набор информации, необходимой для выбора того, или иного элемента.
Кроме всех перечисленных форм, система поддерживает еще форму выбора группы справочника, предназначенную для выбора только среди групп, содержащихся в справочнике.
Макеты 1С
Справочнику могут быть сопоставлены несколько макетов, предназначенных
Использование программного кода для работы со справочниками 1С
Указанные ниже части программного кода должны размещаться в процедурах, функциях или модулях, выполняемых на стороне сервера (читай Программные модули платформы 1С: предназначение и свойства).
Для работы со справочником из какого-либо модуля требуется сначала создать ссылку на этот справочник.