Два ККМ в Торговля+Склад 7.70.949

Новая тема
Привет,

возникла необходимость при продаже, в зависимости от номенклатурной группы печатать чеки на разных ФР.
Можно ли такое осуществить?
Задача - делать два z-отчета - для подакцизных товаров и не облагаемых. Может быть есть другой способ?
ФР - Феликс 02К.
если не секрет - зачем ?
ЕНВД+упрощенка.
Продажа автомасла и автодетали. Масла на упрощенке, всё остальное на ЕНВД.
Z-отчет нужно прикладывать куда-то там для налоговой.
"Я бы пошел другим путем
Идем сюда: http://www.atol.ru/support/documents/
Качаем
оттуда «АТОЛ: Драйвер ККМ» — описание интерфейса
Читаем его внимательно и понимаем, что на чековую ленту можно печатать и без регистрации в фискальной памяти (далее по тексту "ФП"), причем печатать можно что угодно.
Открываем управляющую обработку Торговли и склад, которая ловит команды системы на работу с кассой и отсылает их в dll, которая в свою очередь отсылает их в железку. Обработка эта называется в типовой ТиС: FR_COMM.ERT
Видим, что там есть функция ПечататьЧек(). В ней идет перебор в СписокТоваров и для каждой позиции заполняется класс-регистратор операции для засылки в ККМ:
Объект.Price      = Окр(СписокТоваров.Цена,2,1);
Объект.Quantity   = СписокТоваров.Количество;
...
Объект.Регистрация(); //это регистрация продажи, именно этой командой фиксируется необходимость записи в ФП ККМ и это будет сделано далее методом ЗакрытьЧек() или ОплатаСоСдачей(). Как именно работают все эти методы читаем в описании драйвера ККМ, которое взяли с Атола.

Так вот я бы в этом цикле перебора определял, надо ли в ФП пробивать текущую позицию или нет. Если не надо, то для текущей позиции из СписокТоваров я бы вызывал метод PrintString(). Это просто печать на ленту без регистрации в ФП (читаем снова доку по драйверу). В результате, подготовив должным образом строку, мы получим печать чека единой стилизации, но в фискалку уйдет только то что нужно. Особое внимание на ситуацию, когда в чек не попадет ни одной позиции, требуемой к регистрации в ФП. При такой ситуации не нужно вызывать метод ОплатаСоСдачей() или ЗакрытьЧек(). Так же обратите внимание на то, что перед этими методами идет установка значения в реквизит Summ, который отражает "количество денег", которое покупатель дает кассиру. Возможно, придется эту сумму так же разбить на две и в чек засылать только нужную долю, а вторую выводить простой строкой.
Таким образом можно не мучаться и работать на одном аппарате, при этом он будет в ФП регистрировать именно то, что вам нужно.

Теперь подумаем о правильности. Как насчет того, что в чеке написано одно, а ККМ в ФП регистрирует другое? Что по этому поводу говорят налоговые органы и представители ЦТО (центр техобслуживания ККМ)? Они считают это нормальным? Нет? Тогда нужно пойти другим путем.
Надо обратить внимание на то, что при регистрации каждой продажи чек в качестве одного из признаков получает некое значение Department. По смыслу это номер секции в магазине, в которой осуществляется продажа, то есть "отдел масел", "отдел прочего". Может нам для масел туда одно значение вписывать, а для остального другой? Тогда в ФР будет происходить детализированная регистрация продаж по секциям и налоговые органы при проверке это увидят и вы сможете объяснить, что секция №1 - масла (УСН), а секция №2 - остальное (ЕНВД). Но как при этом Z отчет станет печататься - не помню, надо читать описание Атола. Зато вот что помню! Номер секции не может быть более 16, я как то раз наступал на эти грабли.

В общем, все в ваших руках, работы тут на час, а с учетом всех экспериментов - на день. Делайте аккуратнее, фискальная память ошибок не признает."
Огромное спасибо за развернутый ответ и пищу для ума.
Однако первый вариант не подходит, второй не получается - Феликс-02К не поддерживает свойство Department, о чем сказано в документации Atol.
Видимо всё-таки придется подключить две кассы.
"Подключил два ФР с помощью логических устройств. Создал два ЛУ на разных COM портах, к которым подключены ФР.
Далее - в обработке обслуживания ФР в функции "ПечататьЧек" в самом начале добавил строку:
Объект.ИндексТекущегоУстройства = НомерСекции;
НомерСекции передается функции по выбранному складу. Сделал два склада - масла и автозапчасти.
Т.е. при печати происходит переключение между ЛУ в зависимости от выбранного склада.
Теперь примерно такое же нужно повторить и для "Закрытия смены".
Будем пробовать в боевых условиях =)"
Читают тему
(гостей: 1)

Быстрый переход