v8: Оперативное проведение: изменение даты документа и проведение будущей датойВ 8-й платформе при оперативном проведении нельзя менять дату и время документа. Следующий способ решает эту проблему. | | Автор статьи: Последняя редакция №1 от 22.06.07 URL: http://kb.mista.ru/article.php?id=553 | |
Ключевые слова: будущая,дата,время,документ,проведение,оперативное
Способ состоит в том, что при оперативном проведении мы меняем дату документа и сохраняем изменения:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
...
Дата=<нужная дата>;
Записать();
КонецПроцедуры
где <нужная дата> - это может быть все что угодно: реквизит документа, константа, функция, и т.д.
Т.е. конкретный пример: нужно чтобы при оперативном проведении было строго определенное время документа, а не то, которое даст система. Решение - добавляется либо дополнительный реквизит в документ или заводится константа и при проведении это присваивается дате документа.
То же самое делается и при ОПЕРАТИВНОМ проведении будущей датой. Статья про это уже была (Книга знаний: v8: Как разрешить проведение будущей датой в форме документа), но там будущей датой документ проводится неоперативно, а у меня оперативно (почуствуйте разницу!). Кстати, константу в этом случае заводить необязательно, достаточно использовать Рабочую дату:
//способ оперативного проведения будуще
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
...
Дата=РабочаяДата;
Записать();
КонецПроцедуры
То, что платформа дает изменить дату документа при оперативном проведении - это не ошибка, а, например, фича. Так специально сделали, что метод Записать() в ОбработкаеПроведения не вызывает никаких обработчиков (ни внутренних, которые в платформе, ни внешних - в модуле документ). Иначе, представляете, диалоговые сообщения при групповом проведении?!
Аналог такого поведения Записать() в ОбработкеПроведения есть в платформе 7.7. Например у документа есть уникальность номера. Так вот, в ОбработкеПроведения можно хоть всем документам поставить одинаковый номер - система даже не ругнется на то, что неможет записать документ с неуникальным номером.
Поэтому, такое поведение метода Зписать() очень удобно и его можно использовать для решения вышеперечисленных задач.
|