<?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=OnBeforeEdit</id>
	<title>OnBeforeEdit - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=OnBeforeEdit"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=OnBeforeEdit&amp;action=history"/>
	<updated>2026-04-04T19:56:09Z</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=OnBeforeEdit&amp;diff=1640&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=OnBeforeEdit&amp;diff=1640&amp;oldid=prev"/>
		<updated>2021-02-07T06:52:10Z</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=OnBeforeEdit&amp;diff=1639&amp;oldid=prev</id>
		<title>Admin at 08:09, 28 January 2021</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=OnBeforeEdit&amp;diff=1639&amp;oldid=prev"/>
		<updated>2021-01-28T08:09:44Z</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=OnBeforeEdit&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) до начала редактирования ячейки или объекта таблицы. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция. Функция вызывается для таблиц в режиме ограниченного редактирования (интерактивном режиме) и только для ячеек (или объектов), для которых не установлена галка &amp;quot;защита редактирования&amp;quot;, таким образом отсекаются не подлежающие редактированию ячейки (объекты). Функция не будет вызвана для таблиц, которые находятся в режиме обычного редактирования (изменения свойств ячеек, текста, цветов и пр.), и для таблиц находящихся в режиме просмотра (особый режим с запретом сохранения таблиц на диск). Редактирование обычно инициируется пользователем, используя двойной клик мыши по ячейке или объекту или при нажатии клавиши ''Enter''.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Редактирование может происходить двумя способами. Первый способ, это встроенный SFT редактор, который используется для создания и изменения таблиц в режиме редактирования. Этот способ позволяет редактировать ячейку только как текст. Второй способ имеет все возможности обычного поля редактирования, такие как маска, связанные элементы, выбор объектов и прочее.&amp;lt;/p&amp;gt;&lt;br /&gt;
Для дополнительной информации см. статьи [[Электронная таблица SFT]] и [[Студия/Редактор электронных таблиц|Редактор электронных таблиц]]&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
'''OnBeforeEdit'''(''&amp;lt;Вызывающая таблица (TABLE)&amp;gt;'',{{ByRef|&amp;lt;Режим редактирования (INT,OUT)&amp;gt;}},''&amp;lt;Тип объекта (INT)&amp;gt;'',''&amp;lt;Индекс объекта (INT)&amp;gt;'',''&amp;lt;Строка (INT)&amp;gt;'',''&amp;lt;Столбец (INT)&amp;gt;'',{{ByRef|&amp;lt;Связанные элементы (STRING,OUT)&amp;gt;}},{{ByRef|&amp;lt;Значение для редактирования (OUT)&amp;gt;}},{{ByRef|&amp;lt;Маска для редактирования (STRING,OUT)&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 -- использовать встроенный (текстовый) редактор SFT, 1 -- использовать редактор с возможностями поля редактирования, 2 -- запретить редактирование.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Тип объекта (INT)&amp;gt;''&amp;lt;/code&amp;gt; - '''-1''', если редактируется ячейка, иначе цифровой тип объекта, для которого инициирована попытка редактирования. Текущие типы объектов:&lt;br /&gt;
** '''-1''' -- ячейка таблицы&lt;br /&gt;
** '''0''' -- линия (редактирование для данного объекта не осуществляется)&lt;br /&gt;
** '''1''' -- прямоугольник&lt;br /&gt;
** '''2''' -- картинка&lt;br /&gt;
** '''3''' -- OLE-объект&lt;br /&gt;
** '''4''' -- диаграмма&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Индекс объекта (INT)&amp;gt;''&amp;lt;/code&amp;gt; - Индекс объекта таблицы, для которого инициирован режим редактирования, если редактируется ячейка, данный параметр принимает значение '''-1'''.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Строка (INT)&amp;gt;''&amp;lt;/code&amp;gt; - Строка таблицы ячейки редактирования, если редактируется объект, данный параметр принимает значение '''-1'''.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Столбец (INT)&amp;gt;''&amp;lt;/code&amp;gt; - Столбец таблицы ячейки редактирования, если редактируется объект, данный параметр принимает значение '''-1'''.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Связанные элементы (STRING,OUT)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} Связанные элементы, ассоциированные с полем редактирования, если редактирование будет производиться в режиме 1. Параметр представляет собой строку с перечислением через запятую индексов связанных элементов. К примеру &amp;lt;code&amp;gt;&amp;quot;&amp;quot;+_AB_CHOOSE+&amp;quot;,&amp;quot;+_AB_CLEAR+&amp;quot;,&amp;quot;+_AB_HELP&amp;lt;/code&amp;gt; (см. [[Template:AttachedButtonsConstants|список значений констант связанных элементов]]).&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Значение для редактирования (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. Маска может быть стандартной маской (см. [[Tab.Column.Mask]]), однако для чисел подобная стандартная маска неудобна, поэтому можно задать специальную числовую маску в виде &amp;lt;code&amp;gt;&amp;quot;!&amp;lt;Цифр в числе&amp;gt;.&amp;lt;Цифр в мантиссе&amp;gt;&amp;quot;&amp;lt;/code&amp;gt; (к примеру &amp;quot;!15.3&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Function OnBeforeEdit(SourceTable,EditMode,ObjectType,ObjectIndex,Line,Column,AttButtons,EditValue,EditMask)&lt;br /&gt;
  //Запретить редактировать по умолчанию&lt;br /&gt;
  EditMode:=2;&lt;br /&gt;
  If ObjectType&amp;lt;&amp;gt;-1 Then&lt;br /&gt;
    //Редактирование не производится для объектов&lt;br /&gt;
    Exit;&lt;br /&gt;
  EndIf;&lt;br /&gt;
  //Получить значение ячейки таблицы (в отличие от ее видимого текста, значение может содержать произвольный объект и не видно пользователю)&lt;br /&gt;
  aList:=SourceTable.Area(Column,Line,Column,Line).Value;&lt;br /&gt;
  if typeStr(aList)&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(aList.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;
  EditValue:=Number(Replace(Replace(SourceTable.Area(Column,Line,Column,Line).Text,&amp;quot;'&amp;quot;,&amp;quot;&amp;quot;),&amp;quot; &amp;quot;,&amp;quot;&amp;quot;));&lt;br /&gt;
  //Производится редактирование в режиме расширенного редактора&lt;br /&gt;
  EditMode:=1;&lt;br /&gt;
  //При рекдатировани использовать редактор числа с двумя знаками после десятичной точки&lt;br /&gt;
  EditMask:=&amp;quot;!10.2&amp;quot;;&lt;br /&gt;
  //Добавить связанный элемент (кнопку) с иконкой калькулятора, которая автоматически будет вызывать калькулятор для помощи в редактировании числового поля&lt;br /&gt;
  AttButtons:=&amp;quot;&amp;quot;+_AB_CALC;&lt;br /&gt;
EndFunction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>