Отложенный чек без движений в УТ 11

Клиент обратился с заданием отключить движения отложенных чеков (как с резервированием товара, так и без). Они ему мешают в отчете по продажам.

Я открыл УТ и обнаружил, что чек невозможно провести или отменить проведение:

Я немного озадачился — разработку веду на рабочей базе, как проверить работу чека, ведь нельзя же его провести даже.

Однако вспомнил про универсальный редактор объектов — обработку «1cAdmin». В ней открыл пробитый чек и провел.

Сначала я хотел отключить вызов всей процедуры «Обработка проведения» для таких чеков, но мне кажется, это было бы слишком чрезмерно задаче.

Поэтому вмешался только в типовую процедуры записи набора записей:

Сначала я решил установить признак Записывать у всех наборов записей в Ложь:

В коде расширения я ошибся и вместо ПродолжитьВызов использовал вызов процедуры по имени, в результате чего 1С вылетала по переполнению стека:

Потом поправил ошибку, сначала провел чек в обычном статусе Пробит, получил такие движения:


Но когда поменял статус чека на «Отложенный», у меня все равно остались движения:

Да, это 1С, детка. Тут всё не очень просто и логично. Поэтому я отказался от очистки флага Записывать и вместо этого очищал все наборы записей в коллекции Движения. Это дало ожидаемый результат:

В итоге код расширения для модуля ПроведениеСерверУТ получился таким:

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

Время план: 0.7 час. Среда: 11.4.13.46.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *