Причина возникновения: Возникает попытке заполнения акцизных марок.
Где расположена: Общий модуль - АкцизныеМаркиЕГАИС - Процедура ПроверитьЗаполнениеАкцизныхМарокТТНИсходящейЕГАИС(Объект, Отказ) Экспорт
Что делать: Проверить количество указанных акцизных марок в табличной части документа. Обратится за помощью к программисту 1С.
Для программиста: В данной функции расположен запрос который получает расхождения в данных табличной части " "Товары" и "МаркируемыеТовары" и в случае наличия расхождений алгоритм вызывает ошибку.
Текст процедуры:
Причина возникновения: Возникает попытке заполнения акцизных марок.
Где расположена: Общий модуль - АкцизныеМаркиЕГАИС - Процедура ПроверитьЗаполнениеАкцизныхМарокТТНИсходящейЕГАИС(Объект, Отказ) Экспорт
Что делать: Проверить количество указанных акцизных марок в табличной части документа. Обратится за помощью к программисту 1С.
Для программиста: В данной функции расположен запрос который получает расхождения в данных табличной части " "Товары" и "МаркируемыеТовары" и в случае наличия расхождений алгоритм вызывает ошибку.
Текст процедуры:
Процедура ПроверитьЗаполнениеАкцизныхМарокТТНИсходящейЕГАИС(Объект, Отказ) Экспорт
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫРАЗИТЬ(ТаблицаТовары.АлкогольнаяПродукция КАК Справочник.КлассификаторАлкогольнойПродукцииЕГАИС) КАК АлкогольнаяПродукция,
| ВЫРАЗИТЬ(ТаблицаТовары.Справка2 КАК Справочник.Справки2ЕГАИС) КАК Справка2,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Количество КАК Количество
|ПОМЕСТИТЬ Товары
|ИЗ
| &ТаблицаТовары КАК ТаблицаТовары
|;
|" + ИнтеграцияЕГАИС.ТекстЗапросаВТКоэффициентыПересчетаВЕдиницыЕГАИС("Товары") + "
|;
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| Товары.АлкогольнаяПродукция КАК АлкогольнаяПродукция,
| Товары.Справка2 КАК Справка2,
| ЕСТЬNULL(Справки2ЕГАИС.Поштучная, ЛОЖЬ) КАК Справка2Поштучная,
| ВЫБОР
| КОГДА ЕСТЬNULL(ОписаниеНоменклатуры.КоличествоВПотребительскойУпаковке, 0) > 0
| ТОГДА ВЫРАЗИТЬ(Товары.Количество * ЕСТЬNULL(ЕдиницыЕГАИС.Коэффициент, 1) /
| ОписаниеНоменклатуры.КоличествоВПотребительскойУпаковке КАК ЧИСЛО(12, 0))
| ИНАЧЕ Товары.Количество * ЕСТЬNULL(ЕдиницыЕГАИС.Коэффициент, 1)
| КОНЕЦ КАК Количество
|ПОМЕСТИТЬ МаркируемыеТовары
|ИЗ
| Товары КАК Товары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КлассификаторАлкогольнойПродукцииЕГАИС КАК КлассификаторАлкогольнойПродукцииЕГАИС
| ПО Товары.АлкогольнаяПродукция = КлассификаторАлкогольнойПродукцииЕГАИС.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Справки2ЕГАИС КАК Справки2ЕГАИС
| ПО Товары.Справка2 = Справки2ЕГАИС.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКоэффициентыПересчетаВЕдиницыЕГАИС КАК ЕдиницыЕГАИС
| ПО ЕдиницыЕГАИС.АлкогольнаяПродукция = Товары.АлкогольнаяПродукция
| И ЕдиницыЕГАИС.Номенклатура = Товары.Номенклатура
| И ЕдиницыЕГАИС.Характеристика = Товары.Характеристика
| И ЕдиницыЕГАИС.Серия = Товары.Серия
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОписаниеНоменклатурыИС КАК ОписаниеНоменклатуры
| ПО Товары.Номенклатура = ОписаниеНоменклатуры.Номенклатура
| И Товары.АлкогольнаяПродукция.ТипПродукции <> ЗНАЧЕНИЕ(Перечисление.ТипыПродукцииЕГАИС.Неупакованная)
|ГДЕ
| КлассификаторАлкогольнойПродукцииЕГАИС.ВидПродукции.Маркируемый
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МаркируемыеТовары.Справка2 КАК Справка2
|ПОМЕСТИТЬ ТоварыСправки2
|ИЗ
| МаркируемыеТовары КАК МаркируемыеТовары
|ГДЕ
| МаркируемыеТовары.Справка2 <> ЗНАЧЕНИЕ(Справочник.Справки2ЕГАИС.ПустаяСсылка)
|СГРУППИРОВАТЬ ПО
| МаркируемыеТовары.Справка2
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаАкцизныеМарки.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫРАЗИТЬ(ТаблицаАкцизныеМарки.Справка2 КАК Справочник.Справки2ЕГАИС) КАК Справка2,
| ТаблицаАкцизныеМарки.Количество КАК Количество
|ПОМЕСТИТЬ АкцизныеМарки
|ИЗ
| &ТаблицаАкцизныеМарки КАК ТаблицаАкцизныеМарки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| АкцизныеМарки.ИдентификаторСтроки КАК ИдентификаторСтроки,
| СУММА(АкцизныеМарки.Количество) КАК Количество
|ПОМЕСТИТЬ АкцизныеМаркиПоСтрокам
|ИЗ
| АкцизныеМарки КАК АкцизныеМарки
|ГДЕ
| АкцизныеМарки.Справка2 = ЗНАЧЕНИЕ(Справочник.Справки2ЕГАИС.ПустаяСсылка)
|СГРУППИРОВАТЬ ПО
| АкцизныеМарки.ИдентификаторСтроки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| АкцизныеМарки.Справка2 КАК Справка2,
| СУММА(АкцизныеМарки.Количество) КАК Количество
|ПОМЕСТИТЬ АкцизныеМаркиПоСправкам2
|ИЗ
| АкцизныеМарки КАК АкцизныеМарки
|ГДЕ
| АкцизныеМарки.ИдентификаторСтроки = """"
|СГРУППИРОВАТЬ ПО
| АкцизныеМарки.Справка2
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МаркируемыеТовары.НомерСтроки КАК НомерСтроки,
| МаркируемыеТовары.АлкогольнаяПродукция КАК АлкогольнаяПродукция,
| МаркируемыеТовары.Количество КАК МаркируемаяПродукцияКоличество,
| ЕСТЬNULL(АкцизныеМаркиПоСправкам2.Количество, 0)
| + ЕСТЬNULL(АкцизныеМаркиПоСтрокам.Количество, 0) КАК АкцизныеМаркиКоличество
|ИЗ
| МаркируемыеТовары КАК МаркируемыеТовары
| ЛЕВОЕ СОЕДИНЕНИЕ АкцизныеМаркиПоСтрокам КАК АкцизныеМаркиПоСтрокам
| ПО МаркируемыеТовары.ИдентификаторСтроки = АкцизныеМаркиПоСтрокам.ИдентификаторСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ АкцизныеМаркиПоСправкам2 КАК АкцизныеМаркиПоСправкам2
| ПО МаркируемыеТовары.Справка2 = АкцизныеМаркиПоСправкам2.Справка2
|ГДЕ
| МаркируемыеТовары.Справка2Поштучная
| И МаркируемыеТовары.Количество
| <> (ЕСТЬNULL(АкцизныеМаркиПоСправкам2.Количество, 0) + ЕСТЬNULL(АкцизныеМаркиПоСтрокам.Количество, 0))
|");
ТаблицаТовары = Объект.Товары.Выгрузить(, "НомерСтроки, ИдентификаторСтроки, АлкогольнаяПродукция, Справка2,
|Номенклатура, Характеристика, Серия, Количество");
ТаблицаАкцизныеМарки = Объект.АкцизныеМарки.Выгрузить(, "ИдентификаторСтроки, Справка2, Количество");
СтатусыОтсутствует = Новый Массив();
СтатусыОтсутствует.Добавить(Перечисления.СтатусыАкцизныхМарок.Реализована);
СтатусыОтсутствует.Добавить(Перечисления.СтатусыАкцизныхМарок.Отсутствует);
Запрос.УстановитьПараметр("ТаблицаТовары", ТаблицаТовары);
Запрос.УстановитьПараметр("ТаблицаАкцизныеМарки", ТаблицаАкцизныеМарки);
Запрос.УстановитьПараметр("СтатусыОтсутствует", СтатусыОтсутствует);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ТекстОшибки = НСтр("ru = 'В строке %1 для %2 должно быть указано акцизных марок - %3, а указано - %4.'");
ТекстОшибки = СтрШаблон(ТекстОшибки,
Выборка.НомерСтроки,
Выборка.АлкогольнаяПродукция,
Выборка.МаркируемаяПродукцияКоличество,
Выборка.АкцизныеМаркиКоличество);
ОбщегоНазначения.СообщитьПользователю(
ТекстОшибки,
Объект,
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Товары", Выборка.НомерСтроки, "КоличествоУпаковок"),,
Отказ);
КонецЦикла;
КонецПроцедуры