Метод Записать() в форме документа возвращает ложь не дожидаясь проведения

1. Miket78 41 19.03.25 09:30 Сейчас в теме
Приветствую коллеги!

Столкнулся с проблемой. При определенном действии, если документ не проведен, то требуется вывести запрос на проведение. Если пользователь нажимает да, то провести и потом продолжить код. Взял код из типовой конфигурации. Однако столкнулся с тем, что метод Записать() не дожидаясь проведения документа сразу возвращает ложь, и мой код дальше не выполняется. При этом проведение документа все же выполняется уже после того, как Записать() вернул ложь, и через некоторое время по поведению формы видно что документ провелся. Почему так происходит и как побороть? Документ РеализацияТоваровУслуг в УТ 11.5

&НаКлиенте
Процедура ОплатаНаличными(Команда)
	Если Модифицированность Или Не Объект.Проведен Тогда
		Ответ = Неопределено;
		ПоказатьВопрос(Новый ОписаниеОповещения("ОплатаНаличнымиЗавершение", ЭтотОбъект),
			НСтр("ru = 'Необходимо провести документ для выполнения операции. Провести документ?'"), РежимДиалогаВопрос.ДаНет);
		Возврат;
	КонецЕсли;
	
	ОплатаНаличнымиФрагмент();
	
КонецПроцедуры

&НаКлиенте
Процедура ОплатаНаличнымиЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	Ответ = РезультатВопроса;
	Если Ответ = КодВозвратаДиалога.Нет Тогда
		Возврат;
	КонецЕсли;	

	ДокументПроведен = Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
	
	Если Не ДокументПроведен Тогда
		ПоказатьПредупреждение(,"Ошибка при проведении документа",,"Ошибка");
		возврат;
	КонецЕсли;                                    
	
	
	ОплатаНаличнымиФрагмент();
	
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1936660 19.03.25 09:57 Сейчас в теме
(1)
и как
Использовать отладчик.
starik-2005; +1 Ответить
3. Miket78 41 19.03.25 11:01 Сейчас в теме
Разобрался. В обработчике ПередЗаписью устанавливался Отказ=истина и потом запускались отложенные расчет скидок и проведение.

Решил проблему следующим кодом

	НеВыполнятьПроверкуПередЗаписью = Истина;
	РассчитатьСкидкиНаценкиКлиент();
	РассчитатьИтоговыеПоказатели();
	
	ДокументПроведен = Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот