<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=OnBeforeSelect</id>
	<title>OnBeforeSelect - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=OnBeforeSelect"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=OnBeforeSelect&amp;action=history"/>
	<updated>2026-04-04T11:37:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://sfsys.ru/index.php?title=OnBeforeSelect&amp;diff=1646&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=OnBeforeSelect&amp;diff=1646&amp;oldid=prev"/>
		<updated>2021-02-07T06:52:11Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 06:52, 7 February 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=OnBeforeSelect&amp;diff=1645&amp;oldid=prev</id>
		<title>Admin at 15:22, 23 August 2020</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=OnBeforeSelect&amp;diff=1645&amp;oldid=prev"/>
		<updated>2020-08-23T15:22:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{infobox function&lt;br /&gt;
|name=OnBeforeSelect&lt;br /&gt;
|object=&lt;br /&gt;
|caption=События таблиц&lt;br /&gt;
|type=1&lt;br /&gt;
|status=2&lt;br /&gt;
|db=0&lt;br /&gt;
|location=Любой глобальный модуль, текущий локальный модуль&lt;br /&gt;
|visual=1}}&lt;br /&gt;
{{HeadLinks|&lt;br /&gt;
* [[Main_Page|Начальная страница]]&lt;br /&gt;
* [[Общее_описание_языка|Общее описание]]&lt;br /&gt;
* [[Предопределенные события]]}}&lt;br /&gt;
&amp;lt;p&amp;gt;Функция вызывается для свободных или встроенных [[Электронная таблица SFT|электронных таблиц]] (TABLE) в момент выбора элемента справочника или документа в объект или ячейку таблицы. Позволяет изменить свойства диалога выбора. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция. Функция вызывается для таблиц в режиме ограниченного редактирования (интерактивном режиме) и только для ячеек (или объектов), которое находятся в процессе редактирования в режиме поля редактирования с наличием связанного элемента _AB_CHOOSE (см. [[Template:AttachedButtonsConstants|таблицу]]), при активацией пользователем этого элемента (или нажатии на ''F4'').&amp;lt;/p&amp;gt;&lt;br /&gt;
Для дополнительной информации см. статьи [[OnBeforeEdit]], [[OnAfterEdit]], [[Электронная таблица SFT]] и [[Студия/Редактор электронных таблиц|Редактор электронных таблиц]], [[Студия/Визуальные события|Визуальные события]].&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
'''OnBeforeSelect'''(''&amp;lt;Вызывающая таблица (TABLE)&amp;gt;'',{{ByRef|''&amp;lt;Метод выбора (INT,OUT)&amp;gt;''}},{{ByRef|''&amp;lt;Наименование журнала (STRING,OUT)&amp;gt;''}},{{ByRef|''&amp;lt;Наименование модуля (STRING,OUT)&amp;gt;''}},{{ByRef|''&amp;lt;Наименование формы (STRING,OUT)&amp;gt;''}},{{ByRef|''&amp;lt;Параметр вызова (OUT)&amp;gt;''}},{{ByRef|''&amp;lt;Опция вызова (OUT)&amp;gt;''}},{{ByRef|''&amp;lt;Фильтры таблицы выбора (LIST,OUT)&amp;gt;''}},{{ByRef|''&amp;lt;Порядок сортировки (STRING,OUT)&amp;gt;''}},{{ByRef|''&amp;lt;Столбцы таблицы выбора (STRING,OUT)&amp;gt;''}},{{ByRef|''&amp;lt;Список подстановки в таблицу вызова (LIST,OUT)&amp;gt;''}}):&amp;lt;Запретить выбор (INT)&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
==== Аргументы ====&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Вызывающая таблица (TABLE)&amp;gt;''&amp;lt;/code&amp;gt; - Таблица, для которой произведена попытка открытия редактируемого объекта.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Метод выбора (INT,OUT)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} 0 -- выбор будет происходить в виде выпадающей таблицы, встраиваемой к выбранному реквизиту, 1 -- в виде формы (вызываемой в модальном режиме, см. [[LoadModule]])&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Наименование журнала (STRING,OUT)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} Выбор может объекта может происходить как в форме списка объекта, так и в журнале, который включает объекты разных видов. Для выбора объекта из журнала, здесь указывается наименование журнала. Параметр используется при выборе методом 1.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Наименование модуля (STRING,OUT)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} Наименование модуля при отображении формы выбора. Параметр инициализируется модулем по умолчанию, ассоциированным с объектом редактирования. При выборе в журнале должен содержать имя модуля журнала. Параметр используется при выборе методом 1.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Наименование формы (STRING,OUT)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} Наименование формы при отображении формы выбора. Параметр инициализируется формой по умолчанию, ассоциированной с объектом редактирования. При выборе в журнале должен содержать имя формы журнала. Параметр используется при выборе методом 1.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Параметр вызова (OUT)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} Произвольное значение, которое будет доступно в форме выбора объекта в виде переменной '''Param'''. Для справочников с родителями, рекомендуется передавать значение родителя в этом параметре. Параметр используется при выборе методом 1.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Опция вызова (OUT)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} Произвольное значение, которое будет доступно в редактируемом объекте в виде переменной '''Option'''. Параметр используется при выборе методом 1.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Фильтры таблицы выбора (LIST,OUT)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} Список, по которому будет происходить фильтрация таблицы, при этом заголовки элементов списка будут использоваться, как идентификаторы реквизитов фильтра (см. [[Стандартные фильтры]], только простой режим). Пример использования фильтров ищите ниже. Параметр используется при выборе методом 0.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Порядок сортировки (STRING,OUT)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} Строка порядка сортировки таблицы, представляет собой перечисление реквизитов, по которым будет сортироваться таблица, разделенных запятой со знаками ''+'' или ''-'' для указания порядка сортировки. Пример использования сортировки ищите ниже. Параметр используется при выборе методом 0.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Столбцы таблицы выбора (STRING,OUT)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} Идентификаторы реквизитов через запятую, которые будут выведены в столбцы таблицы. По умолчанию встраиваемая таблица для выбора содержит только один столбец с представлением элементов, здесь можно задать другие столбцы (наименования столбцов задаются через запятую). Пример использования ищите ниже. Параметр используется при выборе методом 0.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Список подстановки в таблицу вызова (LIST,OUT)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} Список с элементами, при заполнении которого в таблице будут отображаться только данные элементы списка, запрос к базе данных произведен не будет, а аргументы ''Фильтры таблицы выбора'', ''Порядок сортировки'' и ''Столбцы таблицы выбора'' будут проигнорированы. Параметр используется при выборе методом 0.&lt;br /&gt;
&lt;br /&gt;
==== Возвращаемое значение ====&lt;br /&gt;
Если функция возвратит ноль (ответ по умолчанию), действие будет разрешено (будет открыта форма выбора, либо показана выпадащая таблица для выбора), иначе действие будет отменено.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Переменная для временного хранения значения ячейки редактирования&lt;br /&gt;
Var спРедактируемоеЗначение Export;&lt;br /&gt;
&lt;br /&gt;
Function OnBeforeEdit(SourceTable,EditMode,ObjectType,ObjectIndex,Line,Column,AttButtons,EditValue,EditMask)&lt;br /&gt;
  ...&lt;br /&gt;
  //Сохранить значение ячейки, так как оно будет утеряно после редактирования&lt;br /&gt;
  спРедактируемоеЗначение :=SourceTable.Area(Column,Line,Column,Line).Value;&lt;br /&gt;
  ...&lt;br /&gt;
EndFunction&lt;br /&gt;
&lt;br /&gt;
Function OnBeforeSelect(SourceTable,ByRef Method,ByRef Journal,ByRef Module,ByRef FormName,ByRef Param,ByRef Option,ByRef Filters,ByRef SortOrder,ByRef Columns,ByRef CustomSelectList)&lt;br /&gt;
  Result:=1;&lt;br /&gt;
  if typeStr(спРедактируемоеЗначение )&amp;lt;&amp;gt;&amp;quot;LIST&amp;quot; Then&lt;br /&gt;
    //Если значение не является списком, не разрешать редактирование&lt;br /&gt;
    Exit;&lt;br /&gt;
  EndIf;&lt;br /&gt;
  if isEmpty(спРедактируемоеЗначение.GetByName(&amp;quot;Индекс&amp;quot;)) Then&lt;br /&gt;
    //Если в списке отсутствует элемент с именем &amp;quot;Индекс&amp;quot;, не разрешать редактирование&lt;br /&gt;
    Exit;&lt;br /&gt;
  EndIf;&lt;br /&gt;
  //Необходимо выбрать партию номенклатуры, выбор будет производиться в виде выпадающей таблицы&lt;br /&gt;
  Method:=0;&lt;br /&gt;
  //В фильтрах укажем родителя и скроем удаленные элементы&lt;br /&gt;
  Filters:=List.Create();&lt;br /&gt;
  Filters.SetByName(&amp;quot;@Parent&amp;quot;,спРедактируемоеЗначение.GetByName(&amp;quot;Номенклатура&amp;quot;));&lt;br /&gt;
  Filters.SetByName(&amp;quot;@Status&amp;quot;,0);&lt;br /&gt;
  //Сортировка будет производиться по дате партии&lt;br /&gt;
  SortOrder:=&amp;quot;ДатаПартии+&amp;quot;;&lt;br /&gt;
  //В таблице будут присутствовать дополнительные столбики (код и дата партии)&lt;br /&gt;
  Columns:=&amp;quot;Code,ДатаПартии,Name&amp;quot;&lt;br /&gt;
  //Разрешить открытие таблицы выбора&lt;br /&gt;
  Result:=0;&lt;br /&gt;
  Exit;&lt;br /&gt;
EndFunction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>