Свойства и методы

Размещение событий:

Модуль менеджера

- Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)

Метод ДокументОбъект.ОбработкаПроверкиЗаполнения

Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи или при проведении документа в форме, а также при выполнении метода ПроверитьЗаполнение.

Если для документа при конфигурировании свойство Проведение установлено в Разрешить, то вызывается только при проведении.

Если документ не проводится (установлено Запретить), то вызывается при записи.

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

Размещается в модуле объекта.

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

Если ПодразделениеОрганизации.Пустая() Тогда

ТекстСообщения = ОбщегоНазначенияБПКлиентСервер.ПолучитьТекстСообщения("Поле", "Заполнение", "Подразделение ");

ОбщегоНазначенияКлиентСервер.СообщитьПользователю(

ТекстСообщения,

ЭтотОбъект,

"ПодразделениеОрганизации",

"Объект",

Отказ);

КонецЕсли;

Для каждого СтрокаПлатежа Из РасшифровкаПлатежа Цикл

Если НЕ ЗначениеЗаполнено(СтрокаПлатежа.СтатьяДвиженияДенежныхСредств) Тогда

ТекстСообщения = ОбщегоНазначенияБПКлиентСервер.ПолучитьТекстСообщения(

"Колонка",

"Заполнение",

"Статья движения ден. средств",

СтрокаПлатежа.НомерСтроки,

НСтр("ru = 'Расшифровка платежа'"));

Поле = "РасшифровкаПлатежа[" + Формат((СтрокаПлатежа.НомерСтроки - 1), "ЧН=; ЧГ=")+ "].СтатьяДвиженияДенежныхСредств";

ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, Поле, "Объект", Отказ);

КонецЕсли;

КонецЦикла;

КонецПроцедуры

Свойство основного реквизита "Сохраняемые данные"

Порядок вызова формой методов полей ввода:

При создании нового элемента

    1. Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) модуль объекта

    2. Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) модуль формы

При редактировании:

    1. НачалоВыбора

    2. ПриИзменении

Пример: в НачалоВыбора определяются параметры выбора, затем выбирается тип документа, а т.к. выбор типа изменил поле - запускается ПриИзменении, где обрабатывется ланный тип, например открыть с параметрами форму для выбора документа

Свойство поля редактирования "ПараметрыВыбора"

Пример:

Поле "ВыданныеАвансыДокументАванса" сначало выбирается тип поля (тип документа), а затем сам документ

&НаКлиенте

Процедура ВыданныеАвансыДокументАвансаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

СтрокаТаблицы = Элементы.ВыданныеАвансы.ТекущиеДанные;

Если СтрокаТаблицы.ДокументАванса <> Неопределено Тогда

МассивПараметров = Новый Массив();

НовыйПараметр = Новый ПараметрВыбора("Отбор.Организация", Объект.Организация);

МассивПараметров.Добавить(НовыйПараметр);

НовыйПараметр = Новый ПараметрВыбора("Отбор.ВалютаДокумента", Объект.ВалютаДокумента);

МассивПараметров.Добавить(НовыйПараметр);

Если ТипЗнч(СтрокаТаблицы.ДокументАванса) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда

Если ЗначениеЗаполнено(Объект.ФизЛицо) Тогда

НовыйПараметр = Новый ПараметрВыбора("Отбор.Контрагент", Объект.ФизЛицо);

МассивПараметров.Добавить(НовыйПараметр);

НовыйПараметр = Новый ПараметрВыбора("Отбор.ВидОперации",

ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВыдачаПодотчетномуЛицу"));

МассивПараметров.Добавить(НовыйПараметр);

КонецЕсли;

ИначеЕсли ТипЗнч(СтрокаТаблицы.ДокументАванса) = Тип("ДокументСсылка.СписаниеСРасчетногоСчета") Тогда

Если ЗначениеЗаполнено(Объект.ФизЛицо) Тогда

НовыйПараметр = Новый ПараметрВыбора("Отбор.ФизЛицо", Объект.ФизЛицо);

МассивПараметров.Добавить(НовыйПараметр);

НовыйПараметр = Новый ПараметрВыбора("Отбор.ВидОперации",

ПредопределенноеЗначение("Перечисление.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеПодотчетномуЛицу"));

МассивПараметров.Добавить(НовыйПараметр);

КонецЕсли;

ИначеЕсли ТипЗнч(СтрокаТаблицы.ДокументАванса) = Тип("ДокументСсылка.ВыдачаДенежныхДокументов") Тогда

Если ЗначениеЗаполнено(Объект.ФизЛицо) Тогда

НовыйПараметр = Новый ПараметрВыбора("Отбор.Контрагент", Объект.ФизЛицо);

МассивПараметров.Добавить(НовыйПараметр);

КонецЕсли;

НовыйПараметр = Новый ПараметрВыбора("Отбор.ВидОперации",

ПредопределенноеЗначение("Перечисление.ВидыОперацийВыдачаДенежныхДокументов.ВыдачаПодотчетномуЛицу"));

МассивПараметров.Добавить(НовыйПараметр);

КонецЕсли;

Элементы.ВыданныеАвансыДокументАванса.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);

КонецЕсли;

КонецПроцедуры