<?xml version="1.0" encoding="utf-8"?>
<Entity 
Schema="VCLib" 
Name="EXTRA_UI_COMMAND" 
Description="Дополнительная команда пользовательского интерфейса" 
PrimaryKey="ExtraUiCommandID" 
DNAttributes="{Name};{CommandType}" 
DisplayName="{1} - {0}">
  <Fields>
    <Attribute Name="ExtraUiCommandID" Index="990001" Type="guid" Description="Идентификатор" />
    <Attribute Name="Name" Index="990002" Type="string" Description="Наименование" Required="1" />
    <Attribute Name="FilterValue" Index="990003" Type="text" Description="Значение фильтра" />
    <Attribute Name="Context" Index="990004" Type="string" Description="Контекст" />
    <Attribute Name="OpenContext" Index="990005" Type="string" Description="Контекст обработки команды" />
    <Attribute Name="Priority" Index="990006" Type="int" Description="Приоритет отображения" Required="1" />
    <Attribute Name="StyleType" Index="990007" Type="string" Description="Стиль" />
    <Attribute Name="SameObject" Index="990013" Type="bool" Description="Обрабатывать текущий объект" Required="1" />
    <Attribute Name="Instruction" Index="990014" Type="text" Description="Инструкция" />
    <Attribute Name="DisplayAttributes" Index="990018" Type="string" Description="Атрибуты заголовка формы" CharacterMaximumLength="1000" />
    <Attribute Name="RemoteCommandID" Index="990021" Type="string" Description="Идентификатор команды на удаленном сервере" CharacterMaximumLength="36" />
    <Attribute Name="SingleObject" Index="990022" Type="bool" Description="Только для одного объекта" Cashed="1" />
    <Parent Name="Entities" Index="990008" Type="VCLib.ENTITIES" Description="Сущность метаданных" Required="1" />
    <Parent Name="CommandEntity" Index="990009" Type="VCLib.ENTITIES" Description="Сущность обработки команды" Required="1" />
    <Parent Name="Credentials" Index="990019" Type="VCLib.CREDENTIALS" Description="Информация об учетной записи" />
    <Child Name="ExtraUiCommandRoless" Index="990012" Type="VCLib.EXTRA_UI_COMMAND_ROLES" Description="Роли с доступом к дополнительным командам" ChildAttribute="ExtraUiCommand" />
    <Child Name="ExtraUiActionParams" Index="990015" Type="VCLib.EXTRA_UI_ACTION_PARAMS" Description="Параметры процедуры действия" ChildAttribute="ExtraUiCommand" />
    <Choice Name="CommandType" Index="990010" Description="Тип команды" Required="1">
      <Item Name="Фильтр" Index="0" />
      <Item Name="Связанный список" Index="1" />
      <Item Name="Отчет" Index="2" />
      <Item Name="Открыть форму" Index="3" />
      <Item Name="Действие" Index="4" />
      <Item Name="Редактировать" Index="5" />
      <Item Name="Команды модальной формы" Index="6" />
      <Item Name="Отчет(справка)" Index="7" />
    </Choice>
    <Choice Name="ExecutionType" Index="990020" Description="Тип обработки" Required="1">
      <Item Name="Internal" Index="0" />
      <Item Name="External" Index="1" />
    </Choice>
    <Link Name="ExtraTemplate" Index="990011" Type="VCLib.EXTRA_TEMPLATE" Description="Шаблон пользовательских списков" LinkAttribute="ExtraUiCommand" />
    <Choice Name="WayTransferObjects" Description="Способ передачи объектов">
      <Item Name="В виде коллекции объектов" Index="0" />
      <Item Name="В виде одного объекта" Index="1" />
    </Choice>
    <Choice Name="InstructionType" Description="Тип инструкции">
      <Item Name="Хранимая процедура" Index="0" />
      <Item Name="Лексема" Index="1" />
      <Item Name="Серверная лексема" Index="2" />
    </Choice>
    <Attribute Name="ActivationFilter" Type="text" Description="Фильтр активации команды" />
    <Attribute Name="QueryProcessParams" Type="string" Description="Параметры процесса запроса данных" CharacterMaximumLength="1000" />
    <Attribute Name="IsCanRunCommand" Type="bool" Description="Признак возможности запуска команды по фильтру" Required="1" />
    <Attribute Name="IsForceModal" Type="bool" Description="Признак открытия связных списков в отдельном окне" Required="1" />
  </Fields>
  <DbMapping>
    <Table name="T_EXTRA_UI_COMMAND">
      <Map Name="ExtraUiCommandID" Column="ExtraUiCommandID" />
      <Map Name="Name" Column="Name" />
      <Map Name="FilterValue" Column="FilterValue" />
      <Map Name="Context" Column="Context" />
      <Map Name="OpenContext" Column="OpenContext" />
      <Map Name="Priority" Column="Priority" />
      <Map Name="StyleType" Column="StyleType" />
      <Map Name="SameObject" Column="SameObject" />
      <Map Name="Instruction" Column="Instruction" />
      <Map Name="DisplayAttributes" Column="DisplayAttributes" />
      <Map Name="RemoteCommandID" Column="RemoteCommandID" />
      <Map Name="Entities" Column="Entities" />
      <Map Name="CommandEntity" Column="CommandEntity" />
      <Map Name="Credentials" Column="Credentials" />
      <Map Name="CommandType" Column="CommandType" />
      <Map Name="ExecutionType" Column="ExecutionType" />
      <Map Name="WayTransferObjects" Column="WayTransferObjects" />
      <Map Name="InstructionType" Column="InstructionType" />
      <Map Name="ActivationFilter" Column="ActivationFilter" />
      <Map Name="QueryProcessParams" Column="QueryProcessParams" />
      <Map Name="IsCanRunCommand" Column="IsCanRunCommand" />
      <Map Name="IsForceModal" Column="IsForceModal" />
    </Table>
    <Lexem>
      <Map Name="SingleObject">
        <lx:Case xmlns:lx="lexem">
          <When>
            <lx:CriterionChildExists entity="VCLib.EXTRA_UI_ACTION_PARAMS" top="-1">
              <condition>
                <lx:Criterion type="=">
                  <lx:Path OwnerQueryLevel="0">
                    <lx:StepInt index="1020005" />
                  </lx:Path>
                  <lx:ConstOperand type="Boolean">True</lx:ConstOperand>
                </lx:Criterion>
              </condition>
              <lx:Path OwnerQueryLevel="0">
                <lx:StepInt index="990015" />
              </lx:Path>
            </lx:CriterionChildExists>
          </When>
          <Then>
            <lx:ConstOperand type="Boolean">True</lx:ConstOperand>
          </Then>
          <Else>
            <lx:ConstOperand type="Boolean">False</lx:ConstOperand>
          </Else>
        </lx:Case>
      </Map>
    </Lexem>
  </DbMapping>
  <CalculatingAttributes>
    <Attribute Name="ActivationFilterString" Type="string" Description="Строковое представление фильтра активации" RequiredAttributes="{ActivationFilter};{Entities}" />
  </CalculatingAttributes>
</Entity>