Доброго дня! Подскажите, может кто-то сталкивался, с 09.11.2023 в личном кабинете в ОФД у чеков видим статус чека в ФНС: отказ в приеме. Код ошибки 420 - 2108. Как мы поняли ошибка связанна с тем, что не передается тег 2108. Но следом смотрим чеки за 08.11.2023 и ранее, где статус уже - принято. Хотя судя по чеку, тега 2108 в них так же нет. Подскажите, в чем может быть проблема?
ФФД 1.2
Подписчики сообщают о том, что с 09.11.2023 включена проверка на стороне ОФД/ФНС на обязательность наличия реквизита чека «мера количества предмета расчета» (тег 2108) для ФФД 1.2.
Тег 2108 мог не включаться в состав кассового чека отдельными категориями пользователей ККТ до 01.02.2021.
После 01.02.2021 реквизит «мера количества предмета расчета» (тег 2108) должен включаться в состав кассового чека всеми пользователями ККТ, применяющими ФФД версии 1.2, в отношении всех видов товаров: не подлежащих обязательной маркировке, штучных товаров, подлежащих обязательной маркировке, дробных товаров, подлежащих обязательной маркировке.
(1)
Присоединяюсь к вопросу.
И расширю его.
1. Как это исправить для новых чеков? Понятно, надо начать передавать этот тег.
2. Как это исправить для старых чеков? У нас огромное их количество было пробито за эти дни. Неужели для каждого делать чек коррекции?
(4) 1. Да, тег нужно дописать чтобы передавался
2. По старым чекам ОФД дает следующий ответ "Стоит предварительно уточнить в налоговой, потому как есть разные виды ошибок в ФД и одни чеки принимаются к учету с ошибкой (предупреждением), а другие нет. Если ФНС не принимает их (без 2108) к учету, как правило действительно делают коррекцию по данным чекам"
Добрый день! Нам тоже пришло сообщение об ошибке в чеках...Но вот вопрос! Чеки коррекции делать только по тем чекам которые налоговая указала в сообщении с ошибкой 420 или по всем чекам пробитым за эту смену. У меня сомнения ,что если не принято всего два чека ,а мы пробьем 20 чеков коррекции.
(8) а при чём тут тут те кто продавал кассы? Из драйвера ККТ всё успешно пробьётся. А вот программисты это единственная профессия которых не ругают, а хвалят за исправление их собственных ошибок.
Установил последние драйверы АТОЛ, отметку автоматической отправки тега 2108 поставил. Не помогло. Те кто продавал кассу перенаправляют на спецов 1С. Розница не на поддержке, уже 1000 лет не обновлялась. Обновление конфигурации добавит этот тег или нужно дорабатывать 1С ручками?
79.
ProstoProgrammist
621.12.23 14:16 Сейчас в теме
(12)
Здравствуйте. Тоже столкнулся с этой проблемой. Но у меня в XML есть тег обозначающий единицу измерения, но он называется MeasurementUnit, а нужно MeasureOfQuantity получается?
Аналогичная проблема на УТ 11.5.12.167. Обновил Драйвер Атол, с новым драйвером Атол 10.10.0.0 чеки отправляются в офд, но на офд таже ошибка. Есть решение?
Удалось решить проблему в УНФ 3.0.3.147 установкой нового драйвера АТОЛ 10.10.0.0. и созданием нового экземпляра оборудования. В программном коде для записи тега 2108 условие на ревизию интерфейса накладывается РевизияИнтерфейса >= 3004, после обновления драйвера оно стало отрабатывать.
При этом обнаружилась еще одна проблема: вместо штук в xml записывались прочие единицы (значение 255, а не 0). Проверяли реквизит MeasureOfQuantity в РС ФискальныеОперации. Связано было с тем, что в классификаторе единиц измерения для предопределенного элемента "штука" стоял код с пробелом в конце "796 " и при подборе сравнение с "796" не срабатывало.
Можете, скинуть кусок кода формирующий чек.
Попытался руками прописать указанный вами параметр. (на скрине неправильно - ставил 0)
На результат это не повлияло.
Всё та же ошибка
Условие про ревизию убирал. Драйвера атол самые свежие. Новый экземпляр создавал.
Салют!
Тоже, помогло создание нового экземпляра оборудования с драйвером ОФД 10.Х (ФФД 1.2) . В (14) скрин правильный.
Но, сначала нужно закрыть кассовую смену со старым экземпляром ККМ в РМК. Потом с открыть новую кассовую смену с новой кассой.
Но, как исправить неправильные чеки???
(19) Добрый день! В начале тоже просто убрали условие на ревизию интерфейса в месте, где пишется MeasureOfQuantity, но это не помогло, даже не смотря на то, что в файл xml параметр стал записываться (изначально вообще этого параметра в файле не было).
Может, потому что ревизия ни в одном месте проверяется, и от ее значения зависят параметры подключения, или дело все-таки в драйверах. Поэтому не стали трогать код, пошли другим путем.
Отладчиком смотрели какая ревизия, до обновления была 3002. После переустановке драйверов стала 4000. Когда ревизия изменилась, все условия стали отрабатывать, чеки пошли в ФНС.
Здравствуйте! Кто-нибудь нашел ответ как исправить чеки, которые находятся в жестком карантине? Текущие чеки исправили, уходят в ФНС. В налоговой, в ОФД ничего толком не говорят. Если у нас более 100 касс по розничным магазинам, чеков в карантине с 09.11.23 более 20000 штук, каждый чек исправить коррекцией просто нереально
Салют!
В 1С Рознице 2.3, есть чек коррекции на основании чека. Выводятся два чека. Один «Возврат прихода», другой «приход». Тут видео посмотрел от представителя Атол. My Webpage ,
говорит:- «один чек прихода нужно делать» с Приходом, для корректировки чеков в жёстком карантине (это наши с ошибкой).
На сайте налоговой https://www.nalog.gov.ru/rn28/news/activities_fts/12222712/ , делайте два.
Как правильно??. Уже более 1000 чеков коррекции сделали и тормознули, в ОФД висят статус принято, но не получиться ли, что у нас оборот в налоговой, обнулился по этим чекам. Первичный, не принятый, получается с «0» в ФНС и два корректирующих, в итоге тоже «0».
(30) Налоговая отвечает что чек нужен только один - "приход", возврат делать не нужно так как чек прихода ФНС не получила, только чек корректировки с признаком приход требуется для исправления. Только есть вопрос - как сделать только чек прихода? В 1с УНФ тоже делает 2 чека, или же можно создать чек не на основании а заново, но при этом всё забивать вручную и автоматически программа указывает причину чека коррекции - неприменение ККТ, а у нас по факту ККТ применялся но с ошибкой в теге 2108.
Добрый день. Создаем новыми чеками, без основания, вручную вносим проданные позиции. В теге 1177 указываем по какому чеку продажи и от какого числа корректировка, указываем также что корректируем в виду некорректной работы программного обеспечения и отсутствия в пробитых ранее чеках тега 2108.
(34)Добрый день! Если делать один чек, то на фискальном накопителе будет двойная сумма за одну и ту же покупку. И тогда данные на фискальном накопителе не будут совпадать с данными в налоговой. Насколько это критично? Будете ли что-нибудь предпринимать по этой ситуации?
(36) Пробиваем ведь чек коррекции, он на сумму выручки за день не влияет, в Z-отчет он попадает отдельной строкой. А для налоговой мы указываем от какой даты корректировка - чтоб можно было эти суммы сопоставить с банковскими выписками.
(14) Спасибо большое, долго думали в чём дело, ффд 1.2, а чеки ФНС не принимал. Прочитав ваш ответ и поговорив с программистом 1с, приняли решение создать новый экземпляр оборудования в 1с, но мы не обновляли драйвер ккт до 10.10, у нас остался 10.9.3.1.
Чеки пошли как дети в школу!
Что то совсем ничего не помогло. Обновили прошивку ККМ, поставили самую свежую (пришлось лицензию платить, если кто не знал новая фишка АТОЛа). Обновили драйвера (поставили 10.10.0.0), создали новую настройку оборудования (1С 8.3.22 Розница 2.3.10) И всё равно чеки в ОФД (новые) висят в статусе 420-2108, что за ерунда ? У нас распределёнка на 54 узла, из них мои 17, на 5 узлов моих, такая ошибка, остальные 12 работают нормально. Конфигурации всего, везде, одинаковые (ПК, ПО, Оборудование.) Есть у кого нибудь соображения ?
(40) Попробуйте в драйвере АТОЛА, зайти в Параметры ККТ. там найти флажок "Автоматически передавать тэг 2108". Как-то так он называется. Не скажу, что поможет на 100 процентов. но проверить стоит
(43)
Не могу написать, сообщения не отправляет.
Ещё немного по теме, взял ККМ и унёс на другое рабочее место где всё нормально работает и ККМ отработала, как положено. Вывод, проблема на месте в узле. Сегодня попробую всё удалить, зачистить, установить заново. Посмотрим.
1) Проверяем в 1с в торговом оборудовании с помощью какого драйвера касса подключена. Обязательно надо, что бы было ффд 1,2!!!!!! Если такого драйвера даже и не предлагают - зн обновляем 1с!
2) Обновляем драйвер от ккт до крайнего
3) Если первые два пункта не помогают, то прошиваем кассу до актуальной прошивки
У меня другой вопрос!!!! Кто как пробивал чеки коррекции которые не ушли в налоговую? Вроде как надо бить по каждому чеку ...но это же взбеситься можно.............планирую выбить 2 чека коррекции - нал и безнал на общую сумму. ХЗ прокатит ли.........Кто-то так уже делал?
Нам налоговая по телефону сама посоветовала сделать сводные чеки коррекции за весь период. ТОлько вот не понимаем теперь как в УТ при ффд 1.2 пробить чек коррекции,если чеки пробиваем с ПКО, а не с РМК.
Проблема такая же. Платформа 8.3.16.1148. 1С: Розница 2.3.7.22. Атол 1Ф (5.8.1). Обновил драйвер до 10.10.0.0 (компонента 1с подгружена тоже 10.10.0.0). Создавал новое оборудование, результат тот же. Через драйвер выбить можно с тегом 2108 (на чеке отображается "шт"). При пробитии через РМК 1С заветного "шт" в чеке нет, соответственно, чек ФНС не принимает. У кого получилось, напишите, пожалуйста, какие версии конфигурации. Может дело в конфигурации? Если да, то понять бы до какой обновляться необходимо. Поделитесь, пжл, кто как решил. Времени совсем нет, звонок из ФНС уже поступил.
Когда пробивал через драйвер обратил внимание, что код параметра штуки - 0. В 1С в справочнике единицы измерения штуки имеют код 796. Может глупость, но никто не пробовал его поменять в 1С на 0. Возможно, значение из этого поля берется. Завтра попробую...
Фиг его знает, ничего не помогает. Делал то что выше описывал, даже с бубном вокруг ПК плясал, не понимаю, чего ему надо. Многих старших админов спрашивал, предлагали даже ОС переставить. Успокоило начальство, говорят через месяц ИП закроют и всё равно что там дальше будет. По чекам коррекции, я так понял налоговики выставят сумму не полученных чеков, а мы должны будем суммарно отбить чек коррекции с драйвера ККМ и им этого хватит.
(50) Вы не пробовали еще конфигурацию обновлять? Вчера пересмотрел описание конфигураций 1С Розница. Пункт "Поддержка ФФД1.2" появился с версии 2.3.10.24. Может дело все-таки в конфигурации...
(51)
Я там выше писал, видимо не видели. 1С 8.3.19 Розница 2.3.10 драйвера АТОЛ 10.9.3 У меня распределённая база, 17 узлов в моём подчинении, везде всё одинаково настроено. Из них 5 работают с ошибкой, а остальные нормально. Я пробовал ККМ которая не пишет "штуки" ставить на рабочее место которое пишет, там она работала. Ошибка в узлах. Какая не знаю, не могу понять.
(52) Да, видел, что 2.3.10. Уже несколько раз тему перечитал, думал, что может что-то упустил. 5 с ошибкой, 12 нормально. Тогда вообще не понимаю в какую сторону копать, если у Вас такая ситуация... У меня на 4 точках проблема (где ффд1.2). Розница (2.3.7 и 2.3.9). Кто-то писал, что может быть дело в системе. Разные стоят: и 7, и 10. Платформы тоже разные пробовал. Оборудование удалял, драйвера разные ставил, компоненты 1с тоже. Кассу только пока не прошивал и конфигурацию не обновлял. Но судя по тому, что пишут на форумах это не основная причина и результат остается тот же. А не пробовали сверять настройки касс в 1с и в тест драйвере на компьютере, который выбивает и на том, который не выбивает? Может где-то какая-то галочка или настройка другая стоит... С Вашей помощью общими усилиями, думаю можно проблему выявить, потому что у Вас есть и рабочий и нерабочий вариант. Надо только найти отличия) Надеюсь, кто-то еще подключится.
У нас была такая же ошибка.
Была версия 1С:Ресторан ред.1 (1.0.17.13) и АТОЛ FPrint-22ПТК Версия 10.9.7 ФФД 1.2 ФН перепрошивали на 5 версию, Windows 10!
Помогло следующие: поменяли на 1С:Ресторан.Фронт-офис и обновили конфигурацию до 2.3.16.16 (таже 1с розница) и драйвер АТОЛ до 10.10.0.0 в ОФД стало отправляться без ошибок!
Вот только думаем, как теперь делать чек коррекции? если общий, то какой товар нужно выбрать или его можно вообще не заполнять, а только на вкладке "Оплата" выбрать тип оплаты и сумму общую вписать!
(55) Спасибо за информацию! Сегодня ночью попробую до 2.3.16 обновиться. В нашей налоговой сами не знают, как надо сделать коррекцию. Я пока до этого этапа не дошел, но думаю, что буду делать так: начиная с 9.11. открывать чеки и на основании каждого создавать чек коррекции, потому что одним чеком все-равно не вариант. Товар должны добавить, основание должны указать и тд. Еще сложней получится. Хотя, если ассортимент небольшой, можно по отчету по продажам с 09.11.2023 по хх.хх.хххх заполнить один чек коррекции и отправить его, но есть риск, что по телефону Вам согласуют такой вариант, а по факту другой отдел потом привлечет к ответственности. Как говорится, слова к делу не пришьешь...
Если по первому варианту, то заходите: Продажи-Чеки-Выделяете чек-Кнопка "Создать на основании"-Чек коррекции. Только отключить печать чека, иначе на ленте разориться можно). Кстати, лайфхак как можно не печать: открываете крышку кассы, где бумага, там видна термоголовка, на ней маленький "глазок" заклейте его ценником, бумагу выньте и можно создавать чеки коррекции.
(53)
Вот в том то вся и штука, что всё везде одинаково. На днях ещё одного специалиста спрошу, может у него какие мысли будут, найду ответ, обязательно отпишусь.
(56) Ваша ситуация меня еще в больший тупик ставит. Но попробую сегодня обновить 1 точку до 2.3.16. вдруг мне поможет). Буду ждать от Вас информацию) Позвонил в ЦТО, говорят, проблема на стороне 1С. Предвижу, что скажут в 1С: проблема на стороне оборудования)))
Письмо налоговой с разъяснениями по поводу исправления ошибки в теге 2108.
Выдержка : "09.11.2023 года кассовые чеки, сформированные по ФФД версии 1.2 и не содержащие реквизит «мера количества предмета расчета» (тег 2108), не принимаются ФНС России. При наличии кассовых чеков, которые не были приняты ФНС России, необходимо сформировать кассовые чеки коррекции на каждый непринятый кассовый чек.
Необходимо обратить внимание, что в случае, если некорректный кассовый чек не был принят ФНС России, то не требуется формировать кассовый чек коррекции с некорректными данными на обратную операцию. Необходимо сформировать кассовый чек коррекции в соответствии с правилами, установленными Приказом."
Вот какая штука: сценарии и логика формирования чеков во всех типовых конфигурациях основана именно на этом письме.
В моем случае чек коррекции придется писать с нуля в конфигурацию.Но я до конца не уверен, как правильно оформить ситуацию с тегом 2108, ведь в выше приведенном письме все варианты с обратной записью для фд 1.1 1.2, а налоговая говорит: " не требуется формировать кассовый чек коррекции с некорректными данными на обратную операцию"
Обратите ваше внимание на этот момент,когда в типовых будете выбирать вариант "самостоятельного исправления".
(60) Спасибо большое!
С этим стало понятно, но теперь вопрос как поступить с маркировкой...
ОФД данные по маркам из этих чеков уже отправила в ЧЗ и они там списаны (у меня лекарства).
И если не делать обратную операцию в ЧЗ из чеков коррекции уйдет информация о повторном списании, что вроде как тоже нарушение.
или из этих чеков коррекции вырезать информацию о маркировке...
(60) Спасибо большое!
С этим стало понятно, но теперь вопрос как поступить с маркировкой...
ОФД данные по маркам из этих чеков уже отправила в ЧЗ и они там списаны (у меня лекарства).
И если не делать обратную операцию в ЧЗ из чеков коррекции уйдет информация о повторном списании, что вроде как тоже нарушение.
или из этих чеков коррекции вырезать информацию о маркировке...
С этим тоже проблема.С одной стороны ЧЗ списывает марку на основании аннулированного чека, с другой стороны, повторно списать марку он не даст.
На этот счет никаких разъяснений нет.У меня тоже марки и я наверное выберу вариант с повторной передачей марок.
Подскажите по проблеме думаю не у меня одного она! С новыми чеками разобрался помогло обновление драйвера АТОЛ 10.10.0.0 и обновление драйвера оборудования в информационной базе 1С Розница 2.3.16.21 все хорошо теперь чеки корректны и налоговой принимаются. Возникла другая проблема не принимаются чеки коррекции, т.к именно в них отсутствует Тэг 2108, т.е получатся что у меня относительно свежая 1С Розница не может сформировать чек коррекции с Тэг 2108. Если начать формировать чек коррекции то 1с предлагает заполнить реквизит «единица измерения» Тэг 1197 который не применяется для ффд1.2 и отсутствует возможность заполнения реквизита Тэг 2108
(62) Да, такая же проблема. Обычные чеки уходят нормально, но чеки коррекции с ошибкой. Замкнутый круг... При создании чека коррекции у товар в строке можно заполнить "штуки", но это не помогает, так как информация берется, наверное, из чека, который корректируем и на выходе поле пустое. Плюс никак не получается выбить только чек прихода, возврат выбивается автоматически.
Есть у кого-то решение? Через 2.3.17 пробовал кто-нибудь выбивать?
(70) розница 2.3.16.21 платформа 8.3.24.1342 решить проблему с Тэг 2108 в чеках коррекции смог только с помощью программиста 1С, он поправил строчку кода и чеки стали приниматься
(74) Спасибо за информацию! Он Вам добавлял возможность выбивать только чек коррекции прихода (без возврата прихода ранее отправленного, но не принятого в ФНС)?
(75)я буду пробивать чеки с возвратом, фискальный накопитель считает что с чеком нет проблем, и поставил сумму мне в доход, значит нужно вернуть сумму и заново оприходовать
(64) я так понимаю не нужно делать операцию "Возврат прихода", а только приход.
Пока из идей, только ковырять конфигурацию смотреть и ставить заглушку чтобы возврат не делался
(66) на каждый чек? таких не принятых больше 2000.
В 1с можно было бы обработку написать, чтобы чеки корректировки автоматически создались. А на кассе понажимать кнопку "Пробить чек".
А тут автоматом заполнять "Предмет расчета" "Цену" и тд...
Из драйвера не вариант 1000 чеков руками создавать, может последнее обновление 2.3.17 от 30.11.2023 решило проблему с тег 2108 в чеках коррекции. Подскажите?
Звонил в налоговую. Они такие чеки коррекции не видят (выше в сообщении 70 скрин прилагал). Что делать никто не знает. Оформлять возврат и приход нельзя, так как прихода у них и не было. Только приход оформить тоже неправильно, потому что будут расхождения с офд. Тег в чеке коррекции не передается, в ручную добавить не получается. До НГ 13 дней...
Господа, еще раз повторю для всех с учетом вышеизложенного:
Ни в одной типовой конфигурации вы не найдете решения этой задачи:
1. Типовые конфигурации при выборе самостоятельного варианта исправления чека коррекции будут пробивать сначала обратную операцию (чек возврата прихода), затем прямую чек коррекции прихода.Это для всех версий офд начиная с 1.1
2. Единственный вариант пробить через типовую без доработок это вариант коррекции - непробитие чека.
3. С марками проблема, так как они списаны и это никак не решить, хоть с доработками, хоть без.
3.1 Вариант пробить чек коррекции "возврата прихода" с марками и ошибкой в теге (налоговая такой не примет), чтобы вернуть марки и пробить коррекцию "прихода", наверное был бы самым правильным, тогда бы и ФП на кассе пришло в норму.Но налоговая своим письмом этот вариант заблокировала.А поскольку у нас с вами есть одна попытка сделать чек коррекции, я бы не стал рисковать.Короче ясности нет никакой.Предложенный вариант налоговой не рабочий.Так или иначе мы получим расхождение ФП кассовых аппаратов с данными учета.
4. Самим доработать вариант коррекции чека в 1С.
80.
ProstoProgrammist
621.12.23 14:54 Сейчас в теме
(73) Вот полностью с вами согласен! Прям по полочкам все изложили.
А самое главное, по факту не понятно какие чеки реально не ушли а какие ушли. Потому что если отсканировать QR код приложением в телефоне, то чек на сайте налоговой есть. И теперь вопрос, если он не принят как написано в ОФД, то как он "пробивается" на сайте налоговой?
Получить список чеков какие приняты, а какие нет - самый главный вопрос. Информации в ОФД верить нельзя, в одной из контор чеки не приняты с начала года, вышло это в ноябре, до ноября были все приняты.
И если мы сделаем коррекцию приход без расхода, а чек на самом деле иток был в ФНС, то получится хуже чем было.
Я реализовал и пробил пока один пробный чек коррекции.В ФНС статус - принят.
Вы дописывали работу тега 2108 для чека коррекции или из типового кода ут10 работает? У нас тоже ут10. На эмуляторе кассы пробивается только возврат, а приход визуально криво пробивается. Ошибка "Could not convert variant of t" а дальше не видно что эмулятор выдаёт. А на реальной кассе всё никак не решусь.
(73)
С марками проблема
Пробовали пробить с маркой? Повторное списание происходит?
Вы дописывали работу тега 2108 для чека коррекции или из типового кода ут10 работает? У нас тоже ут10. На эмуляторе кассы пробивается только возврат, а приход визуально криво пробивается. Ошибка "Could not convert variant of t" а дальше не видно что эмулятор выдаёт. А на реальной кассе всё никак не решусь.
У меня весь товар в штуках, поэтому я просто проставил 0 для меры количества и все.У меня самописка и соответствие не реализовано по единицам измерения.Поскольку она доживает последний месяц, я с этим не буду заморачиваться.
Все что тебя интересует в этой процедуре:
// Процедура формирует XML пакет для Фискализация чека.
// Параметры:
// ОбщиеПараметры - Структура - параметры чека.
// ПараметрыФискализации - Структура - параметры фискализации чека.
// ВключатьПерсональныеДанные - Булево - признак использования персональных данных.
// ПерсональныеДанные - Структура - .
// ТипПерсональныхДанных - ПеречислениеСсылка.ТипыПерсональныхДанныхККТ - тип персональных данных.
//
Процедура СформироватьXMLПакетДляФискализацияЧека(ОбщиеПараметры, ПараметрыФискализации, ВключатьПерсональныеДанные = Ложь,
ПерсональныеДанные = Неопределено, ТипПерсональныхДанных = Неопределено) Экспорт
ПозицииЧека = ОбщиеПараметры.ПозицииЧека;
ТаблицаОплат = ОбщиеПараметры.ТаблицаОплат;
Электронно = ОбщиеПараметры.Электронно;
ТипРасчета = МенеджерОборудованияКлиентСервер.КодРасчетаДенежнымиСредствами(ОбщиеПараметры.ТипРасчета);
СистемаНалогообложения = МенеджерОборудованияКлиентСервер.КодСистемыНалогообложенияККТ(ОбщиеПараметры.СистемаНалогообложения);
// Таблица оплат
СуммаЧека = 0;
СуммаНаличные = 0;
СуммаЭлектронно = 0;
СуммаПредоплата = 0;
СуммаПостоплата = 0;
СуммаПредоставление = 0;
Если ТаблицаОплат <> Неопределено Тогда
Для ИндексОплаты = 0 По ТаблицаОплат.Количество() - 1 Цикл
Если ТаблицаОплат[ИндексОплаты].ТипОплаты = Перечисления.ТипыОплатыККТ.Электронно Тогда
СуммаЭлектронно = СуммаЭлектронно + ТаблицаОплат[ИндексОплаты].Сумма;
ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = Перечисления.ТипыОплатыККТ.Предоплата Тогда
СуммаПредоплата = СуммаПредоплата + ТаблицаОплат[ИндексОплаты].Сумма;
ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = Перечисления.ТипыОплатыККТ.Постоплата Тогда
СуммаПостоплата = СуммаПостоплата + ТаблицаОплат[ИндексОплаты].Сумма;
ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = Перечисления.ТипыОплатыККТ.ВстречноеПредоставление Тогда
СуммаПредоставление = СуммаПредоставление + ТаблицаОплат[ИндексОплаты].Сумма;
Иначе
СуммаНаличные = СуммаНаличные + ТаблицаОплат[ИндексОплаты].Сумма;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ОплатаНеНаличными = СуммаЭлектронно + СуммаПостоплата + СуммаПредоплата + СуммаПредоставление;
// Пакетная печать чека. Подготовка пакета.
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("CheckPackage");
Если ПараметрыФискализации.РевизияИнтерфейса >= 3000 Тогда // Версия стандарта 3.0 (ОФД 1.1)
ЗаписьXML.ЗаписатьНачалоЭлемента("Parameters");
ЗаписьXML.ЗаписатьАтрибут("CashierName", XMLСтрока(ОбщиеПараметры.Кассир));
Если Не ПустаяСтрока(ОбщиеПараметры.КассирИНН) Тогда
ЗаписьXML.ЗаписатьАтрибут("CashierINN", XMLСтрока(ОбщиеПараметры.КассирИНН));
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("OperationType", XMLСтрока(ТипРасчета));
ЗаписьXML.ЗаписатьАтрибут("TaxationSystem" , XMLСтрока(СистемаНалогообложения));
Если Не ПустаяСтрока(ОбщиеПараметры.ОтправительEmail) И Электронно Тогда // Отправитель Email указывается только для Электронно.
ЗаписьXML.ЗаписатьАтрибут("SenderEmail", XMLСтрока(ОбщиеПараметры.ОтправительEmail));
КонецЕсли;
Если ОбщиеПараметры.Свойство("АдресРасчетов") И НЕ ПустаяСтрока(ОбщиеПараметры.АдресРасчетов) Тогда
ЗаписьXML.ЗаписатьАтрибут("SaleAddress", XMLСтрока(ОбщиеПараметры.АдресРасчетов));
КонецЕсли;
Если ОбщиеПараметры.Свойство("МестоРасчетов") И НЕ ПустаяСтрока(ОбщиеПараметры.МестоРасчетов) Тогда
ЗаписьXML.ЗаписатьАтрибут("SaleLocation", XMLСтрока(ОбщиеПараметры.МестоРасчетов));
КонецЕсли;
// Email отправляет средствами 1C
Если ОбщиеПараметры.Свойство("Отправляет1СEmail") И НЕ ОбщиеПараметры.Отправляет1СEmail Тогда
ЗаписьXML.ЗаписатьАтрибут("CustomerEmail", XMLСтрока(?(ОбщиеПараметры.Свойство("ПокупательEmail"), ОбщиеПараметры.ПокупательEmail, "")));
КонецЕсли;
// SMS отправляет средствами 1C
Если ОбщиеПараметры.Свойство("Отправляет1СSMS") И НЕ ОбщиеПараметры.Отправляет1СSMS Тогда
ПокупательНомер = ?(ОбщиеПараметры.Свойство("ПокупательНомер"), ОбщиеПараметры.ПокупательНомер, "");
Если Не ПустаяСтрока(ПокупательНомер) И Лев(ПокупательНомер, 1) <> "+" Тогда
ПокупательНомер = "+" + ПокупательНомер;
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("CustomerPhone", XMLСтрока(ПокупательНомер));
КонецЕсли;
Если ПараметрыФискализации.РевизияИнтерфейса < 3004
Или Не ПараметрыФискализации.ВерсияФФДККТ11 Тогда // версия ФФД 1.05
Получатель = ОбщиеПараметры.Получатель;
Если ПустаяСтрока(Получатель) Тогда
Получатель = ОбщиеПараметры.СведенияОПокупателе.Покупатель;
КонецЕсли;
ПолучательИНН = ОбщиеПараметры.ПолучательИНН;
Если ПустаяСтрока(ПолучательИНН) Тогда
ПолучательИНН = ОбщиеПараметры.СведенияОПокупателе.ПокупательИНН;
КонецЕсли;
Если ПерсональныеДанные <> Неопределено Тогда
Если ТипПерсональныхДанных = Перечисления.ТипыПерсональныхДанныхККТ.ИНН Тогда
ПолучательИНН = ПерсональныеДанные.ИНН;
ИначеЕсли Не ПустаяСтрока(ПерсональныеДанные.ДанныеДокумента) Тогда
Получатель = СтрШаблон("<%1> <%2>", Получатель, ПерсональныеДанные.ДанныеДокумента);
КонецЕсли;
КонецЕсли;
Если Не ПустаяСтрока(Получатель) Тогда
ЗаписьXML.ЗаписатьАтрибут("CustomerInfo", XMLСтрока(Получатель));
КонецЕсли;
Если Не ПустаяСтрока(ПолучательИНН) Тогда
ЗаписьXML.ЗаписатьАтрибут("CustomerINN", XMLСтрока(ПолучательИНН));
КонецЕсли;
Иначе
Если ОбщиеПараметры.Свойство("НомерАвтомата") И НЕ ПустаяСтрока(ОбщиеПараметры.НомерАвтомата) Тогда
ЗаписьXML.ЗаписатьАтрибут("AutomatNumber", XMLСтрока(ОбщиеПараметры.НомерАвтомата));
КонецЕсли;
КонецЕсли;
Если ОбщиеПараметры.Свойство("ПризнакАгента") И НЕ ПустаяСтрока(ОбщиеПараметры.ПризнакАгента) Тогда
ПризнакАгента = МенеджерОборудованияКлиентСервер.КодПризнакаАгента(ОбщиеПараметры.ПризнакАгента);
ЗаписьXML.ЗаписатьАтрибут("AgentType", XMLСтрока(ПризнакАгента));
КонецЕсли;
Если ОбщиеПараметры.Свойство("ДополнительныйРеквизит") И НЕ ПустаяСтрока(ОбщиеПараметры.ДополнительныйРеквизит) Тогда
ЗаписьXML.ЗаписатьАтрибут("AdditionalAttribute", XMLСтрока(ОбщиеПараметры.ДополнительныйРеквизит));
КонецЕсли;
Если ОбщиеПараметры.Свойство("ДанныеКоррекции") Тогда
ЗаписатьДанныеКоррекции(ЗаписьXML, ОбщиеПараметры.ДанныеКоррекции);
КонецЕсли;
Если ОбщиеПараметры.Свойство("ДополнительныйРеквизитПользователя") Тогда
ЗаписатьДополнительныйРеквизитПользователя(ЗаписьXML, ОбщиеПараметры.ДополнительныйРеквизитПользователя);
КонецЕсли;
ЗаписатьДанныеАгента(ЗаписьXML, ОбщиеПараметры.ДанныеАгента, ПараметрыФискализации.РевизияИнтерфейса);
ЗаписатьДанныеПоставщика(ЗаписьXML, ОбщиеПараметры.ДанныеПоставщика, ПараметрыФискализации.РевизияИнтерфейса);
Если ПараметрыФискализации.РевизияИнтерфейса >= 3004 И ПараметрыФискализации.ВерсияФФДККТ11 Тогда // версии ФФД 1.1 и 1.2
ЗаписатьСведенияОПокупателе(ЗаписьXML, ОбщиеПараметры, ПерсональныеДанные, ТипПерсональныхДанных);
ЗаписатьОперационныйРеквизит(ЗаписьXML, ОбщиеПараметры.ОперационныйРеквизит);
ЗаписатьОтраслевойРеквизит(ЗаписьXML, ОбщиеПараметры.ОтраслевойРеквизит);
КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента();
// Табличная часть
Если ОбщиеПараметры.ПозицииЧека <> Неопределено Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("Positions");
Для ИндексМассива = 0 По ОбщиеПараметры.ПозицииЧека.Количество() - 1 Цикл
ТекущаяПозиция = ОбщиеПараметры.ПозицииЧека[ИндексМассива]; //см. МенеджерОборудованияКлиентСервер.ПараметрыФискальнойСтрокиЧека
Если ТекущаяПозиция.Свойство("ФискальнаяСтрока") Тогда // Фискальная строка
Если ТекущаяПозиция.ЦенаСоСкидками = 0 И ТекущаяПозиция.Сумма > 0 И ТекущаяПозиция.Количество > 0 Тогда
ЦенаСоСкидками = Окр(ТекущаяПозиция.Сумма / ТекущаяПозиция.Количество, 2);
Иначе
ЦенаСоСкидками = ТекущаяПозиция.ЦенаСоСкидками;
КонецЕсли;
ЗаписьXML.ЗаписатьНачалоЭлемента("FiscalString");
ЗаписьXML.ЗаписатьАтрибут("Name" , XMLСтрока(ТекущаяПозиция.Наименование)); // Наименование товара.
ЗаписьXML.ЗаписатьАтрибут("Quantity" , XMLСтрока(ТекущаяПозиция.Количество)); // Количество товара.
ЗаписьXML.ЗаписатьАтрибут("PriceWithDiscount" , XMLСтрока(ЦенаСоСкидками)); // Цена единицы товара с учетом скидок/наценок.
ЗаписьXML.ЗаписатьАтрибут("AmountWithDiscount", XMLСтрока(ТекущаяПозиция.Сумма)); // Конечная сумма по позиции чека с учетом всех скидок/наценок.
ЗаписьXML.ЗаписатьАтрибут("DiscountAmount" , XMLСтрока(ТекущаяПозиция.СуммаСкидок)); // Сумма скидок и наценок.
ЗаписьXML.ЗаписатьАтрибут("Department" , XMLСтрока(ТекущаяПозиция.НомерСекции)); // Отдел, по которому ведется продажа
Если НЕ ПустаяСтрока(ТекущаяПозиция.СтавкаНДС) Тогда
Если ТекущаяПозиция.СтавкаНДС = 118 Тогда
ЗначениеСтавкаНДС = "18/118";
ИначеЕсли ТекущаяПозиция.СтавкаНДС = 110 Тогда
ЗначениеСтавкаНДС = "10/110";
ИначеЕсли ТекущаяПозиция.СтавкаНДС = 120 Тогда
ЗначениеСтавкаНДС = "20/120";
Иначе
ЗначениеСтавкаНДС = ТекущаяПозиция.СтавкаНДС;
КонецЕсли;
Иначе
ЗначениеСтавкаНДС = "none";
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("VATRate", XMLСтрока(ЗначениеСтавкаНДС)); // Ставка НДС
Если ТекущаяПозиция.Свойство("СуммаНДС") И НЕ ПустаяСтрока(ТекущаяПозиция.СуммаНДС) Тогда
ЗаписьXML.ЗаписатьАтрибут("VATAmount", XMLСтрока(ТекущаяПозиция.СуммаНДС));
КонецЕсли;
Если ТекущаяПозиция.Свойство("ПризнакСпособаРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакСпособаРасчета) Тогда
ПризнакСпособаРасчета = МенеджерОборудованияКлиентСервер.КодПризнакаСпособаРасчета(ТекущаяПозиция.ПризнакСпособаРасчета);
ЗаписьXML.ЗаписатьАтрибут("PaymentMethod", XMLСтрока(ПризнакСпособаРасчета));
КонецЕсли;
Если ТекущаяПозиция.Свойство("ПризнакПредметаРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакПредметаРасчета) Тогда
ПризнакПредметаРасчета = МенеджерОборудованияКлиентСервер.КодПризнакаПредметаРасчета(ТекущаяПозиция.ПризнакПредметаРасчета, ПараметрыФискализации.РевизияИнтерфейса);
Если ПризнакПредметаРасчета <> Неопределено Тогда
ЗаписьXML.ЗаписатьАтрибут("CalculationSubject", XMLСтрока(ПризнакПредметаРасчета));
КонецЕсли;
КонецЕсли;
Если ТекущаяПозиция.Свойство("ПризнакАгентаПоПредметуРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакАгентаПоПредметуРасчета) Тогда
ПризнакАгентаПоПредметуРасчета = МенеджерОборудованияКлиентСервер.КодПризнакаАгента(ТекущаяПозиция.ПризнакАгентаПоПредметуРасчета);
ЗаписьXML.ЗаписатьАтрибут("CalculationAgent", XMLСтрока(ПризнакАгентаПоПредметуРасчета));
КонецЕсли;
Если ТекущаяПозиция.Свойство("ЕдиницаИзмерения") И ТекущаяПозиция.ЕдиницаИзмерения <> Неопределено Тогда
ЗаписьXML.ЗаписатьАтрибут("MeasurementUnit", XMLСтрока(Лев(ТекущаяПозиция.ЕдиницаИзмерения, 16)));
КонецЕсли;
Если ТекущаяПозиция.Свойство("КодСтраныПроисхожденияТовара") И ТекущаяПозиция.КодСтраныПроисхожденияТовара <> Неопределено Тогда
ЗаписьXML.ЗаписатьАтрибут("CountryOfOrigin", XMLСтрока(ТекущаяПозиция.КодСтраныПроисхожденияТовара));
КонецЕсли;
Если ТекущаяПозиция.Свойство("НомерТаможеннойДекларации") И ТекущаяПозиция.НомерТаможеннойДекларации <> Неопределено Тогда
ЗаписьXML.ЗаписатьАтрибут("CustomsDeclaration", XMLСтрока(ТекущаяПозиция.НомерТаможеннойДекларации));
КонецЕсли;
Если ТекущаяПозиция.Свойство("СуммаАкциза") И ТекущаяПозиция.СуммаАкциза <> Неопределено Тогда
Если Число(ТекущаяПозиция.СуммаАкциза) > 0 Или ЗначениеЗаполнено(ОбщиеПараметры.ПолучательИНН) Тогда
ЗаписьXML.ЗаписатьАтрибут("ExciseAmount", XMLСтрока(ТекущаяПозиция.СуммаАкциза));
КонецЕсли;
КонецЕсли;
Если ТекущаяПозиция.Свойство("ДополнительныйРеквизит") Тогда // Тэг 1191
ДополнительныйРеквизит = "";
Если НЕ ПустаяСтрока(ТекущаяПозиция.ДополнительныйРеквизит) Тогда
ДополнительныйРеквизит = ТекущаяПозиция.ДополнительныйРеквизит;
ИначеЕсли ВедетсяОбъемноСортовойУчет() И ТекущаяПозиция.ОбъемноСортовойУчет И ПараметрыФискализации.РевизияИнтерфейса < 3004 Тогда
// Передача сведений об объемно сортовой товара при оптовой продаже через ККТ
ДополнительныйРеквизит = "crpt=mrk";
ИначеЕсли ТекущаяПозиция.Свойство("ДробноеКоличество") И ПараметрыФискализации.РевизияИнтерфейса < 3004 Тогда
// Дробное количество, рекомендации ЦРПТ "ВЫВОД ТОВАРА ИЗ ОБОРОТА ПРИ РЕАЛИЗАЦИИ КОНЕЧНЫМ ПОТРЕБИТЕЛЯМ (ЧАСТИЧНАЯ ПРОДАЖА)"
// для 1.05 и 1.1 - пишем в 1191, Формирование и передача фискального документав ГИС МТ
Если Не ПустаяСтрока(ТекущаяПозиция.ДробноеКоличество.Числитель) И Не ПустаяСтрока(ТекущаяПозиция.ДробноеКоличество.Знаменатель) Тогда
Числитель = Число(ТекущаяПозиция.ДробноеКоличество.Числитель);
Знаменатель = Число(ТекущаяПозиция.ДробноеКоличество.Знаменатель);
ДополнительныйРеквизит = "mrk"; // Префикс «mrk», если после «mrk» указание дробной части отсутствует, упаковка считается выведенной из оборота полностью.
Если Числитель <> Знаменатель Тогда
ДополнительныйРеквизит = ДополнительныйРеквизит + Строка(Числитель) + "/" + Строка(Знаменатель) + "&";
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Не ПустаяСтрока(ДополнительныйРеквизит) Тогда
ЗаписьXML.ЗаписатьАтрибут("AdditionalAttribute", XMLСтрока(ДополнительныйРеквизит)); // Тэг 1191
КонецЕсли;
КонецЕсли;
Если ПараметрыФискализации.РевизияИнтерфейса >= 3004 Тогда
Если Не ПустаяСтрока(ТекущаяПозиция.КонтрольнаяМарка) Тогда
ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока(ТекущаяПозиция.КонтрольнаяМарка));
КонецЕсли;
Если Не ПустаяСтрока(ТекущаяПозиция.КодЕдиницыИзмерения) Тогда
МераКоличестваПредметаРасчета = МенеджерОборудованияКлиентСервер.МераКоличестваПредметаРасчетаПоКодуЕдиницыИзмерения(ТекущаяПозиция.КодЕдиницыИзмерения);
МераКоличестваПредметаРасчета = МенеджерОборудованияКлиентСервер.КодМерыКоличестваПредметаРасчетаККТ(МераКоличестваПредметаРасчета);
ЗаписьXML.ЗаписатьАтрибут("MeasureOfQuantity", XMLСтрока(МераКоличестваПредметаРасчета));
КонецЕсли;
ДробноеКоличествоУказано = Ложь;
ДробноеКоличество = ТекущаяПозиция.ДробноеКоличество;
Если Не ПустаяСтрока(ДробноеКоличество.Числитель) И Не ПустаяСтрока(ДробноеКоличество.Знаменатель) Тогда
Если Число(ДробноеКоличество.Числитель) > 0 И Число(ДробноеКоличество.Знаменатель) > 0 Тогда
ДробноеКоличествоУказано = Истина;
КонецЕсли;
КонецЕсли;
Если ДробноеКоличествоУказано Тогда
МераКоличестваПредметаРасчета = 0;
ЗаписьXML.ЗаписатьАтрибут("MeasureOfQuantity", XMLСтрока(МераКоличестваПредметаРасчета));
ЗаписьXML.ЗаписатьНачалоЭлемента("FractionalQuantity");
ЗаписьXML.ЗаписатьАтрибут("Numerator", XMLСтрока(ДробноеКоличество.Числитель));
ЗаписьXML.ЗаписатьАтрибут("Denominator", XMLСтрока(ДробноеКоличество.Знаменатель));
ЗаписьXML.ЗаписатьКонецЭлемента();
Иначе
Если ВедетсяОбъемноСортовойУчет() И ТекущаяПозиция.ОбъемноСортовойУчет И Не ПустаяСтрока(ТекущаяПозиция.КоличествоВесовогоТовара) Тогда
МераКоличестваПредметаРасчета = 11; // Килограмм
Иначе
МераКоличестваПредметаРасчета = МенеджерОборудованияКлиентСервер.МераКоличестваПредметаРасчетаПоКодуЕдиницыИзмерения(ТекущаяПозиция.КодЕдиницыИзмерения
);
МераКоличестваПредметаРасчета = МенеджерОборудованияКлиентСервер.КодМерыКоличестваПредметаРасчетаККТ(МераКоличестваПредметаРасчета);
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("MeasureOfQuantity", XMLСтрока(МераКоличестваПредметаРасчета));
КонецЕсли;
КонецЕсли;
ЗаписатьДанныеКодаТоварнойНоменклатуры(ЗаписьXML, ТекущаяПозиция, ПараметрыФискализации);
ЗаписатьДанныеАгента(ЗаписьXML, ТекущаяПозиция.ДанныеАгента, ПараметрыФискализации.РевизияИнтерфейса);
ЗаписатьДанныеПоставщика(ЗаписьXML, ТекущаяПозиция.ДанныеПоставщика, ПараметрыФискализации.РевизияИнтерфейса);
Если ПараметрыФискализации.РевизияИнтерфейса >= 3004 Тогда
ЗаписатьОтраслевойРеквизит(ЗаписьXML, ТекущаяПозиция.ОтраслевойРеквизит);
КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента();
СуммаЧека = СуммаЧека + ТекущаяПозиция.Сумма;
ИначеЕсли ТекущаяПозиция.Свойство("ТекстоваяСтрока") Тогда // Текстовая строка
Если ТекущаяПозиция.Свойство("ПереносСтроки") И ТекущаяПозиция.ПереносСтроки Тогда
ТекстовыеСтроки = МенеджерОборудованияКлиентСервер.ПостроитьПолеПереносом(ТекущаяПозиция.Текст, ПараметрыФискализации.ШиринаСтроки);
Иначе
ТекстовыеСтроки = ТекущаяПозиция.Текст;
КонецЕсли;
Выравнивание = ?(ТекущаяПозиция.Свойство("Выравнивание"), ТекущаяПозиция.Выравнивание, "Лево");
Для НомерСтроки = 1 По СтрЧислоСтрок(ТекстовыеСтроки) Цикл
ВыделеннаяСтрока = СтрПолучитьСтроку(ТекстовыеСтроки, НомерСтроки);
ВыделеннаяСтрока = МенеджерОборудованияКлиентСервер.ВыравнитьПоле(ВыделеннаяСтрока, ПараметрыФискализации.ШиринаСтроки, Выравнивание);
ЗаписьXML.ЗаписатьНачалоЭлемента("TextString");
ЗаписьXML.ЗаписатьАтрибут("Text", XMLСтрока(ВыделеннаяСтрока));
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;
ИначеЕсли ТекущаяПозиция.Свойство("ШтрихКод") Тогда // Штрихкод
ЗаписьXML.ЗаписатьНачалоЭлемента("Barcode");
ЗаписьXML.ЗаписатьАтрибут("Type" , XMLСтрока(ТекущаяПозиция.ТипШтрихкода));
// Значение штрихкода. Штрихкод кодируется текстом в кодировке Base64.
Если ПараметрыФискализации.РевизияИнтерфейса >= 3003 Тогда
ШтрихКодBase64 = ШтрихкодВBase64(ТекущаяПозиция.ШтрихКод);
Если ТекущаяПозиция.Свойство("ШтрихКодBase64") И
НЕ ПустаяСтрока(ТекущаяПозиция.ШтрихКодBase64) Тогда
ШтрихКодBase64 = ТекущаяПозиция.ШтрихКодBase64;
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("ValueBase64", XMLСтрока(ШтрихКодBase64));
Иначе
ЗаписьXML.ЗаписатьАтрибут("Value", XMLСтрока(ТекущаяПозиция.ШтрихКод));
КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
// Таблица оплат
Если ТаблицаОплат <> Неопределено Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("Payments");
ЗаписьXML.ЗаписатьАтрибут("Cash", XMLСтрока(СуммаНаличные));
ЗаписьXML.ЗаписатьАтрибут("ElectronicPayment", XMLСтрока(СуммаЭлектронно));
ЗаписьXML.ЗаписатьАтрибут("PrePayment", XMLСтрока(СуммаПредоплата));
ЗаписьXML.ЗаписатьАтрибут("PostPayment", XMLСтрока(СуммаПостоплата));
ЗаписьXML.ЗаписатьАтрибут("Barter", XMLСтрока(СуммаПредоставление));
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
ИначеЕсли ПараметрыФискализации.РевизияИнтерфейса > 2001 Тогда // Версия стандарта 2.2 и выше
ЗаписьXML.ЗаписатьНачалоЭлемента("Parameters");
ЗаписьXML.ЗаписатьАтрибут("PaymentType" , XMLСтрока(ТипРасчета));
ЗаписьXML.ЗаписатьАтрибут("TaxVariant" , XMLСтрока(СистемаНалогообложения));
ЗаписьXML.ЗаписатьАтрибут("CashierName" , XMLСтрока(ОбщиеПараметры.Кассир));
ЗаписьXML.ЗаписатьАтрибут("CashierVATIN", ?(ОбщиеПараметры.Свойство("КассирИНН"), XMLСтрока(ОбщиеПараметры.КассирИНН), ""));
Если Не ПустаяСтрока(ОбщиеПараметры.ОтправительEmail) И Электронно Тогда // Отправитель Email указывается только для Электронно.
ЗаписьXML.ЗаписатьАтрибут("SenderEmail", XMLСтрока(ОбщиеПараметры.ОтправительEmail));
КонецЕсли;
// Email отправляет средствами 1C
Если ОбщиеПараметры.Свойство("Отправляет1СEmail") И НЕ ОбщиеПараметры.Отправляет1СEmail Тогда
ЗаписьXML.ЗаписатьАтрибут("CustomerEmail", XMLСтрока(?(ОбщиеПараметры.Свойство("ПокупательEmail"), ОбщиеПараметры.ПокупательEmail, "")));
КонецЕсли;
// SMS отправляет средствами 1C
Если ОбщиеПараметры.Свойство("Отправляет1СSMS") И НЕ ОбщиеПараметры.Отправляет1СSMS Тогда
ПокупательНомер = ?(ОбщиеПараметры.Свойство("ПокупательНомер"), ОбщиеПараметры.ПокупательНомер, "");
Если Не ПустаяСтрока(ПокупательНомер) И Лев(ПокупательНомер, 1) <> "+" Тогда
ПокупательНомер = "+" + ПокупательНомер;
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("CustomerPhone", XMLСтрока(ПокупательНомер));
КонецЕсли;
Если ОбщиеПараметры.Свойство("ПризнакАгента") И НЕ ПустаяСтрока(ОбщиеПараметры.ПризнакАгента) Тогда // Атрибут с ФФД 1.05
ПризнакАгента = МенеджерОборудованияКлиентСервер.КодПризнакаАгента(ОбщиеПараметры.ПризнакАгента);
ЗаписьXML.ЗаписатьАтрибут("AgentSign", XMLСтрока(ПризнакАгента));
КонецЕсли;
Если ОбщиеПараметры.Свойство("АдресРасчетов") И НЕ ПустаяСтрока(ОбщиеПараметры.АдресРасчетов) Тогда
ЗаписьXML.ЗаписатьАтрибут("AddressSettle", XMLСтрока(ОбщиеПараметры.АдресРасчетов));
КонецЕсли;
Если ОбщиеПараметры.Свойство("МестоРасчетов") И НЕ ПустаяСтрока(ОбщиеПараметры.МестоРасчетов) Тогда
ЗаписьXML.ЗаписатьАтрибут("PlaceSettle", XMLСтрока(ОбщиеПараметры.МестоРасчетов));
КонецЕсли;
Если Не ПустаяСтрока(ОбщиеПараметры.Получатель) Тогда
ЗаписьXML.ЗаписатьАтрибут("CustomerInfo", XMLСтрока(ОбщиеПараметры.Получатель));
КонецЕсли;
Если Не ПустаяСтрока(ОбщиеПараметры.ПолучательИНН) Тогда
ЗаписьXML.ЗаписатьАтрибут("CustomerINN", XMLСтрока(ОбщиеПараметры.ПолучательИНН));
КонецЕсли;
Если ОбщиеПараметры.Свойство("ДополнительныйРеквизит") И НЕ ПустаяСтрока(ОбщиеПараметры.ДополнительныйРеквизит) Тогда
ЗаписьXML.ЗаписатьАтрибут("AdditionalAttribute", XMLСтрока(ОбщиеПараметры.ДополнительныйРеквизит));
КонецЕсли;
Если ОбщиеПараметры.Свойство("ДополнительныйРеквизитПользователя") Тогда
ЗаписатьДополнительныйРеквизитПользователя(ЗаписьXML, ОбщиеПараметры.ДополнительныйРеквизитПользователя);
КонецЕсли;
ЗаписатьДанныеАгента(ЗаписьXML, ОбщиеПараметры.ДанныеАгента);
ЗаписатьДанныеПоставщика(ЗаписьXML, ОбщиеПараметры.ДанныеПоставщика);
ЗаписьXML.ЗаписатьКонецЭлемента();
// Табличная часть
Если ОбщиеПараметры.ПозицииЧека <> Неопределено Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("Positions");
Для ИндексМассива = 0 По ОбщиеПараметры.ПозицииЧека.Количество() - 1 Цикл
ТекущаяПозиция = ОбщиеПараметры.ПозицииЧека[ИндексМассива]; //см. МенеджерОборудованияКлиентСервер.ПараметрыФискальнойСтрокиЧека
Если ТекущаяПозиция.Свойство("ФискальнаяСтрока") Тогда
Если ТекущаяПозиция.ЦенаСоСкидками = 0 И ТекущаяПозиция.Сумма > 0 И ТекущаяПозиция.Количество > 0 Тогда
ЦенаСоСкидками = Окр(ТекущаяПозиция.Сумма / ТекущаяПозиция.Количество, 2);
Иначе
ЦенаСоСкидками = ТекущаяПозиция.ЦенаСоСкидками;
КонецЕсли;
ЗаписьXML.ЗаписатьНачалоЭлемента("FiscalString");
ЗаписьXML.ЗаписатьАтрибут("Name" , XMLСтрока(ТекущаяПозиция.Наименование));
ЗаписьXML.ЗаписатьАтрибут("Quantity" , XMLСтрока(ТекущаяПозиция.Количество));
ЗаписьXML.ЗаписатьАтрибут("PriceWithDiscount", XMLСтрока(ЦенаСоСкидками));
ЗаписьXML.ЗаписатьАтрибут("SumWithDiscount" , XMLСтрока(ТекущаяПозиция.Сумма));
ЗаписьXML.ЗаписатьАтрибут("DiscountSum" , XMLСтрока(ТекущаяПозиция.СуммаСкидок));
ЗаписьXML.ЗаписатьАтрибут("Department" , XMLСтрока(ТекущаяПозиция.НомерСекции));
Если НЕ ПустаяСтрока(ТекущаяПозиция.СтавкаНДС) Тогда
Если ТекущаяПозиция.СтавкаНДС = 118 Тогда
ЗначениеСтавкаНДС = "18/118";
ИначеЕсли ТекущаяПозиция.СтавкаНДС = 110 Тогда
ЗначениеСтавкаНДС = "10/110";
ИначеЕсли ТекущаяПозиция.СтавкаНДС = 120 Тогда
ЗначениеСтавкаНДС = "20/120";
Иначе
ЗначениеСтавкаНДС = ТекущаяПозиция.СтавкаНДС;
КонецЕсли;
Иначе
ЗначениеСтавкаНДС = "none";
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("Tax", XMLСтрока(ЗначениеСтавкаНДС));
Если ТекущаяПозиция.Свойство("ПризнакСпособаРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакСпособаРасчета) Тогда
ПризнакСпособаРасчета = МенеджерОборудованияКлиентСервер.КодПризнакаСпособаРасчета(ТекущаяПозиция.ПризнакСпособаРасчета);
ЗаписьXML.ЗаписатьАтрибут("SignMethodCalculation", XMLСтрока(ПризнакСпособаРасчета));
КонецЕсли;
Если ТекущаяПозиция.Свойство("ПризнакПредметаРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакПредметаРасчета) Тогда
ПризнакПредметаРасчета = МенеджерОборудованияКлиентСервер.КодПризнакаПредметаРасчета(ТекущаяПозиция.ПризнакПредметаРасчета);
Если ПризнакПредметаРасчета <> Неопределено Тогда
ЗаписьXML.ЗаписатьАтрибут("SignCalculationObject", XMLСтрока(ПризнакПредметаРасчета));
КонецЕсли;
КонецЕсли;
Если ТекущаяПозиция.Свойство("СуммаНДС") И НЕ ПустаяСтрока(ТекущаяПозиция.СуммаНДС) Тогда
ЗаписьXML.ЗаписатьАтрибут("TaxSum", XMLСтрока(ТекущаяПозиция.СуммаНДС));
КонецЕсли;
Если ТекущаяПозиция.Свойство("ПризнакАгентаПоПредметуРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакАгентаПоПредметуРасчета) Тогда
ПризнакАгентаПоПредметуРасчета = МенеджерОборудованияКлиентСервер.КодПризнакаАгента(ТекущаяПозиция.ПризнакАгентаПоПредметуРасчета);
ЗаписьXML.ЗаписатьАтрибут("SignSubjectCalculationAgent", XMLСтрока(ПризнакАгентаПоПредметуРасчета));
КонецЕсли;
Если ТекущаяПозиция.Свойство("ЕдиницаИзмерения") И ТекущаяПозиция.ЕдиницаИзмерения <> Неопределено Тогда
ЗаписьXML.ЗаписатьАтрибут("MeasurementUnit", XMLСтрока(Лев(ТекущаяПозиция.ЕдиницаИзмерения, 16)));
КонецЕсли;
Если ТекущаяПозиция.Свойство("КодСтраныПроисхожденияТовара") И НЕ ПустаяСтрока(ТекущаяПозиция.КодСтраныПроисхожденияТовара) Тогда
ЗаписьXML.ЗаписатьАтрибут("CountryOfOrigin", XMLСтрока(ТекущаяПозиция.КодСтраныПроисхожденияТовара));
КонецЕсли;
Если ТекущаяПозиция.Свойство("НомерТаможеннойДекларации") И НЕ ПустаяСтрока(ТекущаяПозиция.НомерТаможеннойДекларации) Тогда
ЗаписьXML.ЗаписатьАтрибут("CustomsDeclaration", XMLСтрока(ТекущаяПозиция.НомерТаможеннойДекларации));
КонецЕсли;
Если ТекущаяПозиция.Свойство("СуммаАкциза") И ТекущаяПозиция.СуммаАкциза <> Неопределено Тогда
ЗаписьXML.ЗаписатьАтрибут("ExciseAmount", XMLСтрока(XMLСтрока(ТекущаяПозиция.СуммаАкциза)));
КонецЕсли;
Если ТекущаяПозиция.Свойство("ДополнительныйРеквизит") И НЕ ПустаяСтрока(ТекущаяПозиция.ДополнительныйРеквизит) Тогда
ЗаписьXML.ЗаписатьАтрибут("AdditionalAttribute", XMLСтрока(XMLСтрока(ТекущаяПозиция.ДополнительныйРеквизит)));
КонецЕсли;
ЗаписатьДанныеАгента(ЗаписьXML, ТекущаяПозиция.ДанныеАгента);
ЗаписатьДанныеПоставщика(ЗаписьXML, ТекущаяПозиция.ДанныеПоставщика);
ЗаписатьДанныеКодаТоварнойНоменклатуры(ЗаписьXML, ТекущаяПозиция, ПараметрыФискализации);
ЗаписьXML.ЗаписатьКонецЭлемента();
СуммаЧека = СуммаЧека + ТекущаяПозиция.Сумма;
ИначеЕсли ТекущаяПозиция.Свойство("ТекстоваяСтрока") Тогда
Если ТекущаяПозиция.Свойство("ПереносСтроки") И ТекущаяПозиция.ПереносСтроки Тогда
ТекстовыеСтроки = МенеджерОборудованияКлиентСервер.ПостроитьПолеПереносом(ТекущаяПозиция.Текст, ПараметрыФискализации.ШиринаСтроки);
Иначе
ТекстовыеСтроки = ТекущаяПозиция.Текст;
КонецЕсли;
Выравнивание = ?(ТекущаяПозиция.Свойство("Выравнивание"), ТекущаяПозиция.Выравнивание, "Лево");
Для НомерСтроки = 1 По СтрЧислоСтрок(ТекстовыеСтроки) Цикл
ВыделеннаяСтрока = СтрПолучитьСтроку(ТекстовыеСтроки, НомерСтроки);
ВыделеннаяСтрока = МенеджерОборудованияКлиентСервер.ВыравнитьПоле(ВыделеннаяСтрока, ПараметрыФискализации.ШиринаСтроки, Выравнивание);
ЗаписьXML.ЗаписатьНачалоЭлемента("TextString");
ЗаписьXML.ЗаписатьАтрибут("Text", XMLСтрока(ВыделеннаяСтрока));
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;
ИначеЕсли ТекущаяПозиция.Свойство("ШтрихКод") Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("Barcode");
ЗаписьXML.ЗаписатьАтрибут("BarcodeType", XMLСтрока(ТекущаяПозиция.ТипШтрихкода));
ЗаписьXML.ЗаписатьАтрибут("Barcode", XMLСтрока(ТекущаяПозиция.ШтрихКод));
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
// Таблица оплат
Если ТаблицаОплат <> Неопределено Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("Payments");
ЗаписьXML.ЗаписатьАтрибут("Cash" , XMLСтрока(СуммаНаличные));
ЗаписьXML.ЗаписатьАтрибут("ElectronicPayment", XMLСтрока(СуммаЭлектронно));
ЗаписьXML.ЗаписатьАтрибут("Credit" , XMLСтрока(СуммаПостоплата));
ЗаписьXML.ЗаписатьАтрибут("AdvancePayment" , XMLСтрока(СуммаПредоплата));
ЗаписьXML.ЗаписатьАтрибут("CashProvision" , XMLСтрока(СуммаПредоставление));
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента();
ДанныеЧекаXML = ЗаписьXML.Закрыть();
Если ВключатьПерсональныеДанные Тогда
ПараметрыФискализации.ДанныеЧекаXMLПерсональныеДанные = ДанныеЧекаXML;
Иначе
ПараметрыФискализации.ДанныеЧекаXML = ДанныеЧекаXML;
ПараметрыФискализации.ТипРасчета = ОбщиеПараметры.ТипРасчета;
ПараметрыФискализации.СуммаЧека = СуммаЧека;
ПараметрыФискализации.ОплатаНаличные = ?(СуммаНаличные + ОплатаНеНаличными > СуммаЧека, СуммаЧека - ОплатаНеНаличными, СуммаНаличные);
ПараметрыФискализации.ОплатаЭлектронно = СуммаЭлектронно;
ПараметрыФискализации.ОплатаПостоплата = СуммаПостоплата;
ПараметрыФискализации.ОплатаПредоплата = СуммаПредоплата;
ПараметрыФискализации.ОплатаВстречноеПредоставление = СуммаПредоставление;
КонецЕсли;
КонецПроцедуры
Показать
Если у тебя только штуки то достаточно сюда записать ноль и передать.
Но скорее всего есть упаковка, пачка и там ошибка соответствия.Тогда смотри настройку соответствия.Это можно найти в том же модуле МенеджерОборудованияВызовСервера .
Если все теги в этой процедуре заполнятся правильно, то все пройдет.По сути это и есть то, что в дальнейшем будет фискализировано драйвером и передано в ОФД и налоговую, и в таком же виде.
Я сегодня продолжу пробивать в т.ч. и с марками.Позже отпишусь, что получилось.Марка кстати просто также подтягивается в тег.Так что это уже не мои проблемы.Чек коррекции должен содержать всю информацию из корректируемого чека в т.ч. и марку. Но я думаю она пройдет.
Кто-нибудь уже делал чеки коррекции с приходом (без возврата) и маркировкой? Передаёт ли ОФД в этом случае маркировку в честный знак? Как реагирует ЛК честного знака?
(77)Пока удалось только реализовать Коррекцию Приход и Возврат Прихода, но без марок.С марками не взлетело как планировал.Но вроде решение есть.В чем тонкость, марки уже списаны и если их включить в схему фискализации чека, то ККТ на проверке схемы будет требовать результат проверки и ждать команду на фискализацию чека.Проверку планирую инициализировать с параметром "Планируемое состояние марки" Код 255 -"состояние не изменилось".Получив ответ, дать команду на фискализацию ККТ.Без этого чек напечатан не будет.
Во всяком случае ККТ у меня начал проводить проверку марки по вышеизложенной схеме.Осталось внести косметические правки и доработать параметры ответа проверки и дать команду ККТ на фискализацию.Думаю должно получится.Сложность в том, что это приходится делать на боевой кассе и эмулятор не поможет.Во всяком случае на эмуляторе у меня было все ок, а вот на боевой не взлетело.
// Сформировать XML для запроса КМ.
//
// Параметры:
// ПараметрыОперации - Структура - Параметры операции.
//
// Возвращаемое значение:
// Строка
//
Функция СформироватьXMLДляЗапросаКМ(ПараметрыОперации) Экспорт
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("RequestKM");
ИдентификаторЗапроса = ПараметрыОперации.ИдентификаторЗапроса;
Если ПустаяСтрока(ИдентификаторЗапроса) Тогда
ИдентификаторЗапроса = Новый УникальныйИдентификатор;
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("GUID", XMLСтрока(ИдентификаторЗапроса));
Если Не ПараметрыОперации.ОжидатьПолучениеОтветаОИСМ Тогда
ЗаписьXML.ЗаписатьАтрибут("WaitForResult", "False");
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока(ПараметрыОперации.КонтрольнаяМарка));
ПланируемыйСтатусТовара = МенеджерОборудованияКлиентСервер.КодПланируемыйСтатусМаркируемогоТовара(ПараметрыОперации.ПланируемыйСтатусТовара);
ЗаписьXML.ЗаписатьАтрибут("PlannedStatus", XMLСтрока(ПланируемыйСтатусТовара));
ДробноеКоличествоУказано = Ложь;
ДробноеКоличество = ПараметрыОперации.ДробноеКоличество;
Если Не ПустаяСтрока(ДробноеКоличество.Числитель) И Не ПустаяСтрока(ДробноеКоличество.Знаменатель) Тогда
Если Число(ДробноеКоличество.Числитель) > 0 И Число(ДробноеКоличество.Знаменатель) > 0 Тогда
ДробноеКоличествоУказано = Истина;
КонецЕсли;
КонецЕсли;
// Реквизиты "количество предмета расчета" (тег 1023) и "мера количества предмета расчета" (тег 2108) включаются в состав запроса о коде маркировки
// в случае, если реквизит "планируемый статус товара" (тег 2003) принимает значения "2" или "4".
Если ПланируемыйСтатусТовара = 2 Или ПланируемыйСтатусТовара = 4 Тогда
ЗаписьXML.ЗаписатьАтрибут("Quantity", XMLСтрока(ПараметрыОперации.Количество)); // тег 1023
Если ДробноеКоличествоУказано Тогда
МераКоличестваПредметаРасчета = 0 ;
ЗаписьXML.ЗаписатьАтрибут("MeasureOfQuantity", XMLСтрока(МераКоличестваПредметаРасчета));
ЗаписьXML.ЗаписатьНачалоЭлемента("FractionalQuantity");
ЗаписьXML.ЗаписатьАтрибут("Numerator", XMLСтрока(ДробноеКоличество.Числитель));
ЗаписьXML.ЗаписатьАтрибут("Denominator", XMLСтрока(ДробноеКоличество.Знаменатель));
ЗаписьXML.ЗаписатьКонецЭлемента();
Иначе
Если Не ПустаяСтрока(ПараметрыОперации.КодЕдиницыИзмерения) Тогда
МераКоличестваПредметаРасчета = МенеджерОборудованияКлиентСервер.МераКоличестваПредметаРасчетаПоКодуЕдиницыИзмерения(ПараметрыОперации.КодЕдиницыИзмерения)
Иначе
МераКоличестваПредметаРасчета = ПараметрыОперации.МераКоличестваПредметаРасчета;
КонецЕсли;
Если Не ПустаяСтрока(МераКоличестваПредметаРасчета) Тогда // тег 2108
МераКоличестваПредметаРасчета = МенеджерОборудованияКлиентСервер.КодМерыКоличестваПредметаРасчетаККТ(МераКоличестваПредметаРасчета);
ЗаписьXML.ЗаписатьАтрибут("MeasureOfQuantity", XMLСтрока(МераКоличестваПредметаРасчета));
КонецЕсли;
КонецЕсли
КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента();
Возврат ЗаписьXML.Закрыть();
КонецФункции
Показать
Для успешного выполнения запроса в параметр
PlannedStatus
нужно передать что-то, чтобы не получить ошибку 26, он не может быть пустым.Обычно туда передается статус "Выбытия", я использовал 255 код, статус не изменился.Запрос проходит по нему.Передавать можно все что хотите, будет разный результат ответа.Что впрочем не помешает обработать в дальнейшем сам результат и дать команду на фискализацию, но это не точно.Точно будет когда пробью.
(89) Здравствуйте, вы можете нам дописать код чтоб убрать ошибку 2108 и налоговая увидела что мы штуками продаем) у нас только штуки можно принудительно в кассу их для всех позиций выгружать
Попробовал выбить чек коррекции прихода через тест драйвер 10.10. «Мера количества предмета расчета» указана, все реквизиты заполнены. Но чек коррекции все равно с ошибкой, как и при создании чека коррекции через 1С.
Кто пробивал чеки коррекции, проверьте в личном кабинете офд, с каким статусом у вас эти чеки. Может ФНС и тут какую-то проверку включила и теперь они с ошибкой принимаются?
(81) Я реализовал и пробил пока один пробный чек коррекции.В ФНС статус - принят.
Указан вид коррекции- самостоятельно.Дата коррекции.В дополнительных реквизитах ФП на корректируемый чек.Тип операции Коррекция Приход.
Реализовал на базе модулей из УТ 10 Собственно все как в типовой, только заблокировал создание обратной операции.
В УНФ та же байда была. Новый экземпляр оборудования не помог, обновление драйвера не помогло, галочка в драйвере про 2108 не помогла. После долгих поисков нашел, что в коде ОКЕЙ единицы измерения в конце стоял пробел. Убрал его и все пошло. Странно что единица измерения была загружена из порта итс.
Здравствуйте. Получается, что пользователь может увидеть эту ошибку приемки чека только в личном кабинете ОФД, при этом продолжать пробивать чеки ошибочно, если туда не зайдет? Зашли с одним клиентом на ФФД 1.2 в Астрал ОФД, все чеки приняты, хотя без единиц измерения, проверка выборочная?
Всем доброго дня. Кто-нибудь решил проблему? Я сделала чеки коррекции на 6 непройденных чеков, в офд они прошли, но в налоговой их не видят. Проверка на сайте ифнс дает ошибку 456 (не валидный чек). В налоговой ничего сказать не могут. Сдала объяснительные с копиями чеков коррекций, но от этого не легче. Пробила тестовый чек на 1 рубль, на сайте фнс виден. Что происходит и как решать проблему я не знаю, перерыла всю доступную информацию. Касса атол 30ф, 1с розница 3.0, только что обновила конфигурацию до последней. Версии драйверов последние как на кассу, так и в 1с.
Всем доброго дня. Кто-нибудь решил проблему? Я сделала чеки коррекции на 6 непройденных чеков, в офд они прошли, но в налоговой их не видят. Проверка на сайте ифнс дает ошибку 456 (не валидный чек). В налоговой ничего сказать не могут. Сдала объяснительные с копиями чеков коррекций, но от этого не легче. Пробила тестовый чек на 1 рубль, на сайте фнс виден. Что происходит и как решать проблему я не знаю, перерыла всю доступную информацию. Касса атол 30ф, 1с розница 3.0, только что обновила конфигурацию до последней. Версии драйверов последние как на кассу, так и в 1с.
99.
user632058_flexos
16.01.24 18:20 Сейчас в теме
Может кто-то столкнется с похожей проблемой:
Обнаружили новую проблему связанную с ФФД 1.2 и тэгом 2108. Версия ПО Управление торговлей, редакция 11 (11.5.15.65). Вот сообщение в ЛК ОФД (Не принят в ФНС: отсутствует обязательный тег №2108 (код ошибки 420) Кассы которые не обновлены и работают по старому протоколу проблем не наблюдается. На обновленной (прошивка Атол 55 - 5.8.1) и перерегистрированной кассе данный тэг срабатывает как то избирательно, но больше не срабатывает. У всего товара из номенклатуры единица измерения проставлена.
Решение: Необходимо обновить прошивку кассы Атол и сам драйвер атола на 10.10 и в 1с сменить (54-ФЗ) 10.x" на "АТОЛ:ККТ с передачей данных в ОФД 10.Х (ФФД 1.2)", далее идем в папку:
c:\Users\***\AppData\Roaming\1C\1cv8\ExtCompT\ и удаляем файлы связанные со старым драйвером fptr10_1c_win32_*.dll это старые драйвера перехватывают сигнал от 1с и некорректно работают. Это касается так же и сканеров штрихкодов.
Прикладываю наглядный пример одного и того же товара. Продажа не прошла а возврат прошел.