Свойства и методы
Размещение событий:
Модуль менеджера
- Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Метод ДокументОбъект.ОбработкаПроверкиЗаполнения
Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи или при проведении документа в форме, а также при выполнении метода ПроверитьЗаполнение.
Если для документа при конфигурировании свойство Проведение установлено в Разрешить, то вызывается только при проведении.
Если документ не проводится (установлено Запретить), то вызывается при записи.
Позволяет разработчику конфигурации самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана.
Размещается в модуле объекта.
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если ПодразделениеОрганизации.Пустая() Тогда
ТекстСообщения = ОбщегоНазначенияБПКлиентСервер.ПолучитьТекстСообщения("Поле", "Заполнение", "Подразделение ");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
ТекстСообщения,
ЭтотОбъект,
"ПодразделениеОрганизации",
"Объект",
Отказ);
КонецЕсли;
Для каждого СтрокаПлатежа Из РасшифровкаПлатежа Цикл
Если НЕ ЗначениеЗаполнено(СтрокаПлатежа.СтатьяДвиженияДенежныхСредств) Тогда
ТекстСообщения = ОбщегоНазначенияБПКлиентСервер.ПолучитьТекстСообщения(
"Колонка",
"Заполнение",
"Статья движения ден. средств",
СтрокаПлатежа.НомерСтроки,
НСтр("ru = 'Расшифровка платежа'"));
Поле = "РасшифровкаПлатежа[" + Формат((СтрокаПлатежа.НомерСтроки - 1), "ЧН=; ЧГ=")+ "].СтатьяДвиженияДенежныхСредств";
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, Поле, "Объект", Отказ);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Свойство основного реквизита "Сохраняемые данные"
Порядок вызова формой методов полей ввода:
При создании нового элемента
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) модуль объекта
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) модуль формы
При редактировании:
НачалоВыбора
ПриИзменении
Пример: в НачалоВыбора определяются параметры выбора, затем выбирается тип документа, а т.к. выбор типа изменил поле - запускается ПриИзменении, где обрабатывется ланный тип, например открыть с параметрами форму для выбора документа
Свойство поля редактирования "ПараметрыВыбора"
Пример:
Поле "ВыданныеАвансыДокументАванса" сначало выбирается тип поля (тип документа), а затем сам документ
&НаКлиенте
Процедура ВыданныеАвансыДокументАвансаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтрокаТаблицы = Элементы.ВыданныеАвансы.ТекущиеДанные;
Если СтрокаТаблицы.ДокументАванса <> Неопределено Тогда
МассивПараметров = Новый Массив();
НовыйПараметр = Новый ПараметрВыбора("Отбор.Организация", Объект.Организация);
МассивПараметров.Добавить(НовыйПараметр);
НовыйПараметр = Новый ПараметрВыбора("Отбор.ВалютаДокумента", Объект.ВалютаДокумента);
МассивПараметров.Добавить(НовыйПараметр);
Если ТипЗнч(СтрокаТаблицы.ДокументАванса) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда
Если ЗначениеЗаполнено(Объект.ФизЛицо) Тогда
НовыйПараметр = Новый ПараметрВыбора("Отбор.Контрагент", Объект.ФизЛицо);
МассивПараметров.Добавить(НовыйПараметр);
НовыйПараметр = Новый ПараметрВыбора("Отбор.ВидОперации",
ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВыдачаПодотчетномуЛицу"));
МассивПараметров.Добавить(НовыйПараметр);
КонецЕсли;
ИначеЕсли ТипЗнч(СтрокаТаблицы.ДокументАванса) = Тип("ДокументСсылка.СписаниеСРасчетногоСчета") Тогда
Если ЗначениеЗаполнено(Объект.ФизЛицо) Тогда
НовыйПараметр = Новый ПараметрВыбора("Отбор.ФизЛицо", Объект.ФизЛицо);
МассивПараметров.Добавить(НовыйПараметр);
НовыйПараметр = Новый ПараметрВыбора("Отбор.ВидОперации",
ПредопределенноеЗначение("Перечисление.ВидыОперацийСписаниеДенежныхСредств.ПеречислениеПодотчетномуЛицу"));
МассивПараметров.Добавить(НовыйПараметр);
КонецЕсли;
ИначеЕсли ТипЗнч(СтрокаТаблицы.ДокументАванса) = Тип("ДокументСсылка.ВыдачаДенежныхДокументов") Тогда
Если ЗначениеЗаполнено(Объект.ФизЛицо) Тогда
НовыйПараметр = Новый ПараметрВыбора("Отбор.Контрагент", Объект.ФизЛицо);
МассивПараметров.Добавить(НовыйПараметр);
КонецЕсли;
НовыйПараметр = Новый ПараметрВыбора("Отбор.ВидОперации",
ПредопределенноеЗначение("Перечисление.ВидыОперацийВыдачаДенежныхДокументов.ВыдачаПодотчетномуЛицу"));
МассивПараметров.Добавить(НовыйПараметр);
КонецЕсли;
Элементы.ВыданныеАвансыДокументАванса.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
КонецЕсли;
КонецПроцедуры