Исправление ошибок в типовых релизах 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 Розница

См. также

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

Раздельный учет гособоронзаказа в 1С: Отчеты по исполнению госконтрактов, расчетно-калькуляционные материалы и контроль операций для исполнения в срок в 1С: Бухгалтерия 3.0 и Управление Холдингом 3.2. Простая настройка и полное соответствие законодательству. Профессиональный консалтинг и регулярные обновления продукта.

44000 руб.

28.08.2020    368654    2482    137    

1085

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

Интеграция для работы 1С с ГИИС ДМДК. Государственная интегрированная информационная система в сфере контроля за оборотом драгоценных металлов, драгоценных камней и изделий из них на всех этапах этого оборота.

65000 руб.

12.04.2022    18660    160    34    

38

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

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

55200 руб.

16.08.2019    94018    257    89    

151

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

Автоматизация учета ЕГАИС в 1С для оптовой торговли, производства и импорта. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

828 руб.

15.12.2015    172600    863    370    

407

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

Автоматический обмен данными с системой ФГИС Меркурий из 1С через ВетИС API: загрузка данных по хозяйствующим субъектам, предприятиям; типов, групп, видов, наименований продукции, сопоставление данных и запись их в базу данных; создание на основании расходных документов транспортных партий, отправка на сервер, печать полученных ветеринарных свидетельств, запрос остатков складского журнала, проведение инвентаризаций, оформление производственных партий.

11500 руб.

08.12.2017    105943    291    110    

147

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

Обработка для обмена платежными документами в формате xml для системы Федерального казначейства "Электронный бюджет" из конфигураций 1С. Поставляется для БП 3.0 Работа только с контрагентами. Сайт "Электронного Бюджета": https://www.budget.gov.ru/

19200 руб.

14.10.2020    64381    392    103    

323

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

Внешняя обработка для инвентаризации кодов маркировки в системе "Честный знак". Позволяет быстро определить и списать коды маркировки проданного, испорченного, утраченного (полный перечень причин списания указан ниже)  товара, которые всё ещё числятся за организацией. Привести в соответствие остатки маркированного товара программы 1С и системы "Честного знака".

6540 руб.

09.01.2024    6229    81    21    

82

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

Универсальная конфигурация ХамелеонЗерно для взаимодействия с системой ФГИС Зерно (тестовый+рабочий контур) может использоваться для интеграции в любую конфигурацию на базе 1С, версии ПРОФ и выше. Работа через API 1.0.7 и на API 1.0.8. Для удобства реализован общий интерфейс в виде обработки, схожей с интерфейсом ФГИС Зерно, но возможностей гораздо больше, т.к. при интеграции в Вашу учетную систему, можно на основании Ваших справочников и документов, создавать соответствующие документы и справочники в системе ФГИС Зерно и наоборот.

6000 руб.

27.06.2023    5041    20    2    

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

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

Предлагаю заменить на
ПараметрыЧека.Добавить(Прав(Ссылка.Номер,5));
2. @lexandr 144 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 144 10.06.16 22:34 Сейчас в теме
(3) ejique, и на 2.0.2 и на 2.0.3 проверял данную ошибку
4. brrart 27 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 144 10.06.16 22:37 Сейчас в теме
(4) brrart, ЗаводскойНомерККМ по умолчанию в УТ 10.3 стоит 0, на это утм не ругается, проверку проходит и данные отправляются, а вот в рознице, там если в кассе не заполнен номер кассового аппарата, то выгружается пустое значение и тогда контроль правильности составленного запроса не проходи и выходит ошика.
7. ejique 11.06.16 10:45 Сейчас в теме
(6) а в рознице в базе вводится номере ККМ или получается и драйвера ККМ при регистрации продажи?
8. @lexandr 144 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 144 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 118 28.07.16 23:44 Сейчас в теме
15. user598309_varenichka89 01.09.16 04:09 Сейчас в теме
Здравствуйте! Помогите пожалуйста. При продаже продукции программа выдает ошибку. Скрин прилагаю в файле. Заранее благодарю
Прикрепленные файлы:
16. @lexandr 144 01.09.16 12:22 Сейчас в теме
(15) user598309_varenichka89, Не знаю от куда это, поэтому сложно точно сказать в чем причина, но судя из того что он ругается на превышение время, похоже что утм более 3 дней не может связаться с сервером по причине отсутсвия интернета или что-то мешает ему в передачи данных в интернет на сервер егаиса. По закону прописано, что утм в течении 3-х дней должен скинуть эти данные в егаис, если это не происходит, то продажа алкоголя будет заблакирована. Из картинки сложно судить, но похоже что дело именно в этом.
17. vcspektr 04.09.16 14:40 Сейчас в теме
Кто-нибудь может поделиться готовым cf-ником от розницы 1,0,9,16, я замучался уже, ничего не выходит....
18. @lexandr 144 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'. Появилась после отката платформы
Оставьте свое сообщение