Тайное не-списание товара УНФ 3

Клиент обнаружил, что загруженные с сайта чеки при свертке в ОРП не списывают товар.

Причина оказалась в том, что в табличной части не установлена единица измерения товара. И происходит это втихую, без ошибок.

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

Написал коды с запросом, которые обрабатывают документы и проставляют единицу:

З = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ Ссылка ИЗ Документ.ОтчетОРозничныхПродажах.Запасы КАК Т ГДЕ Т.ЕдиницаИзмерения = Неопределено И Ссылка.Проведен УПОРЯДОЧИТЬ ПО Т.Ссылка.Дата");
Выборка = З.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
	Сообщить(Выборка.Ссылка);
	ОО = Выборка.Ссылка.ПолучитьОбъект();
	Для Каждого Строка ИЗ ОО.Запасы Цикл
		Если Не ЗначениеЗаполнено(Строка.ЕдиницаИзмерения) Тогда
			Строка.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.шт;
		КонецЕсли;
	КонецЦикла;
	ОО.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;

Для чеков практически такой же, но с ловушкой ошибок:

З = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ Ссылка ИЗ Документ.ЧекККМ.Запасы КАК Т ГДЕ Т.ЕдиницаИзмерения = Неопределено И Ссылка.Проведен УПОРЯДОЧИТЬ ПО Т.Ссылка.Дата");
Выборка = З.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
	Сообщить(Выборка.Ссылка);
	ОО = Выборка.Ссылка.ПолучитьОбъект();
	Для Каждого Строка ИЗ ОО.Запасы Цикл
		Если Не ЗначениеЗаполнено(Строка.ЕдиницаИзмерения) Тогда
			Строка.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.шт;
		КонецЕсли;
	КонецЦикла;
	Попытка
		ОО.Записать(РежимЗаписиДокумента.Проведение);
	Исключение
		Сообщить(" - не проведен: " + ОписаниеОшибки());
	КонецПопытки;
КонецЦикла;

Среда: УНФ 3.0.13.374

image_pdfimage_print

fixin

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

Вам может также понравиться...

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

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