1С-Предприятие 8.0. Практическое пособие разработчика


         

Чтобы предусмотреть возможность синхронизации периода


Чтобы предусмотреть возможность синхронизации периода движений документа с датой документа и в случае программной записи объекта Документ, следует использовать обработчик события "Перед записью" объекта документ, а не формы документа. [481]
Событие "Перед записью", в случае интерактивной записи документа, сначала будет вызвано у формы документа, а затем объекта документа (смотри схему событий в раздел "Последовательность событий при записи документа из форм документа" на странице 581). Поэтому вернемся в конфигуратор удалим из модуля формы добавленный нами текст и создадим обработчик события "Перед записью" в модуле объекта документ:





Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   //Определить нужно ли обновлять дату в движениях
   ОбновитьДатуДвижений = ЭтоНовый() Или Движения.ОстаткиМатериалов.Модифицированность();
   Если Не ОбновитьДатуДвижений Тогда // Проверить, что дата изменилась
       Запрос = Новый Запрос;
       Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);
       Запрос.Текст =
       "ВЫБРАТЬ
       |    ВводНачальныхОстатковНоменклатуры.Дата
       |ИЗ
       |    Документ.ВводНачальныхОстатковНоменклатуры КАК ВводНачальныхОстатковНоменклатуры
       |ГДЕ
       |    ВводНачальныхОстатковНоменклатуры.Ссылка = &ТекущийДокумент";
       Выборка = Запрос.Выполнить().Выбрать();
       Выборка.Следующий();
       ОбновитьДатуДвижений = Выборка.Дата <> Дата;
   КонецЕсли;
   //Установить всем новую дату, если нужно

Содержание  Назад  Вперед