Студия/OnBeforeSelect

From SunFlurry wiki
Revision as of 08:55, 7 February 2021 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  OnBeforeSelect (Визуальные события)
Применимость:Редактируемое поле, Список значений, Таблица значений, Внедренная электронная таблица
Тип события:Прерывающее
Статус разработки: Реализована

Событие, возникающее в момент выбора элемента справочника или документа в реквизит диалога или ячейку таблицы (к примеру, при нажатии на связанный элемент ".."). Позволяет изменить свойства диалога выбора, который может быть представлен выпадающей таблицей или отдельным окном. Также можно отказаться от использования стандартной обработки выбора и осуществить выбор внутри программы обработчика. Для встроенных электронных таблиц, если данное событие не задано, будет вызвана функция OnBeforeSelect. Событие, к примеру, удобно использовать, когда в форме необходимо выбрать элемент справочника, являющийся подчиненным другому элементу. Событие проверит заполненность элемента-родителя и подставит его в форме выбора.

Аргументы

  • <Method (INT)> - (возможен аргумент-переменная (ByRef)) Переменная задает способ выбора объекта в поле. Она будет заполнена по умолчанию в зависимости от установок поля и объекта, выбор которого производится. Возможны следующие значения переменной:
    • 0 -- выбор будет производиться с помощью выпадающей таблицы, помещенной снизу поля редактирования. В случае использования данного способа выбора, система будет использовать только переменные Filters, SortOrder, Columns, CustomSelectList и Result. Значения остальных переменные будет проигнорировано.
    • 1 -- выбор будет производиться с помощью отдельной формы, вызываемой в модальном режиме. В случае использования данного способа выбора, система будет использовать только переменные Journal, Module, FormName, OutParam, OutOption, Flags и Result. Значения остальных переменные будет проигнорировано.
  • <Result (INT)> - (возможен аргумент-переменная (ByRef)) Переменная результата может принимать значения:
    • 0 (по умолчанию) -- Разрешить открытие диалога выбора в соответствии с указанными параметрами.
    • 1 -- Запретить открытие диалога выбора.
  • Переменные, используемые в режиме 0 (выпадающая таблица):
    • <Filters (LIST)> - (возможен аргумент-переменная (ByRef)) Список, содержащий простые фильтры таблицы. Каждое наименование элемента списка должно содержать имя реквизита или особого реквизита с префиксом операции (см. Стандартные фильтры, только простой режим). Каждое значения элемента является значением фильтра.
    • <SortOrder (STRING)> - (возможен аргумент-переменная (ByRef)) Строка, содержащая наименования реквизитов, через запятые с указанием направления сортировки (см. UseOrder), которая будет использована как порядок сортировки выводимой таблицы.
    • <Columns (STRING)> - (возможен аргумент-переменная (ByRef)) Строка, содержащая наименования реквизитов, которые будут выведены в таблицу. По умолчанию, система подбирает реквизит сортировки. Столбец со стандартной иконкой будет присутствовать всегда.
    • <CustomSelectList (LIST)> - (возможен аргумент-переменная (ByRef)) Список, при заполнении которого в таблице будут отображаться только указанные в нем элементы, а переменные Filters, SortOrder и Columns будут проигнорированы
  • Переменные, используемые в режиме 1 (выбор отдельной формой):
    • <Journal (STRING)>, <Module (STRING)>, <FormName (STRING)> - (возможен аргумент-переменная (ByRef)) Переменные задают наименование журнала и имена модуля и формы. Если журнал является пустой строкой, то будут использованы модуль и форма, находящиеся по текущему пути (см. также LoadModule).
    • <OutParam>, <OutOption> - (возможен аргумент-переменная (ByRef)) Переменные задают дополнительные параметры, передающиеся в загружаемую форму (см. также LoadModule).
    • <Flags (INT)> - (возможен аргумент-переменная (ByRef)) Переменная задает дополнительные флаги, используемые при выборе объекта. Переменная является битовой маской и по умолчанию принимает значение 0. Доступны следующие биты (см. SelectObject):
      • бит 0: установить флаг выбора папок на таблице выбора (т.е., можно будет выбирать не только элементы, но и папки).
      • бит 1: флаг форсирует выбор родителя справочника до начала выбора элемента, если справочник имеет родителей.

Примеры

//Выбор элемента справочника вида Договоры, подчиненного справочнику Контрагенты, который уже должен быть выбран в поле "Контрагент"
aEl:=Form.Object;
If aEl.Контрагент.Selected()=0 Then
  //Поле "Контрагент" пусто, не разрешать выбор
  Result:=1;
  Exit;
EndIf;
//Изменить первый параметр выбора на значение поля "Контрагент", обычно форма выбора использует параметр для задания элемента-родителя.
OutParam:=aEl.Контрагент;