Проверить модифицированность документа в процедуре ОбработкаПроведения()

Новая тема
"Собственно сабж.
К сабжу 1С 7.7, конфа самописная на основе ТиС (оперативный учет).
Модифицированность() - не подходит "Метод доступен только в Модуле формы..."
СтрЧислоВхождений(Форма.Заголовок(),"*") - не подходит "Доступ к методу возможен только в контексте Модуля формы"

Создаю реквизит Мод (Число, длина 1)
В процедуре ПриЗаписи()
Мод=Модифицированность();
Мод всегда = 1!
Соответственно в обработке проведения документ всегда модифицарованный :(

В процедуре ПриЗаписи()
Форма.Заголовок()
возвращает пустую строку ыыы... :("
> Модифицированность() - не подходит "Метод доступен только в Модуле формы..."
Модифицированность и в самом деле можно проверить только в форме или где-то еще, куда передан контекст формы.

> Соответственно в обработке проведения документ всегда модифицарованный :(
Вообще-то в ней документ уже записан, т.е. не модифицирован.

А вот вопрос процедуры ПриЗаписи - это уже интереснее. Если сразу при открытии документа получается, что он модифицирован, значит при открытии "устанавливаются значения по умолчанию" - вот тут и надо править. В принципе именно в ПриЗаписи и надо контролировать.
> Если сразу при открытии документа получается, что он модифицирован, значит при открытии "устанавливаются значения по умолчанию" - вот тут и надо править.
Сразу при открытии и далее до точки входа в процедуру ПриЗаписи все нормально...
Чудес то не бывает. Может на кнопке "Ок" в форме у вас повешена процедура, которая что то в реквизиты формы переустанавливает?
А в ОбработкаПроведения() вообще нет понятия о модифицированности, так как проведение, в принципе, возможно и без открытия формы вовсе. Пример: потоковое перепроведение документов.
> Сразу при открытии и далее до точки входа в процедуру ПриЗаписи все нормально...
т.е. если смотреть отладчиком, то Модифицированность()=0 до входа в ПриЗаписи?
> т.е. если смотреть отладчиком, то Модифицированность()=0 до входа в ПриЗаписи?
Вроде да, только не отладчиком смотрел, а завел реквизит шапки и вывел его на форму в виде флажка (чекбокса)...
> а завел реквизит шапки и вывел его на форму в виде флажка (чекбокса)...
Если вы считаете, что изменив значение реквизита шапки вы не меняете документ - то вы ошибаетесь, даже в случае присваивания такого же значения (например был 0 и присвоили 0).

"> Может на кнопке "Ок" в форме у вас повешена процедура, которая что то в реквизиты формы переустанавливает?
Нет, формула кнопки - #Записать? Провести?
> А в ОбработкаПроведения() вообще нет понятия о модифицированности, так как проведение, в принципе, возможно и без открытия формы вовсе. Пример: потоковое перепроведение документов.
Я это прекрасно понимаю, но в моем случае речь идет о интерактивном проведении документ.

Опишу ситуацию. На основании расходной накладной, после ее проведения, из ее же формы ввода, не закрывая накладную на ее основании вводится счет-фактура. Счет-фактура проводится, раcпечатывается и закрывается. И если после ее закрытия внести изменения в накладную то суммы не будут равны. В связи с чем было принято решение о проверке счета-фактуры при проведении накладной.
Что в конечном итоге сделал:
при проведении проверяется был ли ранее проведен текущий документ
> Если Проведен()=1 Тогда
(если документ не был проведен, то не стоит шерстить подчиненные документы)
ну и далее как обычно
> СчФ.ВыбратьПодчиненныеДокументы(ДатаДок,ДатаДок,ТекущийДокумент());
> ...
> Если СчФ.Вид()="Счет_фактура" Тогда
> ...
> Если ИтогСумма<>СуммаСчФ Тогда
> ...
> Предупреждение("Сумма счета-фактуры не равна сумме накладной!"..."
Читают тему
(гостей: 1)

Быстрый переход