Возникает на клиенте перед выполнением записи объекта из формы. Процедура-обработчик данного события вызывается перед вызовом процедуры-обработчика события ПередЗаписью объекта.
Синтаксис
ПередЗаписью(<Отказ>, <ПараметрыЗаписи>)Полное описание, параметры и ограничения
Расширение формы клиентского приложения для набора записей.ПередЗаписью (Managed form extension for record set.BeforeWrite)
Расширение формы клиентского приложения для набора записей (Managed form extension for record set)
ПередЗаписью (BeforeWrite)
Доступен, начиная с версии 8.2.
Синтаксис:
ПередЗаписью(<Отказ>, <ПараметрыЗаписи>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от записи. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись произведена не будет.
Значение по умолчанию: Ложь.
<ПараметрыЗаписи>
Тип: Структура.
Структура, содержащая параметры записи.
Описание:
Возникает на клиенте перед выполнением записи объекта из формы. Процедура-обработчик данного события вызывается перед вызовом процедуры-обработчика события ПередЗаписью объекта.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент).
Примечание:
В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере, а также изменять свойства, которые могут привести к серверному вызову.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Разобрать ПередЗаписью на собственном управляемом наборе
Форма относится к конкретному собственному регистру, открывается с документированным параметром Отбор и работает только со своим новым UUID-ключом.
Где и как запускать
Модуль настоящей управляемой формы УчебныйНабор собственного независимого регистра сведений; точная клиентская / серверная директива указана в коде.
Подготовка
В отдельной учебной конфигурации создайте свой независимый непериодический регистр сведений УчебныеНаборыФормы: измерение Ключ (Строка 40, Основной отбор Истина), ресурс Количество (Число 12.2 со знаком).
Мастером создайте у этого регистра именно управляемую форму набора записей УчебныйНабор, сохранив её настоящий основной реквизит и таблицу строк. Не заменяйте её формой записи или произвольной общей формой.
В УчебныйНабор добавьте реквизиты РазрешитьЗапись и ОтменитьВТранзакции (Булево), СчетчикСобытий (Число 10.0), СтатусУрока (Строка 200), выведите их на форму. Отдельный инициализатор относится к этой форме.
В своей внешней обработке с управляемой формой создайте команду ОткрытьСвойНабор. Дополнительный блок открытия и серверной подготовки поместите только в её модуль; он создаёт свою запись и передаёт форме настоящий параметр Отбор.
Открывайте форму только этой командой. Новый UUID-ключ ограничивает набор одной собственной записью; не открывайте без отбора рабочий регистр и не подставляйте чужое имя.
В свойствах самой формы УчебныйНабор назначьте событие ПередЗаписью основному обработчику. Элемент в эту сигнатуру не добавляется.
Измените только собственную строку и используйте стандартную команду Записать. Для события чтения достаточно открыть форму указанной командой. Каждый урок самостоятельный: остальные учебные события не обязательны.
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если Не РазрешитьЗапись Тогда
Отказ = Истина;
Сообщить("Для своей учебной записи установите флажок РазрешитьЗапись");
Возврат;
КонецЕсли;
ПараметрыЗаписи.Вставить("УчебнаяЗапись", Истина);
КонецПроцедурыОтдельная форма своей обработки: подготовить запись и открыть свой набор с отбором
&НаКлиенте
Процедура ОткрытьСвойНабор(Команда)
СвойКлюч = ПодготовитьСвойНабор();
ОтборНабора = Новый Структура("Ключ", СвойКлюч);
ПараметрыОткрытия = Новый Структура("Отбор", ОтборНабора);
ОткрытьФорму("РегистрСведений.УчебныеНаборыФормы.Форма.УчебныйНабор", ПараметрыОткрытия);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПодготовитьСвойНабор()
СвойКлюч = Строка(Новый УникальныйИдентификатор);
Набор = РегистрыСведений.УчебныеНаборыФормы.СоздатьНаборЗаписей();
Набор.Отбор.Ключ.Установить(СвойКлюч);
Запись = Набор.Добавить();
Запись.Ключ = СвойКлюч;
Запись.Количество = 3;
Набор.Записать();
Возврат СвойКлюч;
КонецФункцииФорма УчебныйНабор: инициализация собственных учебных реквизитов
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РазрешитьЗапись = Ложь;
ОтменитьВТранзакции = Ложь;
СчетчикСобытий = 0;
СтатусУрока = "Свой набор открыт по уникальному ключу";
КонецПроцедурыРазбор по шагам
Создаём собственный регистр и настоящую управляемую форму набора мастером.
Отдельная обработка создаёт одну свою строку и открывает форму с нужным отбором.
Выполняем указанную команду / действие и различаем чтение, отказ до транзакции, событие внутри и событие после транзакции.
Как проверить результат
Без флажка запись отменена до сервера; после установки флажка повторное нажатие разрешает продолжение.
Это учебное подтверждение формы, не замена проверки прав или серверной валидации. Серверные методы в этом клиентском событии не вызываются.
Ожидаемый результат
Метод / событие показано на собственном реально открываемом наборе с точным контекстом и ограниченным отбором.
На что обратить внимание
Запись набора с пустым отбором опасна: урок открывает только свой набор по новому уникальному Ключ.
Форма записи, форма набора записей и произвольная общая форма не имеют одинакового расширения.
Код 1С при сборке HTML не исполнялся; учебные и рабочие записи агентом не менялись.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.