Типы документов

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

Documents1_ListForm

Записи справочника можно фильтровать по Названию типа документа (System name).

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

Dict_scr_ListForm_Captions

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

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

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

Documents2_EditForm

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

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

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

Documents3_SQLscript

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

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

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

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

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

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

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

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

Dict_scr_EventScript

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

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

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

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

RenameMetadataObjects

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

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

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

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

GuidControl_HowDoesItWork

Cloneable — флажок, разрешающий системную команду клонирования документа (в справочниках клонирование записей всегда доступно, для документов — требуется явное разрешение).

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

Table name — название таблицы типа документа;

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

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

Documents2_EditForm_rename

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

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 — теги, используемые для описания функционала типа документа. Используются для поиска объектов, реализованных под определенный функционал, ассоциированный с этим тегом.

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

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

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

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

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

Documents4_EditForm_prop

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

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

Name — название;

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

DB 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) — флаг, указывающий что свойство является ссылкой на справочник или документ;

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

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

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

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

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

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

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

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

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

В списке Lookup properties могут быть перечислены как свойства самого документа, так и свойства справочников, на которые данный документ ссылается посредством свойств-ссылок. В примере выше — это свойство OrderDate типа документа Order и свойства Name справочников Agent, DocumentType и DocumentSubtype указанные в формате Название справочника.Название свойства.

Documents4_EditForm_Lookup

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

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

Documents5_EditForm_TB

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

Каждая табличная часть имеет:

Name — название;

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

Table part type — непосредственно табличная часть, форму редактирования которой можно открыть по нажатию на кнопку PrintForms_scr_DictEditForm1_But1 в элементе управления;

Cloneable — флажок, означающий, что содержимое табличной части документа будет скопировано во время операции клонирования. Флажок учитывается, только если клонирование для данного типа документа разрешено флажком Cloneable на закладке Main.

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

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

Перед тем, как добавить табличную часть в тип документа, ее необходимо создать (см. главу Табличные части). Добавленная табличная часть будет доступна в форме редактирования документа этого типа на отдельной закладке с названием, соответствующим свойству Localized name:

Documents5_EditForm_TB_example

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

Documents6_EditForm_SubTypes

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

Каждый подтип имеет:

Name — системное название. Для каждого подтипа документа при сохранении генерируется константа с аналогичным названием;

Initial subtype — начальный подтип документа. При создании нового документа в списковой форме документов пользователю будет предложено выбрать подтип создаваемого документа среди помеченных этим флагом подтипов. Если указан один начальный подтип — он будет выбран при создании документа автоматически.

35_important

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

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

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

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

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

Document print formsсписок печатных форм, используемых для данного подтипа документа.

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

Печатная форма открывается в форме редактирования по двойному клику левой кнопкой мыши на нее в списке;

Document commands список команд, доступных для данного подтипа документа.

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

Команда открывается в форме редактирования по двойному клику левой кнопкой мыши на нее в списке.

bookmark На закладке "Transactions" находится список транзакционных скриптов данного типа документа, формирующих движения по итогам:

Documents7_EditForm_Transactions

Для каждого подтипа документа необходимо указать, какие транзакционные скрипты будут выполняться при сохранении документа. Скрипты выбираются из общего списка скриптов, привязанных к данному типу.

Закладка разделена на два части:

в левой в выпадающем списке Document subtype наверху перечислены подтипы документа. В списке Check transaction scripts внизу перечислены все доступные транзакционные скрипты и флагами отмечены те, которые будут выполняться при сохранении документа в выбранном в списке Document subtype подтипе.

добавить новые транзакционные скрипты можно здесь же по клику по ссылке Add a new script:

Documents7_EditForm_TransactionsAdd

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

переименовать скрипт, можно кликнув левой кнопкой мыши по его названию;

открыть скрипт в форме редактирования можно нажатием на кнопку PrintForms_scr_DictEditForm1_But3 справа от его названия;

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

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

При двойном клике левой кнопкой мыши по названию уже созданного скрипта в области Preview произойдет открытие формы редактирования скрипта.

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

Documents8_EditForm_PrintForms

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

Печатная форма открывается в форме редактирования по двойному клику левой кнопкой мыши на нее в списке.

bookmark На закладке "Record list commands" находится список команд, доступных из списковой формы документов данного типа:

Documents9_EditForm_Commands

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

Команда открывается в форме редактирования по двойному клику левой кнопкой мыши на нее в списке.