Исправление ошибок в типовых релизах 1С: УТ 10.3 и Розница 1.0 при отражении продаж в ЕГАИС

05.06.16

Задачи пользователя - Адаптация типовых решений

При продаже алкогольной продукции в программах Управление торговлей и Розница возникают ошибки. В статье разберем причины ошибок и способ их решения.

В программе УТ 10.3 на релизе 36.1, а так же в Рознице 1.0.19.16, которые на данный момент являеются последними при попытке продажи алкогольной продукции с отправкой данных в ЕГАИС, возникает ошибка "java.lang.IllegalArgumentException: org.xml.sax.SAXParseException; cvc-pattern-valid: Value '0' is not facet-valid with respect to pattern '[1-9][0-9]{0,9}' for type 'COUNT'". В процесе анализа ошибки выяснилось, что данная ошибка возникает из-за незаполненых полей в формируемом пакете, который и отправляется в ЕГАИС. Поле номер смены и номер чека ККМ, в программе выгружаются как значение '0'. В ЕГАИС по этим данным формируется информация о чеке, они должны быть заполнены обязательно.  Проблема в том, что в общем модуле ИнтеграцияЕГАИСКлиентПредопределенный  в функцию ПодготовитьВходящиеДанныеДляПодписиЧека не передаестя номер чека и смены. Номер смены особого значения не имеет, можно смело ставить 1, просто при загрузке в ЕГАИС нулевое значение не принимается. Так же важно указать номер чека, для этого в модуле функции Чека ККМ в функции ПараметрыЧекаДляПодписиВЕГАИС в параметр чека можно передать и его номер. 

Для исправления текущей ошибки можно исправить две функции, которые я описал выше следующим образом:

1.Функция ПараметрыЧекаДляПодписиВЕГАИС в модуле Чека ККМ. 

Функция ПараметрыЧекаДляПодписиВЕГАИС(ТаблицаТоваров, СуммаНал, СуммаБезНал, ТранспортныйМодуль = Неопределено)
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ЧекККМ.Организация.ИНН 		  КАК ИНН,
	|	ЧекККМ.Организация.КПП 		  КАК КПП,
	|	"""" 						  КАК АдресМагазина,
	|	ЧекККМ.Склад.Наименование 	  КАК НаименованиеМагазина,
	|	0							  КАК ЗаводскойНомерККМ,
	|	ВЫБОР
	|		КОГДА ЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Возврат)
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ 					      КАК Возврат,
	|	ЧекККМ.Организация   		  КАК Организация,
	|	ЧекККМ.Склад 				  КАК Склад
	|ИЗ
	|	Документ.ЧекККМ КАК ЧекККМ		
	|ГДЕ
	|	ЧекККМ.Ссылка = &Ссылка";
	
	Выборка = Запрос.Выполнить().Выбрать();
	Выборка.Следующий();
	
	ПараметрыЧека = Новый Массив;
	ПараметрыЧека.Добавить(ТаблицаТоваров);
	ПараметрыЧека.Добавить(СуммаНал);
	ПараметрыЧека.Добавить(СуммаБезНал);
	ПараметрыЧека.Добавить(Выборка.Возврат);
	ПараметрыЧека.Добавить(Выборка.ИНН);
	ПараметрыЧека.Добавить(Выборка.КПП);
	ПараметрыЧека.Добавить(Выборка.АдресМагазина);
	ПараметрыЧека.Добавить(Выборка.НаименованиеМагазина);
	ПараметрыЧека.Добавить(Выборка.ЗаводскойНомерККМ);
	
	ТранспортныйМодуль = ИнтеграцияЕГАИСПереопределяемый.ИспользуемыйТранспортныйМодуль(Выборка.Склад, Выборка.Организация);
	ПараметрыЧека[6] = ТранспортныйМодуль.Адрес;
	ПараметрыЧека[9] = Прав(Ссылка.Номер,5);

	Возврат ПараметрыЧека;
КонецФункции

Прав(Ссылка.Номер,5) - применяется для того, чтобы исбавиться от префикса в номере чека. Если у Вас в программе установлен префикс в номере документов, то это не позволит использовать номер при передачи в ЕГАИС, так как в стандарте обмена прописано, что номер чека является числовым значением.

2. Функция ПодготовитьВходящиеДанныеДляПодписиЧека в общем модуле ИнтеграцияЕГАИСКлиентПредопределенный.

Функция ПодготовитьВходящиеДанныеДляПодписиЧека(ПараметрыЧека, НомерЧека = 0, НомерСмены = 1, РезультатПодготовки = Неопределено) Экспорт

	РезультатПодготовки = Новый Структура("Результат, ОписаниеОшибки", Ложь, "");
	
	ВходящиеДанные = СтруктураДанныхЧекаККМ();
	
	ТаблицаТоваров = ПараметрыЧека[0];
	
	Если ТаблицаТоваров.Колонки.Найти("ПараметрыАлкогольнойПродукции") = Неопределено Тогда
		РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'В процедуру подготовки входящих данных передана некорректная структура параметров.'");
		Возврат ВходящиеДанные;
	КонецЕсли;
	
	ВыгружатьНемаркируемуюПродукцию = ИнтеграцияЕГАИСКлиентПовтИсп.ВыгружатьПродажиНемаркируемойПродукцииВЕГАИС();
	
	ВходящиеДанные.ИНН                  = ПараметрыЧека[4];
	ВходящиеДанные.КПП                  = ПараметрыЧека[5];
	ВходящиеДанные.АдресМагазина        = ПараметрыЧека[6];
	ВходящиеДанные.НаименованиеМагазина = ПараметрыЧека[7];
	ВходящиеДанные.ЗаводскойНомерККМ    = ПараметрыЧека[8];
	ВходящиеДанные.НомерСменыККМ        = НомерСмены;
	ВходящиеДанные.НомерЧекаККМ         = ПараметрыЧека[9];
	ВходящиеДанные.ДатаВремяЧека        = ТекущаяДата();
	ВходящиеДанные.Возврат              = ПараметрыЧека[3];
	
	Для Каждого СтрокаТаблицы Из ТаблицаТоваров Цикл
		
		ПараметрыАлкогольнойПродукции = СтрокаТаблицы.ПараметрыАлкогольнойПродукции;
		
		Если ТипЗнч(ПараметрыАлкогольнойПродукции) <> Тип("Структура") Тогда
			РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'В процедуру подготовки входящих данных передана некорректная структура параметров.'");
			Возврат ВходящиеДанные;
		КонецЕсли;
		
		Если НЕ ПараметрыАлкогольнойПродукции.Свойство("АлкогольнаяПродукция")
			ИЛИ НЕ ПараметрыАлкогольнойПродукции.Свойство("Маркируемая")
			ИЛИ НЕ ПараметрыАлкогольнойПродукции.Свойство("Штрихкод")
			ИЛИ НЕ ПараметрыАлкогольнойПродукции.Свойство("Объем") Тогда
			РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'В процедуру подготовки входящих данных передана некорректная структура параметров.'");
			Возврат ВходящиеДанные;
		КонецЕсли;
		
		Если НЕ ПараметрыАлкогольнойПродукции.АлкогольнаяПродукция Тогда
			Продолжить;
		КонецЕсли;
		
		Если ПараметрыАлкогольнойПродукции.Маркируемая Тогда
			
			Если НЕ ПараметрыАлкогольнойПродукции.Свойство("ШтрихкодМарки") Тогда
				РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'Отсутствует обязательное поле ""Штрихкод марки"".'");
				Возврат ВходящиеДанные;
			КонецЕсли;
			
		Иначе
			
			Если НЕ ВыгружатьНемаркируемуюПродукцию Тогда
				Продолжить;
			КонецЕсли;
			
			Если НЕ ПараметрыАлкогольнойПродукции.Свойство("Крепость") Тогда
				РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'Отсутствует обязательное поле ""Крепость"".'");
				Возврат ВходящиеДанные;
			КонецЕсли;
			
			Если НЕ ПараметрыАлкогольнойПродукции.Свойство("КодВидаПродукции") Тогда
				РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'Отсутствует обязательное поле ""Код вида алкогольной продукции"".'");
				Возврат ВходящиеДанные;
			КонецЕсли;
			
		КонецЕсли;
		
		КоличествоСтрок = ?(ПараметрыАлкогольнойПродукции.Маркируемая, СтрокаТаблицы.Количество, 1);
		
		Для Сч = 1 По КоличествоСтрок Цикл
			СтрокаЧека = СтруктураДанныхСтрокиЧекаККМ();
			СтрокаЧека.Наименование   = СтрокаТаблицы.Наименование;
			СтрокаЧека.Количество     = ?(ПараметрыАлкогольнойПродукции.Маркируемая, 1, СтрокаТаблицы.Количество);
			
			Если СтрокаТаблицы.Количество = 0 ИЛИ СтрокаТаблицы.Скидка = 0 Тогда
				СтрокаЧека.Цена = СтрокаТаблицы.Цена;
			Иначе
				СтрокаЧека.Цена = Окр(СтрокаТаблицы.Цена * СтрокаТаблицы.Скидка * 0.01, 2);
			КонецЕсли;
			
			СтрокаЧека.ШтрихкодТовара = ПараметрыАлкогольнойПродукции.Штрихкод;
			СтрокаЧека.Объем          = ПараметрыАлкогольнойПродукции.Объем;
			
			Если НЕ ПараметрыАлкогольнойПродукции.Маркируемая Тогда
				СтрокаЧека.Крепость = ПараметрыАлкогольнойПродукции.Крепость;
				СтрокаЧека.КодВидаПродукции = ПараметрыАлкогольнойПродукции.КодВидаПродукции;
				ВходящиеДанные.ТаблицаТоваровБезМарки.Добавить(СтрокаЧека);
			Иначе
				Если ТипЗнч(ПараметрыАлкогольнойПродукции.ШтрихкодМарки) = Тип("Массив") Тогда
					СтрокаЧека.ШтрихкодМарки = ?(ПараметрыАлкогольнойПродукции.ШтрихкодМарки.ВГраница() < Сч - 1, "", ПараметрыАлкогольнойПродукции.ШтрихкодМарки[Сч - 1]);
				ИначеЕсли ТипЗнч(ПараметрыАлкогольнойПродукции.ШтрихкодМарки) = Тип("Строка") И Сч = 1 Тогда
					СтрокаЧека.ШтрихкодМарки = ПараметрыАлкогольнойПродукции.ШтрихкодМарки;
				КонецЕсли;
				
				ВходящиеДанные.ТаблицаТоваров.Добавить(СтрокаЧека);
			КонецЕсли;
		КонецЦикла;
		
	КонецЦикла;
	
	РезультатПодготовки.Результат = Истина;
	
	Возврат ВходящиеДанные;

КонецФункции // ПодготовитьВходящиеДанныеДляПодписиЧека()

 

Еще в рознице может возникать ошибка:

java.lang.IllegalArgumentException: org.xml.sax.SAXParseException; cvc-pattern-valid: Value '' is not facet-valid with respect to pattern '\S{1,128}' for type 'NOEMPTY'

Как и с предыдущей ошибкой из текста ясно лишь одно, что какое-то поле из передаваемых данных не заполнено или заполнено не корректно. Как оказалось после анализа отправляеммых данных, что проблема в незаполненных данных кассы. В рознице в кассе проставляются данные "Серийный номер" и "Регистрационный номер" кассового аппарата. Данные эти не выжны, но не должны быть пустыми, можно поставить просто 1, после этого ошибка исчезнет и данные будут отправляться нормально. В управлении торговлей данная ошибка не возникает, т.к. в настройках кассы нет серийного номера и 1с передает в ЕГАИС значение по умолчанию "0", а это удовлетворяет требованиям выгрузки.


Публикации конфигураций с возможностью подключать к одному рабочему месту двух кассовых аппаратов уже не содержат данных ошибок и могут отправлять данные о продажах в ЕГАИС.


P.S. Если у Вас есть еще какие-либо ошибки, с которыми Вы столкнулись в момент начала продаж алкогольной продукции через систему ЕГАИС, пишите в комментариях, с радостью добавлю описание и решение их в статью.

ЕГАИС продажа ошибка ошибки розничная продажа алкогольной продукции ут 10.3 релиз 36.1 Розница

См. также

Гособоронзаказ: учет и отчетность БП3.0 КОРП + ПРОФ + БИТ.ФИНАНС

Бюджетный учет Обмен с ГосИС Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Государственные, бюджетные структуры Россия Бухгалтерский учет Платные (руб)

Доработка конфигурации 1С: Бухгалтерия предприятия, редакция 3.0. Предназначена для ведения раздельного учета и автоматизации заполнения отчетности исполнения контрактов ГОЗ в конфигурациях 1С БП КОРП, ПРОФ, БИТ.ФИНАНС.

30000 руб.

16.08.2019    87665    205    85    

125

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    165790    673    361    

385

Обмен с системами Казначейства: Электронный бюджет

Обмен с ГосИС Платформа 1С v8.3 Бухгалтерский учет 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обработка для обмена платежными документами в формате xml для системы Федерального казначейства "Электронный бюджет" из конфигураций 1С. Поставляется в двух вариантах для БП 3.0 и КА 2.х/ERP 2.х

15000 руб.

14.10.2020    58339    340    101    

271

SALE! 45%

Обмен 1С с Честным Знаком для УТ11, УНФ, КА2, ERP, Розница: Расширение для работы с СУЗ, ГИС МТ, ЦРПТ

Обмен с ГосИС Платформа 1С v8.3 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Полноценное интеграционное решение которое манипулирует сотнями задач по ведению учета в системе мониторинга честный знак, особенности: такие как полная поддержка учета карточек в национальном каталоге (модерация, редактирование, подписание, получение информации), получение кодов маркировок в станции управления заказами "СУЗ Облако", удобная отправка и получение "УПД" через систему "ЭДОЛайт" из документов реализации или корректировки, так же существует механизм приема через ЭДОЛайт, отправка и получения таких документов как перемаркировка , списание, отгрузка и еще более 40 типов документов в ГИСМТ которые описаны ниже, моментальное сопоставление и внедрение в типовую конфигурацию которое обеспечивает ракетную мега скорость ...

18000 9900 руб.

28.03.2023    9355    24    8    

29

Гособоронзаказ в 1С: УПП 1.3

Бюджетный учет Обмен с ГосИС Бухгалтерский учет 1С:Управление производственным предприятием Государственные, бюджетные структуры Россия Бухгалтерский учет Платные (руб)

Для 1С: УПП 1.3 предлагаем Вашему вниманию подсистему "Раздельный учет результатов финансово-хозяйственной деятельности организаций, выполняющих государственный оборонный заказ (раздельный учет ГОЗ)". Ключевые возможности подсистемы: - Автоматическое заполнение регламентированного отчета "Исполнение контрактов ГОЗ"; - Расшифровка показателей отчета об исполнении контрактов ГОЗ с детализацией до документов; - Контроль хозяйственных операций на соответствие требованиям Постановления Правительства № 47; - Автоматизированный ввод начальных данных по контрактам, заключенным ранее даты начала использования подсистемы.

90000 руб.

25.09.2020    28648    33    9    

36

Печать кассовых чеков на одну ККМ с нескольких рабочих мест для 1С:УТ11.х, КА2.х, Розница 2.х, УНФ, ERP 2.х, БП 3, БГУ2

ККМ Кассовые операции Розничная торговля Обмен с ГосИС Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение конфигурации для УТ 11.4, 11.5, КА 2.4, 2.5, Розница 3.0, 2.3 и 2.2, УНФ 1.6, УНФ 3x, ERP 2.4, 2.5, БП 3, БГУ2 (Управляемые формы) позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

4000 руб.

27.08.2018    115578    973    562    

826

Обмен с системой ЦРПТ (Универсальная конфигурация ХамелеонЦРПТ + маркировка табака, обуви, одежды, лекарств, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин)

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

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

104000 руб.

18.03.2019    110207    33    114    

177
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ejique 09.06.16 14:38 Сейчас в теме
ПараметрыЧека[9] = Прав(Ссылка.Номер,5);

Даст индекс за пределами массива, т.к. нумерация элементов массива начинается с 0.

Предлагаю заменить на
ПараметрыЧека.Добавить(Прав(Ссылка.Номер,5));
2. @lexandr 142 10.06.16 00:40 Сейчас в теме
(1) ejique,
Даст индекс за пределами массива, т.к. нумерация элементов массива начинается с 0.
Не даст, рекомендацию, которую я предлагаю я опробывал уже и в УТ 10.3 и в Рознице 1.0, это работает именно так как я описал, так что замечание не обоснованное.
3. ejique 10.06.16 11:28 Сейчас в теме
(2) я вчера тоже внес изменения в код и две проблемы.
Одна это та которую я описал выше, а вторая что сохранилась ошибка:

Не удалось сформировать электронную подпись чека в ЕГАИС!

Не удалось отправить чек в УТМ.
Ошибка при выполнении POST-запроса по адресу /xml
java.lang.IllegalArgumentException: org.xml.sax.SAXParseException; cvc-pattern-valid: Value '0' is not facet-valid with respect to pattern '[1-9][0-9]{0,9}' for type 'COUNT'.
Не удалось отправить чек в УТМ.
Ошибка при выполнении POST-запроса по адресу /xml
java.lang.IllegalArgumentException: org.xml.sax.SAXParseException; cvc-pattern-valid: Value '0' is not facet-valid with respect to pattern '[1-9][0-9]{0,9}' for type 'COUNT'.


Подскажите какой версией транспортного модуля вы пользуетесь?
5. @lexandr 142 10.06.16 22:34 Сейчас в теме
(3) ejique, и на 2.0.2 и на 2.0.3 проверял данную ошибку
4. brrart 26 10.06.16 16:13 Сейчас в теме
Методом проб и ошибок пришли в выводу что УТМ требует все заполненные реквизиты ... и НомерСмены и ЗаводскойНомерККМ и НомерЧека ... посему в нашем случае приведенные в сабже функции выглядят вот так:

В модуле ЧекаККМ:
Функция ПараметрыЧекаДляПодписиВЕГАИС(ТаблицаТоваров, СуммаНал, СуммаБезНал, ТранспортныйМодуль = Неопределено)
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ЧекККМ.Организация.ИНН КАК ИНН,
	|	ЧекККМ.Организация.КПП КАК КПП,
	|	"""" КАК АдресМагазина,
	|	ЧекККМ.Склад.Наименование КАК НаименованиеМагазина,
	|	1 КАК ЗаводскойНомерККМ,
	|	1 КАК НомерСмены,
	|	ВЫБОР
	|		КОГДА ЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Возврат)
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК Возврат,
	|	ЧекККМ.Организация КАК Организация,
	|	ЧекККМ.Склад КАК Склад,
	|	ЧекККМ.Номер КАК Номер
	|ИЗ
	|	Документ.ЧекККМ КАК ЧекККМ
	|ГДЕ
	|	ЧекККМ.Ссылка = &Ссылка";
	
	Выборка = Запрос.Выполнить().Выбрать();
	Выборка.Следующий();
	
	ПараметрыЧека = Новый Массив;
	ПараметрыЧека.Добавить(ТаблицаТоваров);
	ПараметрыЧека.Добавить(СуммаНал);
	ПараметрыЧека.Добавить(СуммаБезНал);
	ПараметрыЧека.Добавить(Выборка.Возврат);
	ПараметрыЧека.Добавить(Выборка.ИНН);
	ПараметрыЧека.Добавить(Выборка.КПП);
	ПараметрыЧека.Добавить(Выборка.АдресМагазина);
	ПараметрыЧека.Добавить(Выборка.НаименованиеМагазина);
	ПараметрыЧека.Добавить(Выборка.ЗаводскойНомерККМ); //НомерСменыККМ
	ПараметрыЧека.Добавить(Число(Сред(Выборка.Номер,3)));
	ПараметрыЧека.Добавить(Выборка.НомерСмены); //НомерСменыККМ
	
	
	ТранспортныйМодуль = ИнтеграцияЕГАИСПереопределяемый.ИспользуемыйТранспортныйМодуль(Выборка.Склад, Выборка.Организация);
	ПараметрыЧека[6] = ТранспортныйМодуль.Адрес;
	
	Возврат ПараметрыЧека;
	
КонецФункции
Показать


В общем модуле ИнтеграцияЕГАИСКлиентПереопределяемый

Функция ПодготовитьВходящиеДанныеДляПодписиЧека(ПараметрыЧека, НомерЧека = 0, НомерСмены = 0, РезультатПодготовки = Неопределено) Экспорт

	РезультатПодготовки = Новый Структура("Результат, ОписаниеОшибки", Ложь, "");
	
	ВходящиеДанные = СтруктураДанныхЧекаККМ();
	
	ТаблицаТоваров = ПараметрыЧека[0];
	
	Если ТаблицаТоваров.Колонки.Найти("ПараметрыАлкогольнойПродукции") = Неопределено Тогда
		РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'В процедуру подготовки входящих данных передана некорректная структура параметров.'");
		Возврат ВходящиеДанные;
	КонецЕсли;
	
	ВыгружатьНемаркируемуюПродукцию = ИнтеграцияЕГАИСКлиентПовтИсп.ВыгружатьПродажиНемаркируемойПродукцииВЕГАИС();
	
	ВходящиеДанные.ИНН                  = ПараметрыЧека[4];
	ВходящиеДанные.КПП                  = ПараметрыЧека[5];
	ВходящиеДанные.АдресМагазина        = ПараметрыЧека[6];
	ВходящиеДанные.НаименованиеМагазина = ПараметрыЧека[7];
	ВходящиеДанные.ЗаводскойНомерККМ    = ПараметрыЧека[8];
	ВходящиеДанные.НомерСменыККМ        = ПараметрыЧека[10];
	ВходящиеДанные.НомерЧекаККМ         = ПараметрыЧека[9];
	ВходящиеДанные.ДатаВремяЧека        = ТекущаяДата();        
	ВходящиеДанные.Возврат              = ПараметрыЧека[3];
	
	Для Каждого СтрокаТаблицы Из ТаблицаТоваров Цикл
		
		ПараметрыАлкогольнойПродукции = СтрокаТаблицы.ПараметрыАлкогольнойПродукции;
		
		Если ТипЗнч(ПараметрыАлкогольнойПродукции) <> Тип("Структура") Тогда
			РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'В процедуру подготовки входящих данных передана некорректная структура параметров.'");
			Возврат ВходящиеДанные;
		КонецЕсли;
		
		Если НЕ ПараметрыАлкогольнойПродукции.Свойство("АлкогольнаяПродукция")
			ИЛИ НЕ ПараметрыАлкогольнойПродукции.Свойство("Маркируемая")
			ИЛИ НЕ ПараметрыАлкогольнойПродукции.Свойство("Штрихкод")
			ИЛИ НЕ ПараметрыАлкогольнойПродукции.Свойство("Объем") Тогда
			РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'В процедуру подготовки входящих данных передана некорректная структура параметров.'");
			Возврат ВходящиеДанные;
		КонецЕсли;
		
		Если НЕ ПараметрыАлкогольнойПродукции.АлкогольнаяПродукция Тогда
			Продолжить;
		КонецЕсли;
		
		Если ПараметрыАлкогольнойПродукции.Маркируемая Тогда
			
			Если НЕ ПараметрыАлкогольнойПродукции.Свойство("ШтрихкодМарки") Тогда
				РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'Отсутствует обязательное поле ""Штрихкод марки"".'");
				Возврат ВходящиеДанные;
			КонецЕсли;
			
		Иначе
			
			Если НЕ ВыгружатьНемаркируемуюПродукцию Тогда
				Продолжить;
			КонецЕсли;
			
			Если НЕ ПараметрыАлкогольнойПродукции.Свойство("Крепость") Тогда
				РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'Отсутствует обязательное поле ""Крепость"".'");
				Возврат ВходящиеДанные;
			КонецЕсли;
			
			Если НЕ ПараметрыАлкогольнойПродукции.Свойство("КодВидаПродукции") Тогда
				РезультатПодготовки.ОписаниеОшибки = НСтр("ru = 'Отсутствует обязательное поле ""Код вида алкогольной продукции"".'");
				Возврат ВходящиеДанные;
			КонецЕсли;
			
		КонецЕсли;
		
		КоличествоСтрок = ?(ПараметрыАлкогольнойПродукции.Маркируемая, СтрокаТаблицы.Количество, 1);
		
		Для Сч = 1 По КоличествоСтрок Цикл
			СтрокаЧека = СтруктураДанныхСтрокиЧекаККМ();
			СтрокаЧека.Наименование   = СтрокаТаблицы.Наименование;
			СтрокаЧека.Количество     = ?(ПараметрыАлкогольнойПродукции.Маркируемая, 1, СтрокаТаблицы.Количество);
			
			Если СтрокаТаблицы.Количество = 0 ИЛИ СтрокаТаблицы.Скидка = 0 Тогда
				СтрокаЧека.Цена = СтрокаТаблицы.Цена;
			Иначе
				СтрокаЧека.Цена = Окр(СтрокаТаблицы.Цена * СтрокаТаблицы.Скидка * 0.01, 2);
			КонецЕсли;
			
			СтрокаЧека.ШтрихкодТовара = ПараметрыАлкогольнойПродукции.Штрихкод;
			СтрокаЧека.Объем          = ПараметрыАлкогольнойПродукции.Объем;
			
			Если НЕ ПараметрыАлкогольнойПродукции.Маркируемая Тогда
				СтрокаЧека.Крепость = ПараметрыАлкогольнойПродукции.Крепость;
				СтрокаЧека.КодВидаПродукции = ПараметрыАлкогольнойПродукции.КодВидаПродукции;
				ВходящиеДанные.ТаблицаТоваровБезМарки.Добавить(СтрокаЧека);
			Иначе
				Если ТипЗнч(ПараметрыАлкогольнойПродукции.ШтрихкодМарки) = Тип("Массив") Тогда
					СтрокаЧека.ШтрихкодМарки = ?(ПараметрыАлкогольнойПродукции.ШтрихкодМарки.ВГраница() < Сч - 1, "", ПараметрыАлкогольнойПродукции.ШтрихкодМарки[Сч - 1]);
				ИначеЕсли ТипЗнч(ПараметрыАлкогольнойПродукции.ШтрихкодМарки) = Тип("Строка") И Сч = 1 Тогда
					СтрокаЧека.ШтрихкодМарки = ПараметрыАлкогольнойПродукции.ШтрихкодМарки;
				КонецЕсли;
				
				ВходящиеДанные.ТаблицаТоваров.Добавить(СтрокаЧека);
			КонецЕсли;
		КонецЦикла;
		
	КонецЦикла;
	
	РезультатПодготовки.Результат = Истина;
	
	Возврат ВходящиеДанные;

КонецФункции // ПодготовитьВходящиеДанныеДляПодписиЧека()
Показать
6. @lexandr 142 10.06.16 22:37 Сейчас в теме
(4) brrart, ЗаводскойНомерККМ по умолчанию в УТ 10.3 стоит 0, на это утм не ругается, проверку проходит и данные отправляются, а вот в рознице, там если в кассе не заполнен номер кассового аппарата, то выгружается пустое значение и тогда контроль правильности составленного запроса не проходи и выходит ошика.
7. ejique 11.06.16 10:45 Сейчас в теме
(6) а в рознице в базе вводится номере ККМ или получается и драйвера ККМ при регистрации продажи?
8. @lexandr 142 11.06.16 11:34 Сейчас в теме
(7) ejique, В рознице номер ККМ указывается в настройка кассы, как видно на картинке в публикации.
9. Dwiss 162 21.06.16 17:19 Сейчас в теме
Не совсем правильное решение, номер чека - это не 1С номер, а номер который дает ФР и эти поля есть в документе Чек , я вышел по-другому в запросе добавил НомерСмены и НомерЧека и добавил 2 параметра (9,10) и их передаю и там подставляю.
10. lexme 24.06.16 08:49 Сейчас в теме
на релизе 37.1 ут 10.3 при попытке пробить чек именно любого пива вылезает ошибка на чеке "не удалось сформировать подпись ЕГАИС некорректный код алкогольной продукции" с указанием кода, при этом на такой же базе в другом магазине всё проходит нормально. куда копать? уже очищал значения свойств объектов "коды алкогольной продукции" не помогает
11. @lexandr 142 24.06.16 11:37 Сейчас в теме
(10) lexme, Пока в константах убери галочку выгружать немаркируемую продукцию на закладке настройки обмена с ЕГАИС, он пиво просто выгружать не будет. Пока в 2016 году нет обязаности выгружать в егаис пиво и сидр. Поэтому пока галку можно снять с выходом следующих релизов 1с скорее всего данную ошибку поправит. Что косательно маркируемого алкоголя, то продажа его в 37.1 релизе идет нормально.
12. lexme 24.06.16 14:49 Сейчас в теме
(11) т..е вот таким образом списание проводить : В соответствии с Федеральным законом от 22.11.1995 N 171-ФЗ "О государственном регулировании производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции и об ограничении потребления (распития) алкогольной продукции" розничная продажа пива, пивных напитков, сидра, пуаре и медовухи не подлежит учету в системе ЕГАИС.

При этом, заполнение журнала учета розничных продаж в отношении пива, пивных напитков, сидра, пуаре и медовухи в электронном виде с использованием программных средств ЕГАИС производится следующим образом:
остатки продукции переводятся во второй регистр;
ежедневно в ЕГАИС фиксируется акт списания реализованной продукции с указанием причины списания: «Розничная реализация продукции, не подлежащая фиксации в ЕГАИС».
http://egais.ru/news/view?id=1473
13. ElenaBu 19.07.16 14:07 Сейчас в теме
А никого не смущает строка кода:

СтрокаЧека.Цена = Окр(СтрокаТаблицы.Цена * СтрокаТаблицы.Скидка * 0.01, 2);


если цена 150р и скидка 10, то получается по этой формуле, что в Егаис уйдет 15?
14. Tarlich 115 28.07.16 23:44 Сейчас в теме
15. user598309_varenichka89 01.09.16 04:09 Сейчас в теме
Здравствуйте! Помогите пожалуйста. При продаже продукции программа выдает ошибку. Скрин прилагаю в файле. Заранее благодарю
Прикрепленные файлы:
16. @lexandr 142 01.09.16 12:22 Сейчас в теме
(15) user598309_varenichka89, Не знаю от куда это, поэтому сложно точно сказать в чем причина, но судя из того что он ругается на превышение время, похоже что утм более 3 дней не может связаться с сервером по причине отсутсвия интернета или что-то мешает ему в передачи данных в интернет на сервер егаиса. По закону прописано, что утм в течении 3-х дней должен скинуть эти данные в егаис, если это не происходит, то продажа алкоголя будет заблакирована. Из картинки сложно судить, но похоже что дело именно в этом.
17. vcspektr 04.09.16 14:40 Сейчас в теме
Кто-нибудь может поделиться готовым cf-ником от розницы 1,0,9,16, я замучался уже, ничего не выходит....
18. @lexandr 142 04.09.16 23:18 Сейчас в теме
(17) vcspektr, Публикации конфигураций с возможностью подключать к одному рабочему месту двух кассовых аппаратов уже не содержат данных ошибок и могут отправлять данные о продажах в ЕГАИС. http://infostart.ru/public/404411/
19. vcspektr 05.09.16 10:25 Сейчас в теме
(18) Спасибо, к сожалению платная... Попробую пока сам
20. user1240289 18.06.19 17:46 Сейчас в теме
Добрый день! С помощью данного модуля можно подключить в УТ 10.3.18.5 (1С 8.3.8.2442) на один комп 2 он-лайн кассы для двух разных организаций, которые прописаны в одной базе 1С на SQL-сервере?
21. Xalmg 13.02.20 00:58 Сейчас в теме
Здравствуйте, "Управление торговлей", редакция 10.3 (10.3.58.2) (http://v8.1c.ru/trade/)
Copyright (С) ООО "1C-Софт", 2003-2019. Все права защищены
(http://www.1c.ru).1С:Предприятие 8.3 (8.3.15.1565). У нас практически такая же ошибка java.lang.IllegalArgumentException: org.xml.sax.SAXParseException; cvc-pattern-valid: Value '35.192' is not facet-valid with respect to pattern '[1-9][0-9]{0,9}' for type 'COUNT'. Появилась после отката платформы
Оставьте свое сообщение