Что такое справочник в 1с
В модели разработки прикладных решений 1С:Предприятия для ряда сущностей предметной области используется объектный подход манипулирования данными.
Эти сущности описываются в конфигурации объектами метаданных:
-
; ;
- ПланВидовХарактеристик;
- ПланСчетов;
- ПланВидовРасчета.
С точки зрения модели данных 1С:Предприятия, в базе данных для этих сущностей хранятся объекты.
Рассмотрим состав типов, используемых для манипулирования этими сущностями в конфигурации на примере справочника ( для других перечисленных объектов метаданных имеется аналогичный состав типов ).
Справочник хранится в таблице. Запись (строка) таблицы определяет объект базы данных – элемент справочника. Но объект базы данных включает не только запись в основной таблице справочника, но и все записи всех табличных частей справочника, относящиеся к данному объекту. Таким образом, объект базы данных включает в себя:
- запись основной таблицы;
- записи табличных частей.
Объектные таблицы - это справочники, документы, планы видов характеристик и т.д. (все, что имеет ссылку) - характеризуются тем, что каждая запись имеет внутренний уникальный идентификатор (GUID), которая генерируется автоматически при записи объекта в базу. Поэтому, например, если создать элемент справочника, удалить его, а потом создать элемент с точно такими же значениями всех абсолютно реквизитов, ссылка все равно будет другая, так как с точки зрения системы это уже другой объект (несмотря на то, что для пользователя визуально все тоже самое, те же значения всех реквизитов).
Необъектные таблицы - предназначены для хранения сущностей, не имеющих объектной природы (например, табличные части справочников, регистры сведений). Уникальность их записей определяется набором измерений и никакого дополнительного уникального идентификатора не существует. Поэтому, если вы удалите запись, а потом добавите точно такую же, с точки зрения логики программы это будет одно и тоже.
Тип СправочникиМенеджер
Тип СправочникиМенеджер предназначен в основном для доступа к менеджерам конкретных справочников. Кроме того, он имеет метод ТипВсеСсылки (), который позволяет получить значение ОписаниеТипов , содержащее типы ссылок всех справочников конфигурации. Например, с помощью данного значения (используя метод СодержитТип ()) можно проверить, является ли тип некоторого значениям типом ссылки какого-либо справочника.
Тип СправочникМенеджер
Тип СправочникМенеджер предоставляет доступ к общим действиям, относящимся к конкретному справочнику . С помощью его методов выполняются действия, относящиеся к справочнику, а не к его конкретным объектам, например:
- создать новый объект справочника;
- найти объект справочника по коду, и т.д.
Данный менеджер является своего рода "точкой входа" в конкретный справочник в объектной модели встроенного языка.
Объекты типа СправочникиМенеджер и СправочникМенеджер имеются в системе в единственном экземпляре.
Тип СправочникСсылка
Справочник хранится в таблице. В таблице справочника присутствует поле Ссылка, которое хранит значения, однозначно идентифицирующие объекты (элементы справочника) в базе данных 1С:Предприятия. Если в какой-либо другой таблице (табличной части) нужно сослаться на некоторый объект базы данных, то в поле этой таблицы будет храниться именно значение ссылки.
Значение типа СправочникСсылка – хранит ссылку, идентифицирующую объект в базе данных 1С.
Фактически значение СправочникСсылка хранит только внутренний идентификатор, хранящийся в поле Ссылка таблицы справочника. Это значение:
- хранится в полях других таблиц базы данных,
- выбирается в поле ввода,
- указывается в параметрах запроса при поиске по ссылке и т.д.
Важно, что значение типа СправочникСсылка можно сравнивать с другим значением типа СправочникСсылка и они буду всегда равны, если это ссылка на один и тот же объект в базе данных (независимо от способа получения и от того откуда получено значение).
Тип СправочникОбъект
Значение типа СправочникОбъект используется (в основном):
- для создания нового объекта,
- изменения существующего объекта,
- удаления объекта,
- для отображения и редактирования всех данных элемента справочника в форме элемента,
- при редактировании строки списка справочника ( при отображении строк списка СправочникОбъект не используется ).
Для одного и того же элемента справочника можно получить несколько объектов типа СправочникОбъект:
- При сравнении этих значений они будут равны, только если это один и тот же объект встроенного языка.
- Два объекта встроенного языка, полученные для одного элемента справочника, не будут равны, даже если в них считан один и тот же объект базы данных и совпадают все данные объекта.
СправочникОбъект оптимизирует запись изменений в базу данных, например:
- если не менялись реквизиты самого объекта, то будет записываться только минимальная информация об изменении;
- если не менялись строки табличной части, то табличная часть записываться не будет;
- если менялись только отдельные строки или добавлялись строки, то будут записываться только измененные и добавленные строки;
- если строки удалялись или изменялся порядок строк, то будут записываться все строки табличной части.
Т.о. для манипулирования справочником во встроенном языке существуют два основных типа СправочникСсылка.ХХХХ и СправочникОбъект.ХХХХ , где ХХХХ — имя справочника в метаданных.
Важно, что имеются отдельные типы для каждого справочника, они появляются в системе при создании справочника в метаданных. Таким образом, типы ссылок двух разных справочников не будут совпадать между собой.
Отличие типов СправочникСсылка и СправочникОбъект:
- значение типа СправочникСсылка хранит ссылку, идентифицирующую объект в базе данных;
- значение типа СправочникОбъект позволяет считывать и записывать данные объекта.
И СправочникСсылка, и СправочникОбъект предоставляют доступ через свойства к данным объекта - значениям полей таблицы. Однако это происходит совершенно по-разному, так как назначение и использование этих типов принципиально отличается:
- Значение СправочникОбъект хранит свойства непосредственно в объекте встроенного языка. Они заполняются при считывании существующего объекта значениями из базы данных, а для нового объекта инициализируются значениями по умолчанию.
- Значение СправочникСсылка при обращении к свойствам осуществляет считывание информации из базы данных. Однако чтобы считывание происходило не при каждом обращении – данные объектов кэшируются системой.
Если обращаться через ссылки к свойствам одного и того же объекта базы данных, то считывание данных будет происходить только при первом обращении, а так же после того как система выгрузит этот объект из кэша.
Данные объекта удерживаются в кэше около 20 минут , но после интервала в 20 секунд при очередном обращении будет выполняться проверка того, что объект в базе данных не менялся, и, при необходимости, выполняется обновление данных в кэше. Если объект записывается в данной сессии, то он сразу обновляется в кэше. Также имеются ограничения на количество объектов хранимых в кэше. Следует заметить, что в рамках транзакции система использует отдельный кэш, поэтому обращение к данным объекта через ссылки в транзакциях гарантированно выдает актуальные данные.
Для объектов обеспечивается оптимистическая блокировка : объект не может быть записан, если он был изменен в базе данных после считывания.
Этот механизм обеспечивает логическую целостность изменения объектов. Каждый, кто меняет объект, может быть уверен, что его изменения не "затрут" изменений сделанных другими пользователями (сессиями) или другими объектами в этой же сессии. Такая блокировка не препятствует изменению объекта другими сессиями или этой сессией. Однако если с момента считывания объекта и до попытки его записи объект был изменен в базе данных, то запись не будет выполнена.
Механизм пессимистической блокировки запрещает изменения другими сессиями или этой сессией, до снятия блокировки этим объектом встроенного языка. Данный механизм необходимо включать в явном виде методом Заблокировать (). В основном он предназначен для блокировки объектов, редактируемых в форме. Расширение формы элемента справочника автоматически включает блокировку, чтобы пользователь был уверен что, начав редактировать объект, он сможет его записать.
Тип СправочникВыборка
Тип СправочникВыборка предназначен для динамического обхода элементов справочника. Механизм выборок для объектных таблиц не имеет существенных отличий от выборок других таблиц. Можно заметить, что считанные в выборке элементы могут быть получены в качестве значений типа СправочникОбъект. При этом они не будут повторно считываться из базы данных.
ВАЖНО! Выборка всегда считывает данные объектов целиком (все поля и все табличные части).
Тип СправочникСписок
Тип СправочникСписок предназначен для динамического просмотра данных справочника в элементе управления ТабличноеПоле . У него может быть настроен состав считываемых полей (колонок), отбор и сортировка. Список осуществляет считывание данных порциями в процессе навигации пользователем в табличном поле.
Кроме указанных типов значений справочник определяет несколько расширений элементов управления и форм, предназначенных для интерактивного ввода и просмотра данных справочника. Расширения не являются типами данных, а добавляют специфические свойства, методы и события к соответствующим объектам. Кроме того, расширения определяют некоторое специфическое поведение форм и элементов управления при конфигурировании и работе пользователя с системой.
Рисунок отсюда , там же можно почитать подробнее.
На схеме показаны не все возможные объекты и взаимосвязи. Например, метод Скопировать () существует не только у объекта СправочникСсылка, но и у самого объекта СправочникОбъект. Кроме того, у объекта СправочникМенеджер есть методы НайтиПоНаименованию () и НайтиПоРеквизиту (), которые действуют аналогично методу НайтиПоКоду и возвращают ссылку на найденный элемент или пустую ссылку, если элемент не найден. Также на схемах не показаны специфические объекты и объекты типа "Список".
Свойства и методы прикладных объектов
Менеджер прикладных объектов данного типа
- СправочникиМенеджер
- ДокументыМенеджер
- КонстантыМенеджер
- РегистрыНакопленияМенеджер
- ОтчетыМенеджер
- ОбработкиМенеджер
Объекты данного вида обеспечивают доступ к менеджерам конкретного прикладного объекта.
Обычно доступ к таким объектам производится через свойства глобального контекста, например, Справочники.Сотрудники, Документы.Счет, РегистрыСведений.КурсыВалют и т.д.
Эти объекты являются коллекциями значений и позволяют перебрать свои элементы с помощью цикла "Для Каждого".
Менеджер прикладного объекта
- СправочникМенеджер
- ДокументМенеджер
- КонстантаМенеджер
- РегистрНакопленияМенеджер
- ОтчетМенеджер
- ОбработкаМенеджер
Данный объект является "центральным" в объектной модели, из которого можно получить остальные объекты, например, ссылки, выборки, объекты для изменения, наборы записей и т.д. (см. ниже параграф "Взаимосвязь объектов").
Объект этого вида обеспечивает доступ к операциям над прикладным объектом как множеством элементов. Через методы этого объекта можно осуществлять поиск, получать выборку, создавать новые записи, обращаться к формам и макетам прикладного объекта.
Типичные свойства (для справочников и планов):
- Выбрать()
- НайтиПоКоду()
- НайтиПоРеквизиту()
- ПустаяСсылка()
- СоздатьЭлемент()
- СоздатьНаборЗаписей()
- ПолучитьМакет()
- ПолучитьФорму()
- СправочникСсылка
- ДокументСсылка
- ПланСчетовСсылка
- ПланВидовРасчетаСсылка
Данный объект однозначно идентифицирует объект базы данных (например, элемент справочника, документ) и позволяет обращаться к нему в режиме "только чтение". Через свойства и методы этого объекта можно прочитать реквизиты элемента, обратиться к его табличным частям.
Ссылки хранятся в реквизитах, ссылающихся на элементы данного прикладного объекта, например, в реквизите "Сотрудник" документа "ПриемНаРаботу" хранится ссылка на конкретный элемент справочника "Сотрудники".
Заметьте, что у записей регистров нет ссылок.
Для изменения объекта базы данных (элемента справочника, документа) нужно получить другой объект с помощью метода ПолучитьОбъект().
- ПометкаУдаления
- Дата
- Предопределенный
- Ссылка
- Пустая()
- ПолучитьОбъект()
- ПолучитьФорму()
- Метаданные()
- Скопировать()
- СправочникВыборка
- ДокументВыборка
- ЖурналДокументовВыборка
- РегистрНакопленияВыборка
Этот объект предоставляет возможность обхода (перебора) объектов базы данных. Например, можно перебрать элементы справочника или перебрать документы, входящие в конкретный журнал.
Обратите внимание, что данный объект не является коллекцией значений и, следовательно, нельзя использовать цикл "Для Каждого" для перебора элементов.
Свойства аналогичны свойствам объекта типа "Ссылка".
- СправочникОбъект
- ДокументОбъект
- ПланСчетовОбъект
- ОтчетОбъект
- ОбработкаОбъект
Предоставляет доступ к элементу с возможностью записи изменений в базу данных. Этот объект содержит методы, влияющие на элемент в базе данных, например, методы Записать и Удалить.
Для отчетов и обработок через этот объект обычно осуществляется формирование отчета или выполнение обработки.
Если в модуле прикладного объекта (не путать с модулем формы) есть экспортируемые переменные модуля или процедуры/функции, то они дополняют набор свойств и методов именно этого программного объекта.
Для регистров подобного объекта не существует, а изменение данных всегда производится через набор записей (см. ниже).
Свойства аналогичны свойствам объекта типа "Ссылка".
- Записать()
- Удалить()
- Заблокировать()
- Разблокировать()
- Заблокирован()
- Скопировать()
- ПолучитьФорму()
- ПолучитьМакет()
- Метаданные()
- СправочникСписок
- ДокументСписок
- ЖурналДокументовСписок
- ПланСчетовСписок
- РегистрНакопленияСписок
- КритерийОтбораСписок
Этот программный объект предназначен для управления списком элементов в табличном поле. Позволяет управлять колонками, отбором и сортировкой в списке.
Этот объект нельзя создать программно, он создается системой автоматически при размещении на форме табличного поля. Конечно, программно можно создать табличное поле в экранной форме и тогда будет создан объект данного типа.
Набор записей
- РегистрСведенийНаборЗаписей
- РегистрНакопленияНаборЗаписей
- РегистрБухгалтерииНаборЗаписей
- РегистрРасчетаНаборЗаписей
- ПоследовательностьНаборЗаписей
Набор записей позволяет оперировать сразу несколькими записями прикладного объекта (обычно регистра). Набор записей можно целиком прочитать из базы данных, добавить в него записи или изменить их, а зетем записать в базу данных (в одной транзакции).
У документов есть свойство-коллекция "Движения", которое предоставляет доступ к наборам записей по каждому регистру, отмеченному на закладке "Движения". Через это свойство обычно производится формирование движений документа при его проведении.
- Добавить()
- Удалить()
- Очистить()
- Записать()
- Прочитать()
- Количество()
- Выгрузить()
- Загрузить()
- РегистрСведенийЗапись
- РегистрНакопленияЗапись
- РегистрБухгалтерииЗапись
- РегистрРасчетаЗапись
Обеспечивает доступ к одной записи из набора, для того чтобы установить ее измерения, ресурсы и т.д. Этот объект возвращается методами других объектов, например, методом Добавить у объекта типа РегистрНакопленияНаборЗаписей.
Объект типа "Запись" не является постоянным идентификатором конкретной записи регистра, наподобие объекта "Ссылка" для справочников и документов. У записей регистра сведений вообще нет неизменяемого во времени идентификатора и каждая запись регистра однозначно определяется значениями своих измерений (включая системные, например, Период, Регистратор, НомерСтроки)
Курс лекций
Форум
Справочник – это агрегатный тип данных, средство для работы со списками однородных элементов данных. Название и структура каждого конкретного справочника определяются при его создании в конфигураторе. У любого справочника существуют два реквизита, которые создаются автоматически – «Код» и «Наименование». Реквизиты справочников могут быть периодическими, т.е. иметь значения, связанные с датой. При изменении значения периодического реквизита старое значение сохраняется, при этом новое значение начинает действовать с указанной даты, старое – до указанной даты.
Свойства справочника редактируются в окне редактирования «Справочник». Для визуального представления справочника существуют «Форма элемента», «Форма группы» и «Формы списка» (их может быть несколько).
Если один справочник подчинен другому (задается в поле «подчинен» окна редактирования), то каждый элемент подчиненного справочника будет соответствовать элементу справочника-владельца. Для этого есть специальный реквизит «Владелец», по которому можно найти элемент справочника-владельца.
Справочник может иметь иерархическую структуру. Число уровней иерархии определяется в поле «Кол-во уровней» в окне редактирования. Для задания иерархии используется реквизит «Родитель», который и определяет, к какой группе относится элемент. Наиболее важные функции:
- ЭтоГруппа() – возвращает 1, если текущий элемент справочника – группа;
- ПринадлежитГруппе() – возвращает 1, если текущий элемент принадлежит группе ;
- Уровень() – возвращает номер уровня текущего элемента.
Глубина вложенности групп настраивается в конфигураторе и не может превышать 10 уровней.
Обычно для обработки элементов справочника используется следующая последовательность команд:
Есть несколько способов поиска элемента справочника:
В последнем случае необходимо, чтобы элементы справочника были отсортированы по этому реквизиту – в свойстве реквизита в закладке «Дополнительно» нужно поставить флажок «Сортировка».
Пример. Следующая функция выполняет поиск элемента справочника по наименованию. Если элемент с таким наименованием не найден, то создается новый элемент. Параметр «Справ» – строка с идентификатором справочника, «Наим» – наименование по которому производится поиск элемента. Функция возвращает ссылку на найденный или созданный элемент.
Для удаления текущего элемента справочника используется функция Удалить(), где может иметь значение 0 – пометка на удаление, 1 – непосредственное удаление (используется по умолчанию). Вообще непосредственное удаление не рекомендуется, из-за возможного нарушения ссылочной целостности базы данных.
Чтобы удалить помеченные на удаление объекты через систему 1С:Предприятие 7.7, нужно зайти в программу в монопольном режиме и в меню «Операции» выбрать пункт «Удаление помеченных объектов…».
Документы в системе 1С: Предприятие используются для ввода, просмотра и корректировки информации о совершаемых хозяйственных операциях. У любого документа есть три обязательных реквизита «ДатаДок», «ВремяДок», «НомерДок». Дата и время, – наиболее важные характеристики документов, так как позволяют устанавливать строгую временную последовательность совершения операций. Форма документа редактируется при нажатии кнопки «Форма».
Реквизиты шапки документа задаются в списке «Реквизиты шапки». Реквизиты табличной части задаются в списке «Реквизиты табличной части».
Для того чтобы документ формировал проводки, необходимо
- создать хотя бы один план счетов.
- поставить флажок «Разрешить проведение документа».
- поставить флажок «Бухгалтерский учет».
Формирование проводок происходит в «Модуле документа» в предопределенной процедуре «Обработка проведения».
Обычно для обработки документов используется следующая последовательность команд:
Для ввода документа используется функция «Новый()», далее заполняются реквизиты шапки документа. Для ввода новой строки документа используется функция «НоваяСтрока()» и заполняются реквизиты табличной части документа.
Для просмотра списка документов используется «Журналы документов». Создание журнала производится в конфигураторе. В диалоговой форме задаются графы – реквизиты документов, входящих в журнал. Реквизиты табличной части можно добавить в журнал только в том случае, если в свойствах реквизита в закладке «Дополнительно» стоит флажок «Итог по колонке».
В соответствии с заданием №1 из приложения 3 создать справочники и документы в новой информационной базе.
Очень часто в 1С 8.3. в справочнике необходимо настроить определенный порядок подчинения элементов. Для реализации подобных задач из простого справочника необходимо сделать иерархический справочник 1С.
В платформе 1С существует два вида иерархии – иерархия групп и элементов и иерархия элементов.
Иерархия групп и элементов
Для того, чтобы справочник имел иерархию групп и элементов, необходимо в редакторе справочника на закладке Иерархия установить флаг Иерархический справочник, а свойству Вид иерархии установить значение Иерархия групп и элементов.
Тогда у справочника можно будет создавать группы, и размещать элементы в группах.
При иерархии групп или элементов существуют группы (каталоги), в которые входят или другие группы, или элементы. И группы, и элементы являются экземплярами объекта справочника.
Группа это тоже экземпляр объекта справочника, по которому не ведется какой-либо учёт (как правило), и который может быть родителем другого экземпляра, т.е. в группу могут входить другие группы и элементы справочников.
Иерархия элементов
Иерархия элементов настраивается похожим способом: в редакторе справочника на закладке Иерархия устанавливается флаг Иерархический справочник, но свойству Вид иерархии следует установить значение Иерархия элементов.
После этого, каждый элемент может быть родителем другого элемента.
Родитель иерархического справочника 1С
У каждого элемента иерархического справочника должен быть родитель. В случае иерархии групп и элементов родитель это группа иерархического справочника, в случае иерархии элементов, родитель это элемент.
Родитель это стандартный реквизит справочника. Если иерархия отключена, то этот стандартный реквизит не доступен. Как у этого справочника Сотрудники.
А если иерархия включена, то этот реквизит доступен. Как у справочника Контрагенты.
Если форма элемента справочника автоматически генерируется платформой (т.е. она не создана), то этот реквизит отображается на управляемой форме. И, в случае иерархии групп и элементов в нем указана группа, в которую входит этот элемент.
Если группа не указана, то значит элемент верхнего уровня.
Также, родитель имеется у элементов справочника с иерархией элементов.
Создать элемент иерархического справочника 1С
Для того, чтобы создать группу справочника (в случае, иерархии групп и элементов), необходимо воспользоваться методом менеджера справочника СоздатьГруппу(). А для создания элемента следует воспользоваться методом СоздатьЭлемент(). Если мы хотим, чтобы вновь созданный элемент входил в какую-то группу, то следует в свойство Родитель этого элемента записать ссылку на нужную группу.
В коде ниже, создаем группу, а потом создаем элемент, который входит в эту группу:
Заметьте, группа в коде выше, группа верхнего уровня. У неё при создании не был задан Родитель.
В случае иерархии элементов всегда нужно создавать элементы, но также следует в свойстве Родитель созданного элемента указать ссылку на другой элемент, которому будет подчинен созданный.
Изменить элемент иерархического справочника 1С
Если мы хотим поменять подчиненность элемента иерархического справочника, или вообще убрать её, т.е. сделать из элемента элемент верхнего уровня, то следует работать со стандартным реквизитом Родитель. В случае, изменения подчиненности, этому реквизиту нужно присвоить ссылку на другую группу.
Если же мы хотим сделать элемент верхнего уровня, то этому реквизиту нужно присвоить пустую ссылку.
Поиск в иерархическом справочнике 1С
В платформе 1С имеется возможность искать в определенной группе иерархического справочника, для этого следует в методах НайтиПоНаименованию, НайтиПоКоду и НайтиПоРеквизиту заполнять параметр Родитель.
Например, поиск в определенной группе будет осуществляться так:
Где, третий параметр Группа — это ссылка на группу, внутри которой ищется элемент по указанному названию.
Выборка иерархического справочника 1С
В платформе 1С 8.3. существует возможность выбрать элементы иерархического справочника, которые входят в ту или иную группу, для этого следует воспользоваться методом Выбрать с заполненным параметром Родитель. В этом случае будут выбраны группы и элементы, которых входят непосредственно в указанную группу, но не будут выбраны группы элементы, которые входят в подчиненные группы. Чтобы выбрать элемент и группы, входящие в какую-то группу, следует воспользоваться методом ВыбратьИерархически.
Например, при таком коде:
Будут выбраны элементы, входящие в указанную группу.
А в этом случае:
Будут выбраны элементы, которые входят и в указанную группу, и в подчиненные ей группы.
И Выбрать, и ВыбратьИерархически отбирают и группы, и элементы справочников. Поэтому, в коде выше было использовано свойство ссылки справочника ЭтоГруппа. Это свойство имеет значение Истина, если ссылка является группой справочника.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Что такое реквизиты 1С?
Мы с Вами недавно обсуждали справочники 1С и документы 1С. Работа пользователя со справочниками и документами в 1С состоит из заполнения полей на форме.
Реквизиты 1С – это поля справочника и документа, которые отображаются на форме, чтобы пользователь их заполнил.
Рассмотрим подробно тему реквизитов в 1С.
Что такое Реквизиты 1С
Каждый справочник и документ 1С состоит из набора полей. Такие поля называются реквизиты 1С (для программиста 1С).
В конфигураторе, в дереве конфигурации 1С, раскройте любой справочник или документ и Вы увидите ветку Реквизиты. Это список реквизитов (полей) справочника.
Поглядите как те же реквизиты 1С выглядят на форме справочника 1С.
Каждый реквизит 1С имеет свойства, в которых указано какой вид значения хранится в реквизите (строка, число и т.п.) и как с ним будет работать пользователь.
Нажмите правой кнопкой на любой реквизит 1С и нажмите Свойства. В окне справа откроется список свойств выбранного реквизита.
Основные свойства реквизитов 1С:
- Имя – наименование реквизита 1С в языке 1С (внимание – в имени реквизитов не должно быть пробелов и знаков препинания)
- Синоним – наименование реквизита каким его увидит пользователь в режиме Предприятие
- Тип – указывает какие данные можно будет хранить в реквизите 1С, нажмите на кнопку «…», чтобы изменить тип; основные типы:
o Число — используется для цифр, а также для радиопереключателя
o Строка — может быть ограничена по длине, дело в том, что не везде возможно использование неограниченной длины
o Дата
o Булево — для того, чтобы на форме была галочка (значения Истина/Ложь или Да/Нет)
o СправочникСсылка или ДокументСсылка – выбор значения справочника или документа.
Вы можете поставить галочку Составной тип данных и тогда 1С позволит Вам выбрать несколько типов данных одновременно. В этом случае пользователю будет отображаться кнопка Т, при нажатии на которых он выберет какие данные он хотел бы ввести.
Стандартные реквизиты 1С
Как Вы заметили, на форме справочника есть реквизиты 1С, которые отсутствуют в списке в конфигураторе: группа, наименование, БИК.
В форме списка справочника тоже есть реквизиты 1С, которых нет в списке: пометка удаления.
Это – стандартные реквизиты 1С. Что это такое? У каждого объекта 1С есть набор реквизитов 1С по умолчанию. У справочников это, например – код и наименование. У документов это – дата и номер.
Стандартные реквизиты 1С можно посмотреть следующим образом:
Общие реквизиты 1С
Начиная с версии 1С 8.2.14 в 1С появился новый Объект 1С – Общие реквизиты 1С. С помощью него можно добавить реквизит (поле), который будет присутствовать сразу во множестве справочников и документов.
Свойства общего реквизита 1С:
- Автоиспользование – добавляет общий реквизит 1С сразу во все справочники и документы
- Состав – позволяет добавить общий реквизит 1С только в нужные справочники и документы (автоиспользование тогда в значение Не использовать).
Как добавить реквизит 1С
Нажмем правой кнопкой на ветку Реквизиты 1С нужного справочника и выберем Добавить.
Введем нужно Имя реквизита 1С, например «АдресОфиса» и синоним «Адрес офиса». Тип оставим по умолчанию Строка, но поставим галочку Неограниченная длина.
Добавим еще один реквизит 1С точно так же, только выберем тип Булево, назовем его «РаботаетПоВыходным».
Как вывести реквизит на форму 1С (толстый клиент 1С)
Раскроем ветку Формы того же справочника. Чтобы открыть форму — выберем форму элемента и нажмем на нее два раза мышкой.
Потяните мышкой за край формы и растяните ее (необязательный пункт).
В панели конфигуратора нажмите кнопку «Размещение данных». Также можно использовать меню Форма / Размещение данных.
Вы видите – наши реквизиты на форму не выведены. Установите на них галочку. А также галочки Вставить надписи и Разместить автоматически.
Как вывести реквизит на форму 1С (тонкий клиент 1С)
Раскроем ветку Формы того же справочника. Выберем форму элемента и нажмем на нее два раза мышкой.
На закладке Реквизиты раскройте строку Объект. Вы увидите список реквизитов, добавленных ранее в справочник.
Теперь просто перетяните из правого окна в левую нужный реквизит и он появится на форме.
Реквизиты формы 1С
В толстом клиенте у формы есть свои собственные реквизиты. Они находятся на закладке Реквизиты.
Эти реквизиты не сохраняются в базе данных, однако их можно использовать на форме для полей, которые нужны для работы с формой.
Например, Вы добавили на форму галочку. При ее нажатии на форме что-то происходит. Значение галочки для Вас неважно (записывать его не нужно) – она используется только для переключения формы при работе с ней. В этом случае в качестве данных Вы используете не реквизит справочника, а реквизит формы.
Периодические реквизиты 1С
В 1С версии 7.7 были периодические реквизиты. Их смысл таков: значение у реквизита разное в разные даты. Например, значение на 1 сентября – одно, а на 1 октября – другое. У одного и того же реквизита.
В 1С 8 периодических реквизитов нет. Это реализуется следующим образом:
-
Добавляем регистр сведений и делаете его периодическим. Период может быть – секунда, день, месяц, квартал, год.
Справочники 1С — специализированный объект древа метаданных, который служит для хранения статичной информации справочного характера. Например, в типовых конфигурациях можно увидеть следующие виды: Контрагенты, Номенклатура, Сотрудники, Основные средства и т.д. Информация в справочниках, как правило, часто не изменяется. Справочники в дальнейшем используются практически во всех объектах учета как разрез учета или справочная информация.
Справочники в конфигураторе 1С 8
Ниже мы рассмотрим настройку и проектирование справочника из конфигуратора на примере справочника «Номенклатура».
Вкладка «Основные»
На вкладке «Основные» указывается имя, синоним, представление объектов, описание назначения.
Вкладка «Иерархия справочника»
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Здесь устанавливается иерархичность справочника.
Иерархия в 1С 8.3 бывает двух типов — «групп и элементов» и «элементов«. Отличается тем, что в первом случае родителем (папкой) может быть только папка (группа), а во втором случае родителем может быть и элемент.
«Размещать группы сверху» — флаг отвечает за отображение групп в форме списка.
Также в настройках можно ограничить количество групп иерархии справочника соответствующей настройкой.
Вкладка «Владельцы»
Справочник может быть подчинен другому справочнику. С точки зрения конфигурирования 1С 8.3 это значит, что у подчиненного элемента становится обязательным реквизит «Владелец». Пример такой связи справочников в типовых конфигурациях «Номенклатура — Единицы Измерения», «Контрагенты-Договоры Контрагентов».
Владельцем справочника могут также быть следующие объекты метаданных: планы обмена, планы видов характеристик, планы счетов, планы видов расчета.
Вкладка «Данные»
Самая важная вкладка с точки зрения программиста. На ней указываются реквизиты справочника.
У справочника есть набор стандартных реквизитов, которые не редактируются программистом 1С 8.2, список их можно увидеть, нажав кнопку «Стандартные реквизиты»:
Остановлюсь на каждом подробнее:
- ЭтоГруппа — реквизит с типом булево, показывающий, группа это или элемент. Доступен только в иерархическом справочнике. Обратите внимание, значение этого реквизита невозможно изменить в режиме 1С: Предприятие.
- Код — реквизит, тип число или строка (как правило строка). Номер, присваиваемый системой автоматически. Как правило, рассчитывается как (предыдущий код + 1). Рекомендую использовать именно строковый тип, потому как сортировка числовых значений происходит не так, как нужно. Можно использовать как представление справочника в списке и в полях ввода. Как правило, используется для поиска элемента при вводе по строке. Если Вам нужно убрать поле Код, укажите в длине строки ноль.
- Наименование — реквизит, обязательный к заполнению, строкового типа. Максимальная длина строки — 150 символов. Можно использовать как представление справочника в списке и в полях ввода. Как правило, используется для поиска элемента при вводе по строке. Если Вам нужно убрать поле Наименование, укажите в длине строки ноль.
- Родитель — реквизит, имеющий тип СправочникСсылка.. Доступен только в иерархическом справочнике. Указывает на вышестоящего родителя в иерархии. Если Элемент или Группа находятся в корне справочника, указывается значение Справочник..ПустаяСсылка.
- Владелец — ссылка на элемент-владелец текущего элемента (группы) справочника. Доступен только в подчиненном справочнике 1С.
- ПометкаУдаления — реквизит с типом булево. Отвечает за отображение «пометки удаления» в системе. Помеченный на удаление элемент считается непригодным к использованию, однако на нём могут оставаться старые движения в документах.
- Ссылка — поле строкового типа. В этом реквизите хранится уникальный идентификатор объекта — GUID. То, что в системе мы видим в визуальном отображении под название «ссылка», — это всего лишь представление объекта. Невозможно изменить.
- Предопределенный — тип булево, отображает, является ли элемент предопределенным, об этом позже. Невозможно изменить.
На вкладке «Данные» так же указывается представление справочника в системе, до версии 8.2.16 представление могло быть лишь Кодом или Наименованием. В свежих версиях платформы (начиная с 8.3) представление можно описать самостоятельно в модуле менеджера с помощью обработчика «ОбработкаПолученияПредставления».
Вкладка «Нумерация»
Серия кодов — определяет, как нумеровать справочник, можно ввести нумерацию справочника в разрезе владельца. Например, у контрагента «Рога и копыта» будет иметься своя нумерация договоров — «1, 2, 3» и тд.
Вкладка «Формы»
Тут описываются формы для справочника. Если конфигурация запускается как в обычном, так и управляемом режиме, тогда вкладок с формами по умолчанию будет две: «основные» и «дополнительные» — для обычного и управляемого приложения разные.
На этой странице есть немаловажное свойство справочника — «Ввод по строке«. Это очень удобная функция 1С 8, позволяющая при заполнении данных в поле ввода не заходить в справочник, а набрать его наименование, код или т.п. и выбрать из выпадающего списка нужный элемент. Выглядит это так:
Вкладка «Прочее»
На вкладке можно получить быстрый доступ к основным модулям справочника — модулю объекта и модулю менеджера.
На странице можно также определить список предопределенных элементов справочника. Это элементы, которые невозможно удалить в режиме Предприятия. К предопределенным элементам можно обратиться в конфигураторе напрямую, по имени, например: Справочники.Номенклатура.Услуга.
На этой вкладке также определяется режим блокировки — автоматический или управляемый. Использование полнотекстового поиска, а также справочная информация о справочнике, доступная в режиме 1С: Предприятия.
Минивидео, как работать со справочниками:
Читайте также: