gifts2017

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

Опубликовал @Lexandr Zubov (@lexandr) в раздел Программирование - Ошибки в отраслевых решениях

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

В программе УТ 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. Если у Вас есть еще какие-либо ошибки, с которыми Вы столкнулись в момент начала продаж алкогольной продукции через систему ЕГАИС, пишите в комментариях, с радостью добавлю описание и решение их в статью.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Sergii Kiselev (ejique) 09.06.16 14:38
ПараметрыЧека[9] = Прав(Ссылка.Номер,5);

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

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

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

Не удалось отправить чек в УТМ.
Ошибка при выполнении 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'.


Подскажите какой версией транспортного модуля вы пользуетесь?
4. Sergei Karpushev (brrart) 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 Тогда
					СтрокаЧека.ШтрихкодМарки = ПараметрыАлкогольнойПродукции.ШтрихкодМарки;
				КонецЕсли;
				
				ВходящиеДанные.ТаблицаТоваров.Добавить(СтрокаЧека);
			КонецЕсли;
		КонецЦикла;
		
	КонецЦикла;
	
	РезультатПодготовки.Результат = Истина;
	
	Возврат ВходящиеДанные;

КонецФункции // ПодготовитьВходящиеДанныеДляПодписиЧека()
...Показать Скрыть
5. @Lexandr Zubov (@lexandr) 10.06.16 22:34
(3) ejique, и на 2.0.2 и на 2.0.3 проверял данную ошибку
6. @Lexandr Zubov (@lexandr) 10.06.16 22:37
(4) brrart, ЗаводскойНомерККМ по умолчанию в УТ 10.3 стоит 0, на это утм не ругается, проверку проходит и данные отправляются, а вот в рознице, там если в кассе не заполнен номер кассового аппарата, то выгружается пустое значение и тогда контроль правильности составленного запроса не проходи и выходит ошика.
7. Sergii Kiselev (ejique) 11.06.16 10:45
(6) @lexandr, а в рознице в базе вводится номере ККМ или получается и драйвера ККМ при регистрации продажи?
8. @Lexandr Zubov (@lexandr) 11.06.16 11:34
(7) ejique, В рознице номер ККМ указывается в настройка кассы, как видно на картинке в публикации.
9. Дмитрий Виссарионов (Dwiss) 21.06.16 17:19
Не совсем правильное решение, номер чека - это не 1С номер, а номер который дает ФР и эти поля есть в документе Чек , я вышел по-другому в запросе добавил НомерСмены и НомерЧека и добавил 2 параметра (9,10) и их передаю и там подставляю.
10. lex lex (lexme) 24.06.16 08:49
на релизе 37.1 ут 10.3 при попытке пробить чек именно любого пива вылезает ошибка на чеке "не удалось сформировать подпись ЕГАИС некорректный код алкогольной продукции" с указанием кода, при этом на такой же базе в другом магазине всё проходит нормально. куда копать? уже очищал значения свойств объектов "коды алкогольной продукции" не помогает
11. @Lexandr Zubov (@lexandr) 24.06.16 11:37
(10) lexme, Пока в константах убери галочку выгружать немаркируемую продукцию на закладке настройки обмена с ЕГАИС, он пиво просто выгружать не будет. Пока в 2016 году нет обязаности выгружать в егаис пиво и сидр. Поэтому пока галку можно снять с выходом следующих релизов 1с скорее всего данную ошибку поправит. Что косательно маркируемого алкоголя, то продажа его в 37.1 релизе идет нормально.
12. lex lex (lexme) 24.06.16 14:49
(11) @lexandr, т..е вот таким образом списание проводить : В соответствии с Федеральным законом от 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) 28.07.16 23:44
15. Варвара Щербакова (user598309_varenichka89) 01.09.16 04:09
Здравствуйте! Помогите пожалуйста. При продаже продукции программа выдает ошибку. Скрин прилагаю в файле. Заранее благодарю
Прикрепленные файлы:
16. @Lexandr Zubov (@lexandr) 01.09.16 12:22
(15) user598309_varenichka89, Не знаю от куда это, поэтому сложно точно сказать в чем причина, но судя из того что он ругается на превышение время, похоже что утм более 3 дней не может связаться с сервером по причине отсутсвия интернета или что-то мешает ему в передачи данных в интернет на сервер егаиса. По закону прописано, что утм в течении 3-х дней должен скинуть эти данные в егаис, если это не происходит, то продажа алкоголя будет заблакирована. Из картинки сложно судить, но похоже что дело именно в этом.
17. Павел Цуленков (vcspektr) 04.09.16 14:40
Кто-нибудь может поделиться готовым cf-ником от розницы 1,0,9,16, я замучался уже, ничего не выходит....
18. @Lexandr Zubov (@lexandr) 04.09.16 23:18
(17) vcspektr, Публикации конфигураций с возможностью подключать к одному рабочему месту двух кассовых аппаратов уже не содержат данных ошибок и могут отправлять данные о продажах в ЕГАИС. http://infostart.ru/public/404411/
19. Павел Цуленков (vcspektr) 05.09.16 10:25
(18) @lexandr, Спасибо, к сожалению платная... Попробую пока сам
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа