Проверка проведен или нет

1. Raideres 8 14.01.21 17:36 Сейчас в теме
Необходимо проверить если документ не проведен или модифицирован
то нужно провести

написал следующее
Подскажите где ошибка

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

	ПробитьЧекПодготовитьДанные();	
КонецПроцедуры


&НаКлиенте
Процедура ЗаписатьИПробитьЧек(Ответ, ДополнительныеДанные) Экспорт
	
	Если Ответ=КодВозвратаДиалога.ОК Тогда
		
		ПараметрыЗаписи = Новый Структура;
		//ПараметрыЗаписи.Вставить("ЕстьВопросыПередЗаписью", Ложь);
		//ПараметрыЗаписи.Вставить("НовыйОбъект", Ложь);
		//ПараметрыЗаписи.Вставить("ПринудительноЗакрытьФорму", Ложь);
		ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Проведение);
		ПараметрыЗаписи.Вставить("РежимПроведения", РежимПроведенияДокумента.Неоперативный);
		//ПараметрыЗаписи.Вставить("ДействиеПослеЗаписи", ДействиеПослеЗаписи);
		результат = ЭтаФорма.Записать(ПараметрыЗаписи);
		Если НЕ Результат Тогда
			Если Объект.Ссылка.Пустая() Или Модифицированность или НЕ Объект.Ссылка.Проведен Тогда
				Возврат; // Запись не удалась, сообщения о причинах выводит платформа.
			КонецЕсли;
		Иначе
			ПробитьЧекПодготовитьДанные(); //// вот это не срабатывает
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Nadushka74 5 14.01.21 17:41 Сейчас в теме
(1) а точно не срабатывает? может не заходит туда?
FatPanzer; +1 Ответить
2. FatPanzer 14.01.21 17:39 Сейчас в теме
А где ошибка? Че пишет, на что матерится?
Что мешает сделать три вложенных условия и под каждое выводить свое сообщение для проверки, если отладчиком пользоваться не умеешь?
alex-l19041; +1 Ответить
6. Raideres 8 14.01.21 19:04 Сейчас в теме
(2)
 результат = ЭтаФорма.Записать(ПараметрыЗаписи);
        Если НЕ Результат Тогда
            Если Объект.Ссылка.Пустая() Или Модифицированность или НЕ Объект.Ссылка.Проведен Тогда
                Возврат; // Запись не удалась, сообщения о причинах выводит платформа.
            КонецЕсли;
        Иначе

ПробитьЧекПодготовитьДанные(); //// вот это не срабатывает
 КонецЕсли;





ПробитьЧекПодготовитьДанные(); //// вот это не срабатывает


После ЭтаФорма.Записать(ПараметрыЗаписи)


После записи ничеоо не делает даже не заходит и без условия в процедуру как будто в записи ятот еще должно чтот стоять
7. FatPanzer 14.01.21 19:12 Сейчас в теме
(6) Все асинхронные вызовы должны быть самыми последними в методах. Поэтому убирай и Возврат и ПробитьЧекПодготовитьДанные() из первой клиентской процедуры и лови отладчиком.
Это так, между делом совет.

И потом. Если не срабатывает Иначе, значит срабатывает Если. А уже внутри этого "Если" срабатывает Возврат.
Вот с этим и разбирайся. У тебя там три условия. Проверяй, что означает каждое из них в момент выполнения.

PS. Не, я-то вижу что срабатывает. Но полезно докопаться до истины самому. Направление я дал.
8. Raideres 8 14.01.21 19:24 Сейчас в теме
(7)
ПодготовитьДанные() из первой клиентской процедуры и лови отладчиком.
Это так, между делом совет.

И потом. Если не срабатывает Иначе, значит срабатывает Если. А уже внутри этого "Если" срабаты



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




он тут получается запись не делает возвращает ложь как будто мб как то тут выполнить оповещение нужно или что то
9. FatPanzer 14.01.21 19:28 Сейчас в теме
(8) Давай я тебе жирным шрифтом повторю, что ли...
У тебя там три условия. Проверяй, что означает каждое из них в момент выполнения.
10. Raideres 8 14.01.21 19:32 Сейчас в теме
(9) Вижу вот даже так написал но у меня
Модифицированность = ложь
НЕ Объект.Проведен = Истина
он заходит в условие я же выше написал

почему он не записывает
&НаКлиенте
Процедура ЗаписатьИПробитьЧек(Ответ, ДополнительныеДанные) Экспорт
	
	Если Ответ = КодВозвратаДиалога.ОК Тогда
		
		ПараметрыЗаписи = Новый Структура;
		ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Проведение);
		Записать(ПараметрыЗаписи);
		
		Если Модифицированность Или НЕ Объект.Проведен Тогда
				Возврат; // Запись не удалась, сообщения о причинах выводит платформа.
		КонецЕсли;
		
		ПробитьЧекПодготовитьДанные();		
	КонецЕсли;
	
КонецПроцедуры
Показать
Прикрепленные файлы:
11. FatPanzer 14.01.21 20:25 Сейчас в теме
(10) А у документа вообще включено "Проведение = Разрешить" в свойствах метаданных?
12. Raideres 8 14.01.21 20:29 Сейчас в теме
(11)
Оказывается это решается вот так (нашел в типовом)
что за наркомания в F1 так и не нашел ни какого описания

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

КонецПроцедуры

&НаКлиенте
Процедура ПробитиеЧекаПослеЗаписиДокумента(Результат, ДополнительныеПараметры) Экспорт
	Если Результат = Неопределено Или Не Результат Тогда
		
			ПоказатьПредупреждение(
				Неопределено,
				НСтр("ru = 'Не удалось провести документ'"));		
	Иначе
		
	ПробитьЧекПодготовитьДанные();	
		
	КонецЕсли;

КонецПроцедуры
Показать
13. FatPanzer 14.01.21 20:41 Сейчас в теме
(12) Так это только в УТ так реализовано. "ДействиеПослеЗаписи" - это не платформенный ключ параметров записи.
А на форме нет случайно реквизита "ПараметрыЗаписи"?
14. Raideres 8 14.01.21 20:58 Сейчас в теме
(13)
А на форме нет случайно реквизита "ПараметрыЗаписи"?



нет не вижу
4. Азбука Морзе 105 14.01.21 17:46 Сейчас в теме
ОбщегоНазначения.ПроверитьПроведенностьДокументов(МассивСсылок)
5. user958326 14.01.21 18:32 Сейчас в теме
Да, текст ошибки не помешал бы в решении проблемы
alex-l19041; +1 Ответить
15. kalach2002 10.04.24 21:22 Сейчас в теме
На клиенте нет доступа через точку Объект.Ссылка.Проведен
Оставьте свое сообщение

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