Можно ли изменить атрибут операции при проведении?
24.04.2005
11:29
#1
"Тема такая:
Нужно в каждом документе установить:
Операция.Фирмы = Фирма.
Фирма - общий реквизит документов и разделитель учета.
В процедуре глПриПроведении(Конт) пишу:
Конт.Операция.ВыбратьПроводки() и т.д.
Когда доходит до Конт.Операция.Записать();
Прога ругается, что нельзя изменять записаные проводки!
А новые проводки создаются и дописываются к старым без проблем. Думал записать старые проводки в таблицу значений, затем очистить операцию и записать проводки снова из таблицы - не получается. Недаёт не удалять проводки ни документ.
Не хотелось бы в каждом документе прописывать после Операция.НоваяПроводка() строку Операция.Фирмы = Фирма. Процесс трудоёмкий и затрудняет дальнейшее обновление."
Нужно в каждом документе установить:
Операция.Фирмы = Фирма.
Фирма - общий реквизит документов и разделитель учета.
В процедуре глПриПроведении(Конт) пишу:
Конт.Операция.ВыбратьПроводки() и т.д.
Когда доходит до Конт.Операция.Записать();
Прога ругается, что нельзя изменять записаные проводки!
А новые проводки создаются и дописываются к старым без проблем. Думал записать старые проводки в таблицу значений, затем очистить операцию и записать проводки снова из таблицы - не получается. Недаёт не удалять проводки ни документ.
Не хотелось бы в каждом документе прописывать после Операция.НоваяПроводка() строку Операция.Фирмы = Фирма. Процесс трудоёмкий и затрудняет дальнейшее обновление."
25.04.2005
07:51
#2
"Можно.
Нашли нужный документ НужныйДокумент.
Опер = СоздатьОбъект("Операция");
Опер.НайтиОперацию(НужныйДокумент);
Опер.ВыбратьПроводки();
НужнаяСумма = 1;
Пока Опер.ПолучитьПроводку() = 1 Цикл
Опер.Сумма = НужнаяСумма; //например
КонецЦикла;
Опер.Записать();
КонецПроцедуры
Работает. Был один момент когда использовал метод ВыбратьОперацииСПроводками() - не работает, а просто ВыбратьОперации() - позволяет изменять."
Нашли нужный документ НужныйДокумент.
Опер = СоздатьОбъект("Операция");
Опер.НайтиОперацию(НужныйДокумент);
Опер.ВыбратьПроводки();
НужнаяСумма = 1;
Пока Опер.ПолучитьПроводку() = 1 Цикл
Опер.Сумма = НужнаяСумма; //например
КонецЦикла;
Опер.Записать();
КонецПроцедуры
Работает. Был один момент когда использовал метод ВыбратьОперацииСПроводками() - не работает, а просто ВыбратьОперации() - позволяет изменять."
25.04.2005
08:07
#3
Попробую. Спасибо. Но дело в том, что процедура глПриПроведении(Контекст) вызывается из модуля обработки проведения документа.
26.04.2005
05:11
#4
В Вашем случае, по моему мнению, ГлПриПроведении() не подходит, надо писать что-то типа ГлПослеПроведения(), когда уже есть операция с готовыми проводками.
29.04.2005
13:18
#5
Не получается. Должно работать во время проведения документа. ПриЗаписи() и ПриЗакрытии() тоже не работает.
Пишет: "Объект заблокирован "... и указывает на документ, в котором идет обработка.
Пробовал не Опер.Записать() а Опер.ЗаписатьПроводки() - проводки не изменяет, а копирует их с измененными данными. Получаются двойные.
Плюнул на всё, дописал в каждый документ.
Пишет: "Объект заблокирован "... и указывает на документ, в котором идет обработка.
Пробовал не Опер.Записать() а Опер.ЗаписатьПроводки() - проводки не изменяет, а копирует их с измененными данными. Получаются двойные.
Плюнул на всё, дописал в каждый документ.
Читают тему
(гостей: 1)