|
v7: Отмена проведения другого документа в модуле проведения возможна? |
☑ |
0
Chai Nic
31.05.24
✎
08:36
|
Нужно это для того, чтобы была возможность поменять дату подчиненного документа при проведении документа-основания. Поскольку дату уже проведенного система менять не дает с выдачей ошибки "Невозможно изменение даты проведенного документа!", нужно отменить проведение, поменять дату и реквизиты, и перепровести.
Про лайфхак с открытием формы с передачей контекста документа и команды в качестве параметра, с проверкой параметра в ПриОткрытии документа и выполнении нужных действий там - знаю. С проведением это работает. А с отменой проведения - не.
Если делать в ПриОткрытии Конт.СделатьНеПроведенным() - то не выдает никаких ошибок, но документ так и остается проведенным. Если через Док=СоздатьОбъект("Документ") с поиском текущего документа контекста и потом делать Док.СделатьНеПроведенным() - выдает ошибку "Данная операция недоступна при проведении документа".
Что посоветуете?
|
|
1
ЯнСмит
31.05.24
✎
08:52
|
Через глобальную процедуру ОбработкаОжидания() - в ней крутится диспетчер, который в зависимости от полученных параметров (опять же через глобальную переменную-список значений) выполняет то или иное действо.
|
|
2
Chai Nic
31.05.24
✎
08:55
|
(1) А это будет работать, если транзакция проведения существует и активна?
|
|
3
vladmenleo
31.05.24
✎
08:56
|
(0) У меня сделано через Formex В журнале добавляешь процедуру
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
Если Событие = "СделатьНепроведенным" Тогда
Док = СоздатьОбъект("Документ");
Док.НайтиДокумент(ТекущийДокумент);
Док.СделатьНеПроведенным();
Форма.Обновить();
КонецЕсли;
КонецПроцедуры // ОбработкаВнешнегоСобытия()
а в модуле проведения вызываешь
Сервис = СоздатьОбъект("Сервис");
Сервис.ВнешнееСобытие(Вид(),"СделатьНепроведенным","Форма");
Возврат;
|
|
4
ЯнСмит
31.05.24
✎
09:00
|
(2) должна сработать после завершения транзакции проведения
|
|
5
Chai Nic
31.05.24
✎
08:58
|
Да, наверное, можно всё это будет сделать асинхронно, из обработки ожидания, куда передали нужные параметры через глобальную переменную, уже после того, как основная обработка проведения завершилась.
|
|
6
Chai Nic
31.05.24
✎
08:59
|
(3) Спасибо!
|
|