|
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) Спасибо!
|
| Форум | Правила | Описание | Секции | Поиск |