Справочники хранят в себе одинаковые по структуре данные. Например, справочник товаров или справочник должностей. Справочники это ссылочный тип данных, на любой элемент справочника можно сослаться, в документах, константах или вообще в каких либо реквизитах.
Структура справочника
Справочник обычно описываются следующим набором данных:
Пользовательские реквизиты — при проектировании пользователь определяет какие данные, какого типа будут храниться в справочнике. Например у справочника Банковские счета будут определены реквизиты: номер счета, банк и тд, для справочника контрагенты ИНН, КПП и тд.
Предопределенные реквизиты — любой справочник обладает набором предопределенных реквизитов.
Табличные части — справочник может любое количество табличных частей.
Предопределенные реквизиты
У каждого справочника есть номер и наименование. В принципе их можно отключить, указав длину 0. Так же код может быть числовым или текстовым, если код текстовый для удобства сортировки система дополняет код лидирующими нулями на всю длину кода, например если у справочника указана длина кода 9 и справочнику был присвоен код 3 то система дополнит нулями до такого вида: «000000003». Также в случае если имеется распределенная база в код обычно добавляется префикс той базы в которой был создан элемент, например: «ЦН0000003». Нужно учитывать эту особенность если вы соберетесь указывать числовой код, этот объект не сможет корректно работать в распределенной базе. У справочника есть и другие предопределенные реквизиты:
1С СКД 093 Многоуровневая собственная иерархия
ЭтоГруппа – Имеет смысл только для иерархических справочников. Указывает на то что элемент является группой.
Родитель — Имеет смысл только для иерархических справочников. Указывает на группу или элемент который является родителем для этого справочника.
Владелец – Имеет смысл только для подчиненных справочников. Указывает на владельца данного справочника.
ПометкаУдаления – атрибут с типом булево, указывает помечен ли элемент на удаление или нет.
Ссылка – это самый главный атрибут, справочник потому и называется ссылочным типом, потому, что у него есть уникальная ссылка, которая хранится в этом атрибуте.
Предопределенный – атрибут с типом булево указывает на то, что элемент создан в конфигураторе.
Иерархичность.
Иерархия это способность выводить справочник в виде дерева. Эта возможность бывает очень удобной, в случаях когда в справочнике содержится много информации. В таких случаях бывает полезно разложить номенклатуру «по полочкам».
При включении иерархичности у справочника, добавляются два стандартных реквизита ЭтоГруппа и Родитель . Манипулируя значением реквизита Родитель, можно переназначать родителей элемента. Строится иерархия на группах, в эти группы могут входить другие элементы или другие группы.
Аналогию можно провести с проводником windows или с большинством файловых систем если вам будет удобно: есть папки в которых могут быть как файлы так и папки в которых в свою очередь тоже могут быть и файлы и папки итд. Иерархия может работать и без групп. То есть родителями могут выступать другие элементы справочника. Такой вид иерархии называется иерархия элементов.
1С СКД 097 Вывод иерархии на уровне детальных записей
Если мы настроили иерархию, у нас появляется возможность настраивать, для какого типа могут использоваться реквизиты, для групп, элементов, или и для того и для другого. Иерархия настраивается на закладке Иерархия свойств справочника.
Подчиненность
Подчиненность это возможность сделать несколько записей одного справочника уникальными для одной записи другого справочника (если вы знакомы с основами реляционных баз даных, это связь, один ко многим ) . Например: у одного контрагента, может быть много договоров, но это будут только его договора, у второго контрагента будет свой набор договоров. В этом случае справочник договоры подчинен справочнику контрагенты.
Подчинение справочника реализовано предопределенным реквизитом Владелец , следовательно у одной конкретно взятой записи справочника, может быть только один владелец. В то же время у одного справочника может быть несколько владельцев. Владельцами могут быть не только справочники, а также планы обмена, планы видов характеристик, планы счетов, планы видов расчета. Также можно указать вид объекта для подчинения, доступны элементы, группы или и то и другое. Если для справочника определены подчиненные справочники и у элемента справочника не назначена основная форма, то при открытии элемента этого справочника в режиме предприятия, в управляемых формах система автоматически добавит панель для открытия подчиненных справочников с фильтром на поле владелец по текущему элементу. Такое поведение можно настроить и на уже существующих формах. (скрин)
Ввод по Строке
При выборе ссылочных данных в 1С есть возможность выбрать элемент справочника или документ, набирая ключевые реквизиты объекта который мы хотим найти, выглядит это следующим образом: пользователь, набирает «масло моторное» в поле ввода с типом «Справочник.Номенклатура» и нажимает ввод. 1С находит все записи которые начинаются с названия со слов «масло моторное» и показывает их в виде выпадающего списка под полем где пользователь вводил текст. Такой же ввод возможен и для документов. Это поведение системы можно настроить на закладке «Формы». Там есть поле Ввод по строке , по умолчанию для справочников указана возможность поиска по коду и наименованию, но туда можно добавить и свои реквизиты, для того, что бы добавить этот реквизит, он должен быть индексирован и реквизит должен быть примитивного типа.
Предопределенные элементы справочников.
Предопределенные элементы справочников определяются в конфигураторе на закладке Прочие . При создании элемента указывается имя и наименование предопределенного элемента. Имя и будет являться идентификатором для обращения к этому предопределенному элементу, поэтому к имени предъявляются такие же требования как и к другим идентификаторам(не может начинаться с числа, нельзя использовать пробелы и тд). Наименование может быть любым, его пользователь и увидит в справочнике и сможет его при желании изменить. Пользователь не может изменить имя который был указано при создании этого элемента, зато он может удалить предопределенный элемент.(надо бы найти номер релиза когда это стало возможным). Обращение к предопределенным элементам происходит так:
НашаФирма = Справочники.Контрагенты.НашаДочерняяФирма
Таким образом, очень удобно ссылаться на предопределенные элементы из встроенного языка или опираться на них при построении каких то условий. Предопределенные элементы справочников можно использовать в схемах СКД и запросах.
Важно. Контроль за удалением предопределенных элементов лежит на плечах разработчиков, а не платформы.
Для предопределенных элементов справочников, стандартный реквизит Предопределенный имеет значение Истина. Это свойство которое доступно только на чтение, но это не означает, что нельзя «обычный» элемент справочника сделать предопределенным и наоборот. В последних релизах 8.3FIXME(Надо узнать в каких именно), появилась возможность переопределять предопределенные элементы изменяя свойство ИмяПредопределенныхДанных . Например, вот так можно сделать элемент не предопределенным:
ПредОпрЭлемент = Справочники.МойСправочник.НайтиПоКоду(«КодЭлемента»).ПолучитьОбъект(); ПредОпрЭлемент.ИмяПредопределенныхДанных = “”; ПредОпрЭлемент.Записать();
И наоборот указав в свойстве ИмяПредопределенныхДанных имя предопределенного элемента справочника, можно сделать его предопределенным. У иерархических справочников возможно указывать предопределенные группы. Предопределенные элементы нельзя создавать у подчиненных справочников. В пользовательском режиме предопределенный элемент отличается, от обычного, следующим образом(показать скрин).
Подсказка. Предопределенные элементы часто используют для того, что бы избавиться в коде от конструкций вида: НайтиПоКоду и НайтиПоНаименованию . Использование этих методов считается дурным тоном, так как наименование и код справочника достаточно часто изменяются. Обычно поступают следующим образом: Создают справочник, например Настройки с единственным реквизитом Значение . После этого в конфигураторе добавляют предопределенный элемент с нужным названием а в режиме 1с Предприятие, задают его значение. Теперь вместо того что бы писать в коде:
Нашафирма = Справочники.Организации.НайтиПоНаименованию(«ООО Рога и копыта»)
или что еще хуже
Нашафирма = Справочники.Организации.НайтиКоду(«000112»)
Можно просто указать:
Нашафирма = Справочники.Настройки.НашаФирма.Значение
Классы для работы со справочниками.
Все классы справочника можно увидеть в ветке Прикладные объекты –> Справочники .
Cправочники это элементы которые хранятся в базе данных, считается очевидным, что обращение к любому из классов возможно только на сервере.
Справочник менеджер
Справочник менеджер – можно получить с помощью переменных глобального контекста:
Номенклатура = Справочники.Номенклатура;
Этот класс служит для:
Поиска по наименованию, коду или другому реквизиту.
Ножницы = Справочники.Номенклатура.НайтиПоНаименованию(«Ножницы канцелярские»);
Программного создания групп или элементов:
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент(); НовыйЭлемент.Реквизит1 = «КакоеТоЗначение»; НовыйЭлемент.Записать();
Делать выборки:
Выборка = Справочники.Номенклатура.Выбрать()
Получать пустые ссылки:
Пусто = Справочники.Номенклатура.ПустаяСсылка();
И много еще разных возможностей которые можно наблюдать в синтаксис помощнике в ветке: Прикладные объекты – >Справочники – СправочникМенеджер.
Справочник ссылка
Справочник ссылка – самый часто используемый тип. Используется для чтения данных справочника. Его можно получить с помощью НайтиПоНаименованию , НайтиПоКоду и др методов класса СправочникМенеджер . Так же его можно получить с помощь класса Выборка и этот тип данных хранится в реквизите Cсылка объекта класса Справочник объект . В этом классе нам доступны все реквизиты справочника, табличные части и все стандартные реквизиты. Абсолютно все свойства этого класса нам доступны только на чтение. Для того что бы изменять реквизиты справочника нам нужен класс Справочник Объект . Получить его можно с помощью метода Получить Объект() .
Справочник Объект
Класс Справочник Объект отличается от класса Справочник Ссылка не многим, основная его функция обеспечить возможность изменения элемента справочника. Запись происходит с помощью метода Записать()
Справочник Выборка
Справочник Выборка получается с помощью методов Выбрать и Выбрать Иерахически он позволяет обойти элементы справочника в цикле, с помощью метода Следующий() .
Популярные приемы работы со справочниками
Поиск по наименованию.
Несмотря на то, что неоднократно рассматривается поиск элемента справочника по наименованию, «зашивать» в код значения из базы данных считается дурным тоном.
Для поиска по наименованию используется функция НайтиПоНаименованию() . Для использования этого метода необходимо указать наименование по которому будет происходить поиск. Если поиск должен проходить по точному соответствию с указанной строкой то вторым параметром, нужно указать Истина, иначе поиск будет проходить по первым буквам указанного шаблона поиска, то есть если в качестве строки для поиска указать «Слон» то под шаблон попадут и «Слон» и «Слон игрушечный» и «Слонопотам». Поиск можно ограничить определенной группой, если справочник иерархический или владельцем, если справочник подчиненный. Если значение не найдено, метод вернет пустую ссылку того типа справочника для которого производился поиск.
Поиск по коду
Для поиска по коду используется функция НайтиПоКоду() . Для использования этого метода необходимо в параметре «Код» указать код, по которому будет производиться поиск. Если в качестве кода указывается полный путь с учетом иерархии (уровни справочника разделяются символом «/»), то второй параметр поиск по полному коду, необходимо установить в Истина. Например: Номенклатура «Слонопотам» с кодом «001142» находится в папке «Мягкие Игрушки» с кодом «000826» которая находится в папке «Игрушки» с кодом 000375. Тогда можно найти ее с помощью вот такой строки
Слонопотам = Справочники.Номенклатура.НайтиПоКоду(«000375/000826/001142», Истина);
Или можно искать сразу:
Слонопотам = Справочники.Номенклатура.НайтиПоКоду(«001142»);
Поиск можно ограничить определенной группой, если справочник иерархический или владельцем, если справочник подчиненный. Если значение не найдено, метод вернет пустую ссылку того типа справочника для которого производился поиск. Поиск может осуществляться и по реквизиту с помощью одноименного метода, главное условие реквизит должен быть индексирован.
Выборка
Выборка позволяет обходить в цикле элементы справочника. Для иерарахических справочников доступна выборка по родителю, для подчиненных по владельцу. Для любого вида справочника возможно указать отбор, которому будут соответствовать элементы в выборке и поле по которому выборка будет упорядочена. Работает выборка следующим образом:
Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл Наименование = Выборка.Наименование; КонецЦикла;
При использовании метода Следующий() в классе выборка, текущим устанавливается следующий элемент из текущей выборки. Если в выборка спозиционировалась на определенном элементе, она возвращает Истина, иначе Ложь. Для класса Справочник Выборка доступны все поля и табличные части, которые определены для текущего справочника, а так же есть свойство Ссылка которое позволяет получить ссылку на текущий элемент справочника из выборки. Для того что бы при выборке учитывалась иерархия справочника, необходимо использовать метод ВыбратьИерархически() .
Программное создание элементов справочника
Элементы и группы справочников, можно создавать и не посредственно из программного кода. Для этого используется следующий код:
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемнт(); НовыйЭлемент.Наименование = «ТестоваяНоменклатура»; НовыйЭлемент.ПолноеНаименование = «ТестоваяНоменклатура»; //Заполнение всех остальных элементов НовыйЭлемент.Записать();
Группа справочника создается аналогично с помощью метода СоздатьГруппу() В том случае, если у справочника установлено свойство Автонумерация код указывать не нужно, он устанавливается автоматически.
Проверка переменной с типом СправочникСсылка на заполненность
Иногда возникает необходимость проверить заполнено ли значение с типом «Справочник.Ссылка». Такая необходимость может возникнуть, когда реквизит какого либо объекта имеет тип «Справочник.Ссылка» или когда вы например ищете элемент справочника по коду или наименованию, или в ряде других случаев, когда метод возвращает пустую ссылку на справочник. Есть несколько способов это сделать:
Использовать метод глобального контекста ЗначениеЗаполнено() который можно применить к любому типу а не только к справочнику. Доступно и на клиенте и на сервере.
Сравнить c пустой ссылкой менеджера этого справочника. Например:
Если ПроверяемоеЗначение = Справочники.Номенклатура.ПустаяСсылка() Тогда
Только для сервера
Использовать метод ‘Пустая()’ доступный на клиенте для объектов класса «Справочник ссылка».
Проверка элемента справочника на вхождение в какую либо группу или подчинение элементу
Когда мы говорим о проверке подчиненности, необходимо понимать, что все методы справедливы не только для групп, но и для элементов, если у справочника установлен вид иерархии «Иерархия элементов». Здесь возможно несколько вариантов: если у нас есть группа и нам необходимо знать если ли именно в ней и нигде иначе определенный элемент справочника, то можно сравнить предопределенный реквизит Родитель нужного нам элемента справочника с ссылкой на группу, например:
Если КакойтоЭлемент.Родитель = НужнаяГруппа Тогда
Если справочник многоуровневый и нужно знать есть ли элемент в этой группе или где то в подчинненых группах то можно воспользоваться методом «ПринадлежитЭлементу()» этот метод вернет Истина если элемент содержится в текущей или любой подчиненной группе. Например в этом случае
НужнаяГруппа = НайтиПоНаименованию(«ГруппаРаз»); Если НашЭлемент.ПринадлежитЭлементу(НужнаяГруппа) Тогда
условие будет истинным.
СправочникСсылка <> СправочникОбъект
При работе со справочниками очень важно понимать, что во всех реквизитах, выборках и тд, мы чаще всего работаем с типом СправочникСсылка и этот тип позволяет получить любую информацию которая находится в его реквизитах, но не поддерживает запись. Для изменения реквизитов справочника и записи следует использовать тип СправочникОбъект. Преобразовать ссылку в объект можно с помощью метода ПолучитьОбъект() Например:
КонтрагентПетров = Справочники.Контрагенты.НайтиПоНаименованию(«Петров Иван Сергеевич»); КонтрагентОбъект = КонтрагентПетров.ПолучитьОбъект(); //Здесь идут какие то изменения КонтрагентОбъект.Записать(); //и непосредственно запись
Проверка на то что ссылка является ссылкой на справочник
Проверить то что справочник является ссылкой можно очень просто, с помощью одной строки:
Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(СсылкаНаЭлементСправочника));
Где СсылкаНаЭлементСправочника проверяемая ссылка, эта строка вернет Истина если проверяемая ссылка является ссылкой на какой либо элемент справочника.
Источник: wiki-1c.ru
Свойства справочников программы 1с: Бухгалтерия предприятия
Для работы со справочниками предназначена ветвь “Справочники” дерева конфигурации.
Рис. 5 – ветвь “cсправочники” дерева конфигурации.
При создании нового справочника открывается окно редактирования объекта.
«Иерархический справочник» — если свойство установлено, то справочник имеет иерархическую структуру и становится доступным свойство «Вид иерархии» и «Ограничение количества уровней иерархии».
«Вид иерархии» — определяется, какой вид иерархии используется в данном справочнике. При выборе вида «Иерархия групп и элементов» для справочника определяются два вида элементов: группы и элементы. Группы предназначены только для объединения других групп и элементов справочника. Обычно для описания группы достаточно кода, наименования и родителя (ссылка на верхний уровень).
Элемент справочника помимо этих реквизиторов может содержать другие реквизиты, указанные на закладке Данные. Для справочников с этим видом иерархии можно создать формы группы и формы элемента. При выборе вида «Иерархия элементов» все элементы справочника равнозначны. Примером справочников такого вида могут служить справочники подразделений и статьи затрат.
Рис. 6 – Окно редактирования объекта, свойство «иерархический справочник».
«Размещать группы сверху» — свойство становится доступным, если выбрано значение «Иерархия групп и элементов». Если свойство «Размещать группы сверху» установлено, то при отображении справочника в виде иерархического списка группы окажутся в верхних строчках списка, а элементы справочника будут располагаться ниже. Если это свойство не установлено, расположение групп и элементов будет подчиняться установленным правилам сортировки (по коду, наименованию и пр.). Например, при создании новой группы с кодом большим, чем у всех имеющихся групп и элементов (при сортировке по коду), в первом варианте эта подгруппа окажется нижней среди групп, но выше остальных элементов справочника; во втором варианте она займет самую нижнюю строчку.
Следует отметить, что установка или снятие свойства «Размещать группы сверху» не влияет на показ справочника в виде неиерархического списка.
«Количество уровней иерархии» — свойство становится доступным, если установлено свойство “Ограничение количества уровней иерархии”. Справочники в системе 1С: Предприятие могут иметь более одного уровня вложенности. Если свойство “Ограничение количества уровней иерархии” не установлено, то максимальное количество уровней вложенности справочника неограниченно.
«Владельцы» — это свойство требует подробного объяснения.
Любой справочник может использоваться как сам по себе, так и быть подчиненным какому-либо другому справочнику или справочникам. Например, справочник договоров может использоваться отдельно, а может быть связан со справочником организаций.
Чтобы подчинить справочник другому, уже существующему в системе, в поле «Список владельцев справочника» следует нажать кнопку редактирования и в открывшемся окне выбора объекта отметить те справочники, которые являются владельцами данного справочника. Каждый такой справочник в системе 1С: Предприятие8.2 называется владельцем, а сам справочник — подчиненным.
И отличие от многоуровневого справочника, в котором все элементы имеют одинаковую структуру, использование механизма подчиненных справочников позволяет связать элементы разной структуры. В этом случае каждый элемент подчиненного справочника будет логически связан с одним из элементов справочника-владельца.
Для справочников, которые имеют нескольких владельцев, у разных элементов могут быть владельцы разного типа, но у одного элемента может быть только один владелец.
Рис. 7 – пример подчинённого справочника «подразделения организаций». Владельцем является справочник «Организации».
Использование подчинения — позволяет управлять ограничением, накладываемым на владельцев. Могут использоваться только элементы, только группы или и группы, и элементы. Если у справочника несколько владельцев, то ограничение применяется ко всем владельцам.
«Длина кода» — свойство устанавливает максимальную длину кода элемента справочника.
Конфигуратор позволяет установить длину кода равной 0. Это может понадобиться в тех случаях, когда код элемента справочника не используется.
При назначении этого свойства желательно реально определить возможную длину кода. Однако следует иметь в виду, что в процессе эксплуатации конфигурации, если потребуется, длину кода можно увеличить.
«Длина наименования» — в свойстве устанавливается максимально возможная длина наименования элемента справочника.
Конфигуратор позволяет установить длину наименования равной 0.
Рис. 8 – установка длины кода и длины наименования в справочнике.
«Серии кодов» — свойство позволяет установить диапазон проверки кода на уникальность и автоматическое присвоение кодов.
Если выбрана установка во всем справочнике, то при автоматическом присвоении кода или при вводе кода пользователем вручную его уникальность будет проверяться среди всех элементов справочника.
Установка в пределах подчинения справедлива только для иерархических и подчиненных справочников. В этом случае уникальность кода будет проверяться системой только в пределах той группы и того элемента справочника-владельца, в которую вводится новый элемент справочника или редактируется уже существующий элемент.
При установке серии кодов в пределах подчинения нормальной является ситуация, когда находящиеся в разных группах элементы справочника имеют одинаковые коды. Это следует учитывать, если требуется переносить элементы многоуровневого справочника из одной группы в другую. При совпадении кода переносимого элемента с кодом уже существующего элемента в группе будет выдано предупреждение, и элемент не будет перенесен.
При установке серии кодов в пределах подчинения владельцу в иерархических подчиненных справочниках обеспечивается автоматическая нумерация и контроль уникальности кодов среди элементов с одинаковым владельцем, но различными родителями.
Рис. 9 – выбор серии кодов.
«Тип кода» — свойство позволяет выбрать тип значения для кода элемента справочника: Число или Строка. Выбор строкового типа кода бывает полезным, когда используется сложная система кодирования, и код может включать помимо цифр также буквы и символы-разделители. Наиболее характерный пример — использование в качестве кодов артикулов для швейных изделий.
Следует обратить внимание, что выбор строкового типа кода не исключает возможности автоматического присвоения таких кодов.
Для самого первого элемента система формирует код вида 001 (количество нулей зависит от установленной длины кода), то есть код представляет собой строку символов, но все символы в этой строке являются цифрами. При вводе других элементов в справочник система будет продолжать присваивать коды аналогичным образом — 002,003 и т. д.
Если требования к ведению справочника предполагают непременное использование смешанных буквенно-цифровых кодов, то для целей автоматической нумерации можно использовать коды вида АА001. Здесь первая часть кода — символы АА — является текстовым префиксом, а вторая часть — символы 001 — будет интерпретироваться системой как число и использоваться при автоматическом присвоении очередного кода.
Текстовый префикс можно задать вручную (при вводе в справочник нового элемента ввести такой «составной» код) или использовать возможности установки префикса из встроенного языка системы 1С: Предприятие.
Источник: studfile.net
Объект 1С «Справочники»
Объект 1С «Справочники» — это прикладные объекты конфигурации 1С, предназначенные для хранения в информационной базе данных, имеющих одинаковую структуру и списочный характер (например, список сотрудников, перечень товаров, список контрагентов).
Т.о. Справочник предназначен для хранения справочной информации об однотипных объектах и представляет собой список, заполняемый пользователем на этапе исполнения прикладного решения.
Справочник хранится в таблице. Запись (строка) таблицы определяет объект базы данных – элемент справочника. Но объект базы данных включает не только запись в основной таблице справочника, но и все записи всех табличных частей справочника, относящиеся к данному объекту. Таким образом, объект базы данных включает в себя:
- запись основной таблицы;
- записи табличных частей.
Объект справочника может быть создан с помощью менеджера справочника. В этом случае создается новый объект, которого еще нет в базе данных. Если его записать, то появится новый объект в базе данных.
- позволяет избежать многократного ввода одной и той же информации (например, наименования контрагента);
- обеспечивает сквозную идентификацию (например, идентификацию контрагента при отгрузке и оплате).
Количество справочников задается на этапе конфигурирования и может быть произвольным.
Особенности Справочника 1С:
- каждый элемент справочника может иметь сложную структуру, задаваемую разработчиком на этапе конфигурирования;
- каждый элемент справочника характеризуется кодом и наименованием;
- каждый элемент справочника может содержать некоторую дополнительную информацию, описывающую этот элемент (например, артикул и др.);
- поддерживается режим автоматической нумерации элементов (автоматической генерации кода для нового элемента справочника);
- позволяет осуществлять контроль уникальности кодов справочника, не разрешая создавать элементы с одинаковыми кодами.
Реквизиты справочника 1С
Реквизиты справочника (документа) 1С – это поля справочника (документа), которые отображаются на форме, и предназначенные для заполнения пользователем в процессе исполнения прикладного решения.
Все справочники содержат два обязательных (предопределенных) реквизита:
Например, для сотрудников кодом может выступать табельный номер, а наименованием — фамилия, имя и отчество (ФИО).
Помимо кода и наименования, каждый элемент справочника, как правило, содержит некоторую дополнительную информацию, которая подробно описывает этот элемент и хранящуюся в реквизита справочника. Например, для товара это может быть информация об артикуле, упаковке и т.п., а для сотрудников — подразделение и способ приема на работу.
Набор такой информации является одинаковым для всех элементов конкретного справочника.
Рисунок «Реквизиты справочника 1С»
Каждый реквизит 1С имеет свойства, отображаемые в палитре свойств реквизита.
Основные свойства реквизитов справочника 1С (в зависимости от Типа могут отличаться)
- Имя – наименование реквизита в языке 1С (в имени реквизитов не должно быть пробелов и знаков препинания).
- Синоним – отображение наименования реквизита для пользователя в режиме 1С:Предприятие.
- Тип – тип данных, хранящихся в реквизите:
- Число — используется для численных значений;
- Строка — строковые значения, может быть ограничена по длине;
- Дата — дата и/или время;
- Булево — использование флагов (значения Истина/Ложь или Да/Нет);
- ХранилищеЗначения (хранилище значений 1С) – это объект, который позволяет хранить в базе данных прочие значения, например картинки и файлы, структуры и таблицы значений. (подробнее. );
- УникальныйИдентификатор — статистически уникальный 128-битный идентификатор, позволяющий создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов (подробнее здесь и здесь);
- СправочникСсылка, ДокументСсылка и т.д. — хранит ссылку, идентифицирующую объект в базе данных; используется везде, где нужно хранить ссылку на элемент (подробнее).
Флаг «Составной тип данных» позволяет выбрать несколько типов данных одновременно:
В этом случае пользователю в прикладном решении будет отображаться кнопка «Т», при нажатии на которую откроется окно «Выбор типа данных».
- Использование (Для элемента; Для группы; Для группы и элемента) — установка » Для группы и элемента» позволит задавать данный реквизит и для элементов иерархического справочника, и для его групп.
- Индексировать – позволяет указать системе, что нужно создать дополнительный индекс, содержащий соответствующий реквизит:
- «Индексировать» — индекс строится непосредственно по реквизиту. Включать, если требуется только поиск с помощью запроса объектов по данному реквизиту (без упорядочивания). Создаваемый индекс потребляет меньше ресурсов системы.
- «Индексировать с доп. упорядочиванием» — для использования в динамических списках; индекс строится по реквизиту, а также по некоторому полю, которое обычно используется для упорядочивания объектов этого типа. Включать, если требуется просмотр списка с отбором по реквизиту.
- Полнотекстовый поиск — участие в механизме полнотекстового поиска, позволяет быстро находить нужную информацию в данных информационной базы и в справочной системе.
- История данных — хранение истории изменения прикладных данных пользователями.
- Заполнять из данных заполнения — свойство определяет возможность заполнения реквизита из данных заполнения. Используется для заполнения реквизитов из значений текущего отбора списков. Читай также Как программно при открытии формы передать в нее нужные данныезаполнения, Как открыть форму с заполнением.
- Значение заполнения — см. выше. Читай также Обработчик проверки заполнения.
- Проверка заполнения — функция ПроверитьЗаполнение () проверяет заполнение реквизитов, у которых свойство «Проверка заполнения» установлено в значение «Показывать ошибку». Если реквизит не заполнен, то выводится сообщение об ошибке (возвращает ЛОЖЬ). Читай также здесь о программной проверке заполнения..
Предопределенные элементы справочника
Справочники допускают также создание предопределенных элементов, которые существуют в справочнике всегда, вне зависимости от действий пользователя. Такие элементы справочника создаются разработчиком при разработке прикладного решения и не могут быть удалены или перемещены пользователем .
Обычные элементы непостоянны для конфигурации и в процессе работы пользователя они могут появиться (или исчезнуть). Предопределенные элементы, напротив, постоянны (теоретически пользователь может их удалить, но , как правило, пользователю не даются права не только на интерактивное удаление предопределенных элементов, но и на интерактивное удаление объектов вообще). Поэтому конфигурация может работать с ними вполне уверенно и опираться на них средствами встроенного языка при отработке различных алгоритмов.
Рисунок «Предопределенные элементы справочника 1С»
Закладка «Прочее» в окне редактирования объекта конфигурации «Справочник»:
Табличные части справочника 1С
Помимо реквизитов каждый элемент справочника может содержать некоторый набор информации, которая одинакова по своей структуре, но различна по количеству, для разных элементов справочника. Например, для каждого сотрудника в справочнике «Сотрудники» это может быть информация о детях или информация об образовании. Для хранения подобных данных служат табличные части справочника.
Иерархия элементов справочника 1С
Справочники поддерживают иерархическое расположение элементов (групп элементов). Например, в справочнике Номенклатура могут быть созданы группы «Товары» и «Услуги», в которых располагаются элементы номенклатуры, относящиеся к этим группам.
Виды иерархии элементов справочников 1С:
- Иерархия групп и элементов — группы справочника могут включать в себя как элементы, так и другие группы, создавая тем самым многоуровневую иерархическую структуру.
Рисунок «Закладка «Иерархия» в окне редактирования объекта конфигурации «Справочник»
Подчинение справочников (Список владельцев справочника)
Справочники могут находиться в состоянии подчинения по отношению друг к другу, т.е. элементы одного справочника могут быть подчинены элементам или группам другого справочника:
- если справочник иерархический (содержит подчиненные элементы), то у него будет доступен стандартный реквизит Родитель ;
- если справочник подчинен другому объекту конфигурации, у него будет доступен реквизит Владелец .
Например, справочник «Кассы» может быть подчинен справочнику «Организации».
Рисунок «Подчинение справочников 1С»
Тогда при оформлении кассовых документов для некоторой организации можно будет выбрать кассу не среди всех имеющихся в программе касс, а среди касс, существующих только в этой организации.
Значения свойства ИспользованиеПодчинения (SubordinationUse):
- Группам (ToFolders)
- ГруппамИЭлементам (ToFoldersAndItems)
- Элементам (ToItems)
Свойство ИспользованиеПодчинения о пределяет использование ограничение подчинения для групп и элементов подчиненных справочников. Если у справочника несколько владельцев, то ограничение применяется ко всем владельцам.
Формы справочника 1С
Для того чтобы пользователь мог просматривать и изменять данные, содержащиеся в справочнике, система поддерживает несколько форм представления справочника, которые генерируются автоматически.
Наряду с этим разработчик имеет возможность создать собственные формы, которые система будет использовать вместо форм по умолчанию
Форма списка справочника 1С
Форма списка 1С используется для просмотра данных, содержащихся в справочнике, и позволяет:
- выполнять навигацию по справочнику;
- добавлять, помечать на удаление и удалять элементы и группы справочника;
- перемещать элементы и группы.
Форма списка может представлять данные в иерархическом и не иерархическом виде, а также позволяет выполнять сортировку и отбор отображаемой информации по нескольким критериям.
Конструктор формы списка справочника на закладке «Далее» всегда позволяет разместить на диалоге список элементов и, кроме того, для иерархических справочников с иерархией групп и элементов, — дерево групп.
Рисунок «Форма списка 1С»
Форма элемента справочника 1С
Форма элемента справочника 1С используется для просмотра и изменения данных отдельных элементов справочника. Как правило, она представляет данные в удобном для восприятия и редактирования виде.
В конструкторе формы элемента справочника на втором шаге (кнопка «Далее») указать размещение табличного поля, содержащего данные подчиненного справочника, нельзя , такие действия нужно выполнять уже при работе с формой.
Рисунок «Форма элемента справочника 1С»
Форма группы справочника 1С
Система поддерживает отдельный вид формы для групп справочника. Это связано с тем, что, как правило, состав информации, относящейся к группе справочника, намного меньше, чем состав данных, имеющих отношение к отдельным элементам справочника.
Форма выбора, форма выбора группы 1С
При различных действиях пользователя в прикладном решении возникает необходимость выбора конкретных элементов справочников. Это может потребоваться, например, при создании приходной накладной, в которой должны быть перечислены определенные товары. В этом случае система использует форму выбора справочника, которая, обычно, содержит минимальный набор информации, необходимой для выбора того, или иного элемента.
Кроме всех перечисленных форм, система поддерживает еще форму выбора группы справочника, предназначенную для выбора только среди групп, содержащихся в справочнике.
Рисунок «Форма выбора группы 1С»
Макеты 1С
Справочнику могут быть сопоставлены несколько макетов, предназначенных
- для формирования печатных форм справочника или
- для отображения дополнительной информации, имеющей отношение к справочнику.
Рисунок «Макеты 1С»
Использование программного кода для работы со справочниками 1С
Указанные ниже части программного кода должны размещаться в процедурах, функциях или модулях, выполняемых на стороне сервера (читай Программные модули платформы 1С: предназначение и свойства).
Ссылка на справочник
Для работы со справочником из какого-либо модуля требуется сначала создать ссылку на этот справочник.
Источник: flagman.top