DevBookmark_Dict_ Посмотреть существующие и создать новые справочники можно в справочнике Dictionary:

Dict_scr_ListForm

Серым цветом выделены системные (ядерные) справочники. У прикладного разработчика нет прав на их редактирование или удаление, но есть права на чтение.

Записи справочника можно фильтровать по Названию справочника (System name). Системные справочники можно скрыть, установив флаг Hide system.

В подборе аналитических колонок можно выбрать локализованные колонки названия (Caption) на всех языках, доступных в системе:

Dict_scr_ListForm_Captions

По кнопке Documents2_EditForm_bttn2 Common event handler в панели инструментов доступен скрипт обработчика событий всех справочников.

Организация хранения структуры справочников на уровне базы данных подробно описана в разделе Справочники в главе Схема KERNEL.

Для удобства свойства справочника в форме редактирования его структуры сгруппированы по закладкам:

Dict_EditForm1

В заголовке формы отображается название класса справочника и его идентификатор.

В панели инструментов формы помимо идентификатора справочника (присваивается автоматически) находятся кнопки:

Documents2_EditForm_bttn1 SQL script — SQL скрипт, предназначенный для созданий объектов справочника в базе данных:

Dict_scr_ScriptSQL

на закладке "Create SQL" находится скрипт, используемый для создания объектов справочника в базе данных. Этот скрипт можно применять если объект создается в СУБД впервые;

на закладке "Alter SQL" находится скрипт, используемый для изменения ранее созданных объектов справочника в базе данных.

кнопки на панели управления, расположенной в верхней части формы, позволяют:

Dict_scr_ScriptSQL_Execute — выполнить текущий скрипт в базе данных,

Dict_scr_ScriptSQL_Copy — скопировать текущий скрипт в буфер обмена,

Dict_scr_ScriptSQL_Save — сохранить текущий скрипт в файл на диске.

 

35_important

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

 

Documents2_EditForm_bttn2 Class code — класс, описывающий запись справочника, будет сгенерирован на C#:

Dict_scr_ScriptClassCode

Documents2_EditForm_bttn3 Event script — скрипт обработчика событий справочника. При создании нового справочника обработчик событий не создается. Система предлагает создать его при первом нажатии на кнопку. При этом все внесенные в объект изменения будут сохранены:

Dict_scr_EventScript

Скрипт обработчика событий справочника также можно открыть через контекстное меню списковой формы справочников.

Documents2_EditForm_bttn4 Column provider script — скрипт провайдера колонок справочника. При создании нового объекта провайдер колонок не создается. Система предлагает создать его при первом нажатии на кнопку. При этом все внесенные в объект изменения будут сохранены;

Dict_scr_LinkTables4 — кнопка открытия списковой формы редактируемого справочника (функционал работает только для уже созданных справочников). Также ее можно открыть через контекстное меню (пункт Browse dictionary...) списковой формы справочников.

bookmark На закладке "Main" организованы основные свойства справочника:

Name — название справочника. Оно должно соответствовать названию одной записи справочника (быть в единственном числе). В примере выше — это название справочника Склад Store. При необходимости может быть изменено:

Dict_EditForm1_Name

RenameMetadataObjects

Class name — название класса справочника. Генерируется автоматически на основании названия Name справочника;

Caption — отображаемое в экранных формах (например, в заголовке списковой формы) название справочника. Генерируется автоматически на основании названия Name справочника путем разбиения его на отдельные слова и перевода во множественное число. Например для справочника с названием AgentAddress это свойство будет иметь значение Agent addresses;

Guid — используется для идентификации пункта меню.

Guid генерируется автоматически случайным образом и при необходимости (при совпадении с Guid другого объекта) может быть изменен:

GuidControl_HowDoesItWork

Parent property — позволяет организовать справочник в древовидную структуру (не обязательная опция), если в качестве значения этого свойства указана свойство-ссылка справочника, ссылающаяся на него же. Рекомендуется в качестве названия (Name) этого свойства-ссылки использовать значение ParentID. Кроме того это свойство должно быть не обязательным для заполнения (флаг Not null для него не должен быть установлен);

группа свойств Database — название объектов справочника в прикладной схеме базы данных:

Table name — название таблицы справочника;

Sequence name — название Sequence, используемого для генерации идентификаторов (ID) записей справочника;

Mapping objectназвание объекта на который отображаются LINQ запросы. По умолчанию это название генерируемого представления (view).

Названия группы свойств Database генерируются автоматически на основании названия Name справочника и при необходимости могут быть изменены:

Dict_EditForm_rename

Названия могут содержать только буквы латинского алфавита, цифры и знак "_". При этом название должно начинаться с буквы и его длина не должна превышать 30 символов (доступное количество символов отображается в элементе управления).

Можно заменить view таблицей для повышения производительности, однако в этом случае не будет поддерживаться мультиязычность и трансляция времени. Если ни одна из этих функций не требуется, а таблица очень сильно нагружена, можно отказаться от использования представлений;

группа свойств Lookup behavior:

Display format — формат, в котором отображаются элементы справочника в экранных формах, когда они выводятся не в табличном, а строковом виде (например, в элементах управления).

Чтобы получить на выходе строку вида "13, Название", где первое значение — ID записи, а второе через запятую — значение свойства Name, следует указать в качестве значения поля Display format строку "{ID}, {Name}".

Поддерживается форматирование дат, например, для значения поля Display format "{DateTime:d}" будет выведена только дата без времени (информацию о всех доступных форматах дат можно найти на сайте MSDN link eng/rus);

Search property — свойство справочника, среди значений которого осуществляется поиск в списковой форме справочника или элементе управления;

Notification enabled — флаг, разрешающий рассылать уведомления среди всех серверов кластера о внесении в данные справочника изменений. Для кэшируемого справочника уведомления рассылаются всегда независимо от состояния флага. Для часто изменяемого справочника может привести к существенному росту трафика между серверами и клиентами;

Transparent translation — флаг прозрачности локализации (с установленным флагом справочник локализуется прозрачно);

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

Is small — флаг размера справочника. Справочник с этим установленным флагом считается маленьким. Содержимое маленьких справочников выводится в элементах управления (например, DictionaryLookupEdit и DictionaryMultiSelectEdit) целиком, содержимое остальных фильтруется. При создании нового справочника состояние этого флага неопределенное, перед сохранением справочника его следует установить или снять;

Icon — стандартная иконка (размером 16 на 16 пикселей).

Иконки отображаются, например, в главном меню или в заголовке окна списковой формы и формы редактирования справочника.

Кнопки справа от области предпросмотра иконки позволяют:

Dict_EditForm1_But1 — загрузить иконку;

Dict_EditForm1_But2 — сохранить загруженную ранее иконку на компьютер;

Dict_EditForm1_But3 — удалить иконку;

Large icon — большая иконка (размером 32 на 32 пикселя);

Hot key — сочетание клавиш, которым можно вызвать команду открытия списковой формы справочника. Флагами выбирается одна или несколько функциональных клавиш (Ctrl, Alt и Shift), а в элементе управления справа от них выбирается символьная клавиша.

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

ComboBox_Open_But — выбрать символ;

ComboBox_ADV_Close — удалить выбранное значение;

ComboBox_ADV_Search — посмотреть встречается ли такое сочетание клавиш для какой-либо другой команды;

Metadata tags — теги, используемые для описания функционала справочника.

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

Добавление тега осуществляется клавишами Key-Space или Key-Enter. Удаление кнопкой Dict_scr_TagDelete после тега. Поскольку пробел используется для ввода тега, можно заменить его символами "_" или "-" в тегах с названием из нескольких слов;

Developer comments — комментарии прикладного разработчика;

edit user help — комментарий к объекту (в данном случае справочнику), который конечный пользователь может видеть в виде подсказки (hint), выпадающей при наведении курсора мыши на объект. Комментарий вводится для каждого языка системы.

Dict_scr_Comments

Setup roles — список ролей для быстрой черновой настройки прав на справочник. Напротив каждой операции есть флажки Allow и Revoke, которые соответственно включают или отключают доступ к справочнику. Список ролей позволяет легко проконтролировать, выданы ли права на справочник хотя бы кому-нибудь в системе.

bookmark На закладке "Properties" слева расположен список свойств справочника, в центре — все параметры выбранного слева свойства, справа — список свойств справочника Lookup properties, которые будут отображаться в выпадающем списке элементов управления (например, DictionaryLookupEdit или DictionaryMultiSelectEdit):

Dict_EditForm2

Свойства можно добавлять Dictionaries_Button_1 или удалять Dictionaries_Button_4 соответствующими кнопками в панели инструментов закладки. Также свойства можно фильтровать по Названию (Name).

Каждое свойство имеет:

Name — название;

Caption — название, отображаемое в экранных формах. Генерируется автоматически на основании названия Name свойства путем разбиения его на отдельные слова;

DB name — название соответствующего поля таблицы справочника в прикладной схеме базы данных. Название генерируется автоматически на основании названия Name свойства. При необходимости его можно изменить таким же образом, как и названия объектов справочника в базе данных. На название поля накладываются те же ограничения, что и на названия прочих объектов БД;

Type — тип свойства (подробнее см. раздел Типы данных). В зависимости от типа может быть доступен ряд специфических параметров:

группа свойств Reference (доступна для типа данных long, отмеченного флагом Reference):

Name — название ссылки;

Caption — описание ссылки. Генерируется автоматически на основании названия Name ссылки путем разбиения его на отдельные слова;

Type — тип ссылки: справочник (dictionary) или документ (document);

Dictionary/Document — справочник или тип документа, на который ссылается свойство. При указании типа документа, будет создана типизированная ссылка на документ. При открытии браузера записей будет открываться соответствующий журнал документов, при подборе колонок можно будет добавить колонки из шапки соответствующего типа документа;

Max size (доступен для типов данных Text и String) — ограничивает на указанную величину размер значения свойства;

Multilanguage (доступен для типов данных LargeText, Text и String) — флаг, указывающий, что свойство является мультиязычным;

Not null — флаг, указывающий обязательно ли свойство для заполнения;

Reference (доступен для типа данных long) — флаг, указывающий что свойство является ссылкой на справочник или документ;

Filter — флаг, указывающий, что данное свойство будет отображаться по умолчанию в фильтре списковой формы справочника;

Default expr. — выражение на C#, формирующее значение свойства по умолчанию. Значение выражения подставляется в свойство автоматически при создании нового элемента справочника.

Например, можно вывести в качестве значения свойства типа Text информационное сообщение:

"Введите в качестве значения этого поля текущую дату в формате ГГГГ-ММ-ДД, где ГГГГ - это год, ММ - месяц, а ДД - день"

Или же можно в качестве значения того же свойства сразу вывести текущую дату, указав в качестве значения параметра Default expr. следующее выражение:

DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss")

Metadata tags — теги, используемые для описания функционала свойства справочника. Аналогичны по смысловой нагрузке тегам справочника. Используются для поиска объектов, реализованных под определенный функционал, ассоциированный с этим тегом;

Developer comments — комментарии прикладного разработчика;

edit user help — комментарий к объекту (в данном случае свойству справочника), который конечный пользователь может видеть в виде подсказки (hint), выпадающей при наведении курсора мыши на объект. Комментарий вводится для каждого языка системы.

table В списке Lookup properties перечислены свойства, которые будут отображаться в выпадающем списке элементов управления (например, DictionaryLookupEdit или DictionaryMultiSelectEdit). Если этот список пуст, отображаться будут перечисленные в Display format (на закладке "Main") свойства. Lookup свойства можно добавлять Dictionaries_Button_1 или удалять Dictionaries_Button_4 соответствующими кнопками в панели инструментов, а также фильтровать по Названию (Name).

В списке Lookup properties могут быть перечислены как свойства самого справочника, так и свойства других справочников, на которые данный справочник ссылается посредством свойств-ссылок. В примере выше — это свойство Name справочника Store и свойство Name справочника Office, указанное в формате Office.Name.

Dict_EditForm2_Lookup

Названия свойств указываются в колонке Name списка, а в колонках Caption указываются их локализованные названия для отображения в экранных формах (элементах управления) для каждого из языков системы.

table В списке Dictionary constants перечислены константы справочника. Константы можно добавлять Dictionaries_Button_1 или удалять Dictionaries_Button_4 соответствующими кнопками в панели инструментов, а также фильтровать по Названию (Name).

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

record.TypeID = DictionaryName.Constants.ConstantName;

Названия и значения констант указываются в колонках Name и Value списка, а в колонке Developer's comments — комментарии прикладного разработчика.

bookmark На закладке "Link tables" слева расположен список развязочных таблиц справочника, справа все параметры выбранной слева таблицы:

Dict_EditForm3

Развязочные таблицы можно добавлять Dictionaries_Button_1 или удалять Dictionaries_Button_4 соответствующими кнопками в панели инструментов закладки. Также развязочные таблицы можно фильтровать по Названию (Name).

Каждая развязочная таблица имеет:

Name — название;

Caption — название, отображаемое в экранных формах. Генерируется автоматически на основании названия Name развязочной таблицы путем разбиения его на отдельные слова;

Link table — непосредственно сама развязочная таблица;

Linking property — свойство развязочной таблицы, которое ссылается на данный справочник;

Metadata tags — теги, используемые для описания функционала развязочной таблицы справочника;

Developer comments — комментарии прикладного разработчика;

edit user help — комментарий к объекту, который конечный пользователь может видеть в виде подсказки (hint), выпадающей при наведении курсора мыши на объект.

Перед тем, как добавить развязочную таблицу в справочник, ее необходимо создать (см. главу Развязочные таблицы). Выбрать развязочную таблицу можно только среди тех, чье свойство-ссылка ссылается на текущий справочник. Если добавить развязочную таблицу в справочник, пользователь в форме редактирования записей этого справочника сможет на отдельной закладке с названием, соответствующим свойству Caption, видеть список ассоциированных с ним записей развязочной таблицы, добавлять в нее новые записи, редактировать и удалять существующие:

Dict_EditForm3_LinkTable

bookmark На закладке "Lists" расположен список вложенных справочников, справа все параметры выбранного слева вложенного справочника:

Dict_EditForm4

Вложенные справочники можно добавлять Dictionaries_Button_1 или удалять Dictionaries_Button_4 соответствующими кнопками в панели инструментов закладки. Также вложенные справочники можно фильтровать по Названию (Name).

Каждый вложенный справочник имеет:

Name — название;

Caption — название, отображаемое в экранных формах. Генерируется автоматически на основании названия Name вложенного справочника путем разбиения его на отдельные слова;

Dictionary — непосредственно сам вложенный справочник;

Ref. property — свойство вложенного справочника, которое ссылается на данный справочник;

Metadata tags — теги, используемые для описания функционала вложенного справочника;

Developer comments — комментарии прикладного разработчика;

edit user help — комментарий к объекту, который конечный пользователь может видеть в виде подсказки (hint), выпадающей при наведении курсора мыши на объект.

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

Dict_EditForm4_AttachedDict

bookmark На закладке "Commands" находится список команд, доступных для данного справочника:

Dict_EditForm5

В левой части закладки расположен список "Commands" — команд над одной записью справочника (которые доступны через контекстное меню в списковой форме справочника или из формы редактирования его записей), в правой — список "List commands" — команд над несколькими записями справочника (отмеченными в списковой форме справочника).

Команды можно добавлять Dictionaries_Button_1 или удалять Dictionaries_Button_4 соответствующими кнопками в панели инструментов закладки. При добавлении откроется форма редактирования команды. При удалении команда будет удалена не только из списка, но и из соответствующего справочника команд.

Команды, добавленные через списковые формы соответствующих справочников, автоматически отобразятся в этих списках.

bookmark На закладке "Print forms" находится список печатных форм, используемых для данного справочника:

Dict_EditForm6

В левой части закладки расположен список "Single record" — печатных форм, используемых при печати одной записи справочника (они доступны при печати из формы редактирования записей справочника), в правой — список "Records list" — печатные формы, используемые при печати нескольких записей справочника (отмеченных в его списковой форме).

Печатные формы можно добавлять Dictionaries_Button_1 или удалять Dictionaries_Button_4 соответствующими кнопками в панели инструментов закладки. При добавлении откроется списковая форма справочника печатных форм, в которой можно будет двойным кликом левой кнопки мыши выбрать необходимую печатную форму. При удалении в соответствующей печатной форме для справочника будет снят флаг Assign (сама печатная форма при этом удалена не будет).

Печатные формы, назначенные справочнику из формы редактирования печатных форм, автоматически отобразятся в этих списках.