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



Глава 15. Создание документа ввода начальных остатков - часть 4


   Если ОбновитьДатуДвижений Тогда

       Если Не Движения.ОстаткиМатериалов.Выбран() И Не Движения.ОстаткиМатериалов.Модифицированность() Тогда

           Движения.ОстаткиМатериалов.Прочитать();

       КонецЕсли;

       Для Каждого ЗаписьРегистра Из Движения.ОстаткиМатериалов Цикл

           ЗаписьРегистра.Период = Дата;

       КонецЦикла;

   КонецЕсли;

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

Как вы видите, в этом случае обработчик содержит больше кода за счет дополнительных проверок, которые выполняются в результат того, что возможна как интерактивная, так и программная запись объекта. [482]

Поясним содержание обработчика. Если записывается новый документ или были изменены его движения – следует обновить дату движений. В противном случае мы считываем запросом дату документа из базы данных и сравниваем ее с датой, установленной у записываемого объекта. Если даты разные – также следует обновить дату движений.

Перед установкой даты мы проверяем, был ли прочитан набор записей в свойстве "Движения" объекта и изменялся ли он. Если оба этих условия ложны – это значит, что набор записей в свойстве "Движения" объекта пуст, и это состояние не связано с его изменением. В этом случае, чтобы предотвратить ошибочное удаление записей в регистре (перезапись пустым набором записей), мы предварительно читаем движения из регистра в набор записей в свойстве "Движения". Затем, как и в предыдущем случае, устанавливаем нужную дату для всех записей этого набора. При выполнении записи объекта Документ, этот набор будет записан в регистр накопления.

Запустим 1С:Предприятие в режиме отладки и убедимся, что указав новую дату для нашего документа и записав его, мы получим движения в регистре накопления с новой датой.




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