|
Касса Атол 30Ф в УТ 11.1 "неверный НДС" | ☑ | ||
---|---|---|---|---|
0
Valentus
31.01.19
✎
13:26
|
Всем добрый день.
Есть проблема: в базе УТ 11.1 по кассе Атол 30Ф из ПКО не печатается чек. Если ПКО привязан к Заказу покупателя "при печати чека произошла ошибка. Чек не напечатан на фискальном устройстве. Дополнительное описание: при выполнении операции произошла ошибка: Указан неверный НДС". Драйвер стоит 8.16.05, на 10-е драйвера касса не реагирует (хотя они установлены и тест проходит). Обновлять конфигурацию не можем. Если у ПКО убрать заказ клиента - чек печатается, но без спецификации номенклатуры. Подскажите где искать проблему. Спасибо |
|||
1
Garykom
гуру
31.01.19
✎
13:41
|
(0) "Указан неверный НДС"
Отладчик в зубы и покажи XML который формируется |
|||
2
Garykom
гуру
31.01.19
✎
13:43
|
Суть в том что вероятно сами запилили "Ставку НДС 20%" но не везде.
Надо на обновленных прошивках ККТ передавать через драйвер старую ставку 18%, а ККТ чтобы сама с 01.01.2019 пробивала 20% |
|||
3
Garykom
гуру
31.01.19
✎
13:43
|
(2) не везде правильно
|
|||
4
Woldemar177
31.01.19
✎
13:56
|
(0) Прошивка кассы какая? Кассу выключаете жмете прогонку включаете два пика отпускаете выйдет тестовый чек смотрите прошивку.
|
|||
5
Valentus
31.01.19
✎
14:15
|
(0) Прошивка кассы какая? Кассу выключаете жмете прогонку включаете два пика отпускаете выйдет тестовый чек смотрите прошивку.
После двух пиков вылез "демонстрационный чек с кучей шрифтов" Прошивки на нем не написано. Через драйвер ККМ АТОЛ 30Ф, №00000000, версия: 3.0.1245, ФИСК. |
|||
6
Garykom
гуру
31.01.19
✎
14:16
|
(5) "Два пика" это после первого при включении
|
|||
7
Garykom
гуру
31.01.19
✎
14:17
|
(6)+ Хотя нет всего два с первым
|
|||
8
Valentus
31.01.19
✎
14:21
|
версия: 3.0.1245 - это не прошивка?
|
|||
9
Valentus
31.01.19
✎
16:10
|
Посмотрел. у Драйвера Атола KKT_8_16_05_00_Full нет ставки в налогах 20%.
|
|||
10
Garykom
гуру
31.01.19
✎
16:13
|
(9) Читать не пробовали? Что написано в (1) и (2)
|
|||
11
Aswed
31.01.19
✎
16:15
|
(9) Я и на 8.14 удачно печатаю НДС 20
|
|||
12
Garykom
гуру
31.01.19
✎
16:49
|
(11) Сказочник
|
|||
13
Valentus
01.02.19
✎
10:57
|
Ошибку нашел. Если в заказе клиента стоит 20%, то не печатается. Если поставить в заказе клиента 18%, то печатается все нормально с номенклатурой и с 20%
|
|||
14
Valentus
01.02.19
✎
12:14
|
Отладчик не показывает ошибок и остановок нет, но "неверный НДС" вылетает.
в УТ 10.3 это поправляли в ПолучитьСтавкуНДСДляФискализацииЧека в УТ 11 не найду такой. где ещё можно посмотреть? проверил весь код, где встречается НДС18, везде есть НДС20 |
|||
15
Garykom
гуру
01.02.19
✎
12:43
|
(14) Еще раз повторю для невнимательных.
Найди место в коде где формируется XML по формату https://its.1c.ru/db/metod8dev#content:4829:hdoc:chapter270 с "CheckPackage" И сделай перед этим так чтобы в "Positions FiscalString Tax" вместо "20" было "18", не смотря на то что в конфе 20% выбрано. У тебя в драйвере старая интеграционная компонента для 1С, она не понимает НДС20%. Но прошивка ККТ получив 18 сама пробьет 20, так что пофиг. |
|||
16
Valentus
01.02.19
✎
13:02
|
Функция ПолучитьXMLПакетДляФискализацияЧека(ОбщиеПараметры, ВыходныеПараметры, СуммаЧека, ШиринаСтроки = 32) Экспорт
ПозицииЧека = ОбщиеПараметры.ПозицииЧека; ТаблицаОплат = ОбщиеПараметры.ТаблицаОплат; СуммаЧека = 0; // Пакетная печать чека. Подготовка пакета. ЗаписьXML = Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку("UTF-8"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.ЗаписатьНачалоЭлемента("CheckPackage"); ЗаписьXML.ЗаписатьНачалоЭлемента("Parameters"); ТипРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодТипаРасчетаДенежнымиСредствами(ОбщиеПараметры.ТипРасчета); ЗаписьXML.ЗаписатьАтрибут("PaymentType" , XMLСтрока(ТипРасчета)); Если ОбщиеПараметры.Свойство("КодСистемыНалогообложения") И ОбщиеПараметры.КодСистемыНалогообложения <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("TaxVariant" , XMLСтрока(ОбщиеПараметры.КодСистемыНалогообложения)); КонецЕсли; ЗаписьXML.ЗаписатьАтрибут("SenderEmail", XMLСтрока(?(ОбщиеПараметры.Свойство("ОтправительEmail"), ОбщиеПараметры.ОтправительEmail, ""))); // Email отправляет средствами 1C Если ОбщиеПараметры.Свойство("Отправляет1СEmail") И НЕ ОбщиеПараметры.Отправляет1СEmail Тогда ЗаписьXML.ЗаписатьАтрибут("CustomerEmail", XMLСтрока(?(ОбщиеПараметры.Свойство("ПокупательEmail"), ОбщиеПараметры.ПокупательEmail, ""))); КонецЕсли; // SMS отправляет средствами 1C Если ОбщиеПараметры.Свойство("Отправляет1СSMS") И НЕ ОбщиеПараметры.Отправляет1СSMS Тогда ЗаписьXML.ЗаписатьАтрибут("CustomerPhone", XMLСтрока(?(ОбщиеПараметры.Свойство("ПокупательНомер"), ОбщиеПараметры.ПокупательНомер, ""))); КонецЕсли; Если ОбщиеПараметры.Свойство("ВознагражденияАгента") И ОбщиеПараметры.ВознагражденияАгента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("AgentCompensation" , XMLСтрока(ОбщиеПараметры.ВознагражденияАгента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ТелефонПлатежногоАгента") И ОбщиеПараметры.ТелефонПлатежногоАгента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("AgentPhone" , XMLСтрока(ОбщиеПараметры.ТелефонПлатежногоАгента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ТелефонОператораПоПриемуПлатежей") И ОбщиеПараметры.ТелефонОператораПоПриемуПлатежей <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("ReceivePaymentsOperatorPhone" , XMLСтрока(ОбщиеПараметры.ТелефонОператораПоПриемуПлатежей)); КонецЕсли; Если ОбщиеПараметры.Свойство("ТелефонОператораПеревода") И ОбщиеПараметры.ТелефонОператораПеревода <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorPhone" , XMLСтрока(ОбщиеПараметры.ТелефонОператораПеревода)); КонецЕсли; Если ОбщиеПараметры.Свойство("АдресОператораПеревода") И ОбщиеПараметры.АдресОператораПеревода <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorAddress" , XMLСтрока(ОбщиеПараметры.АдресОператораПеревода)); КонецЕсли; Если ОбщиеПараметры.Свойство("ИННОператораПеревода") И ОбщиеПараметры.ИННОператораПеревода <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorVATIN" , XMLСтрока(ОбщиеПараметры.ИННОператораПеревода)); КонецЕсли; Если ОбщиеПараметры.Свойство("НаименованиеОператораПеревода") И ОбщиеПараметры.НаименованиеОператораПеревода <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorName" , XMLСтрока(ОбщиеПараметры.НаименованиеОператораПеревода)); КонецЕсли; Если ОбщиеПараметры.Свойство("ТелефонБанковскогоАгента") И ОбщиеПараметры.ТелефонБанковскогоАгента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("BankAgentPhone" , XMLСтрока(ОбщиеПараметры.ТелефонБанковскогоАгента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ТелефонБанковскогоСубагента") И ОбщиеПараметры.ТелефонБанковскогоСубагента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("BankSubagentPhone" , XMLСтрока(ОбщиеПараметры.ТелефонБанковскогоСубагента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ОперацияБанковскогоАгента") И ОбщиеПараметры.ОперацияБанковскогоАгента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("BankAgentOperation" , XMLСтрока(ОбщиеПараметры.ОперацияБанковскогоАгента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ОперацияБанковскогоСубагента") И ОбщиеПараметры.ОперацияБанковскогоСубагента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("BankSubagentOperation" , XMLСтрока(ОбщиеПараметры.ОперацияБанковскогоСубагента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ВознагражденияБанковскогоАгента") И ОбщиеПараметры.ВознагражденияБанковскогоАгента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("BankAgentCompensation" , XMLСтрока(ОбщиеПараметры.ВознагражденияБанковскогоАгента)); КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); // Табличная часть Если ОбщиеПараметры.ПозицииЧека <> Неопределено Тогда ЗаписьXML.ЗаписатьНачалоЭлемента("Positions"); Для ИндексМассива = 0 По ОбщиеПараметры.ПозицииЧека.Количество() - 1 Цикл ТекущаяПозиция = ОбщиеПараметры.ПозицииЧека[ИндексМассива]; Если ТекущаяПозиция.Свойство("ФискальнаяСтрока") Тогда ЗаписьXML.ЗаписатьНачалоЭлемента("FiscalString"); ЗаписьXML.ЗаписатьАтрибут("Name" , XMLСтрока(ТекущаяПозиция.Наименование)); ЗаписьXML.ЗаписатьАтрибут("Quantity" , XMLСтрока(ТекущаяПозиция.Количество)); ЗаписьXML.ЗаписатьАтрибут("Price" , XMLСтрока(ТекущаяПозиция.Сумма/ТекущаяПозиция.Количество)); //Т.В.Ю. //ЗаписьXML.ЗаписатьАтрибут("Price" , XMLСтрока(ТекущаяПозиция.Цена)); ЗаписьXML.ЗаписатьАтрибут("Amount" , XMLСтрока(ТекущаяПозиция.Сумма)); ЗаписьXML.ЗаписатьАтрибут("DiscountSum" , XMLСтрока(0)); //Т.В.Ю. ЗаписьXML.ЗаписатьАтрибут("Department", XMLСтрока(ТекущаяПозиция.НомерСекции)); Если НЕ ПустаяСтрока(ТекущаяПозиция.СтавкаНДС) Тогда //ЗаписьXML.ЗаписатьАтрибут("Tax" , XMLСтрока(ТекущаяПозиция.СтавкаНДС)); ЗаписьXML.ЗаписатьАтрибут("Tax" , "SumTAX18"); Иначе ЗаписьXML.ЗаписатьАтрибут("Tax" , "none"); КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); СуммаЧека = СуммаЧека + ТекущаяПозиция.Сумма; ИначеЕсли ТекущаяПозиция.Свойство("ТекстоваяСтрока") Тогда Если ТекущаяПозиция.Свойство("ПереносСтроки") И ТекущаяПозиция.ПереносСтроки Тогда ТекстовыеСтроки = МенеджерОборудованияКлиентСервер.ПостроитьПолеПереносом(ТекущаяПозиция.Текст, ШиринаСтроки); Иначе ТекстовыеСтроки = ТекущаяПозиция.Текст; КонецЕсли; Выравнивание = ?(ТекущаяПозиция.Свойство("Выравнивание"), ТекущаяПозиция.Выравнивание, "Лево"); Для НомерСтроки = 1 По СтрЧислоСтрок(ТекстовыеСтроки) Цикл ВыделеннаяСтрока = СтрПолучитьСтроку(ТекстовыеСтроки, НомерСтроки); ВыделеннаяСтрока = МенеджерОборудованияКлиентСервер.ВыравнитьПоле(ВыделеннаяСтрока, ШиринаСтроки, Выравнивание); ЗаписьXML.ЗаписатьНачалоЭлемента("TextString"); ЗаписьXML.ЗаписатьАтрибут("Text", XMLСтрока(ВыделеннаяСтрока)); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; ИначеЕсли ТекущаяПозиция.Свойство("ШтрихКод") Тогда ЗаписьXML.ЗаписатьНачалоЭлемента("Barcode"); ЗаписьXML.ЗаписатьАтрибут("BarcodeType", XMLСтрока(ТекущаяПозиция.ТипШтрихкода)); ЗаписьXML.ЗаписатьАтрибут("Barcode", XMLСтрока(ТекущаяПозиция.ШтрихКод)); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЕсли; КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЕсли; Так? ранее с торговым оборудованием просто не сталкивался |
|||
17
Valentus
01.02.19
✎
13:03
|
Если НЕ ПустаяСтрока(ТекущаяПозиция.СтавкаНДС) Тогда
//ЗаписьXML.ЗаписатьАтрибут("Tax" , XMLСтрока(ТекущаяПозиция.СтавкаНДС)); ЗаписьXML.ЗаписатьАтрибут("Tax" , "SumTAX18"); Иначе ЗаписьXML.ЗаписатьАтрибут("Tax" , "none"); КонецЕсли; |
|||
18
Garykom
гуру
01.02.19
✎
13:07
|
ЗаписьXML.ЗаписатьАтрибут("Tax", "18");
|
|||
19
Garykom
гуру
01.02.19
✎
13:08
|
"SumTAX18" это из другой оперы - это не указание ставки а ручное указание суммы НДС18
|
|||
20
Valentus
04.02.19
✎
09:32
|
Спасибо за помощь! Всё получилось!
|
|||
21
IchBinKOT
14.02.19
✎
16:39
|
(14) у нас в УПП был косяк что в процедуре МенеджерОборудованияВызовСервера.ПолучитьXMLПакетДляФискализацияЧека_ТО не обрабатывалась ставка 20%, дописал две строи и все запечатало
Если НЕ ПустаяСтрока(ТекущаяПозиция.СтавкаНДС) Тогда Если ТекущаяПозиция.СтавкаНДС = 118 Тогда ЗначениеСтавкаНДС = "18/118"; ИначеЕсли ТекущаяПозиция.СтавкаНДС = 110 Тогда ЗначениеСтавкаНДС = "10/110"; Иначе ЗначениеСтавкаНДС = ТекущаяПозиция.СтавкаНДС; КонецЕсли; Иначе ЗначениеСтавкаНДС = "none"; КонецЕсли; сюда попадало значение 120 и оно же залетало в XML и валило печать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |