Если УстановитьДату Тогда
Если не Движения.ОстаткиМатериалов.Выбран() и не Движения.ОстаткиМатериалов.Модифицированность() тогда
Движения.ОстаткиМатериалов.Прочитать();
КонецЕсли;
Для Каждого Запись из Движения.ОстаткиМатериалов Цикл
Запись.Период=ЭтотОбъект.Дата;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Сделал внешнюю обработку для проверки, следующий код:
ДокументСылка=Документы.ВводНачальныхОстатковНоменклатуры.НайтиПоНомеру("000000001");
ДокументОбъект=ДокументСылка.ПолучитьОбъект();
ДокументОбъект.Дата=Дата("20110926");
ДокументОбъект.Записать();
В итоге почему-то период у движений этого документа не обновляется. Если меняем дату документа через форму-интерактивно, то все работает.
По идее вот этот код вносит изменения в период
Если УстановитьДату Тогда
Если не Движения.ОстаткиМатериалов.Выбран() и не Движения.ОстаткиМатериалов.Модифицированность() тогда
Движения.ОстаткиМатериалов.Прочитать();
КонецЕсли;
Для Каждого Запись из Движения.ОстаткиМатериалов Цикл
Запись.Период=ЭтотОбъект.Дата;
КонецЦикла;
КонецЕсли;
Почему при программном редактировании эти изменения не сохраняются?
(0) УстановитьДату=ЭтоНовый() ИЛИ Движения.ОстаткиМатериалов.Модифицированность();
значит при выполнении обработки у вас УстановитьДату=Ложь и код в ПриЗаписи не отрабатывает
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший