Привет,<br><br>возникла необходимость при продаже, в зависимости от номенклатурной группы печатать чеки на разных ФР.<br>Можно ли такое осуществить?<br>Задача - делать два z-отчета - для подакцизных товаров и не облагаемых. Может быть есть другой способ?<br>ФР - Феликс 02К.
zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №2
25.10.2010 20:59
если не секрет - зачем ?
miike
читатель
офлайн
Дата регистрации: 14.01.2009
Сообщений: 97
Пост №3
25.10.2010 21:28
ЕНВД+упрощенка. <br>Продажа автомасла и автодетали. Масла на упрощенке, всё остальное на ЕНВД.<br>Z-отчет нужно прикладывать куда-то там для налоговой.
Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №4
26.10.2010 11:28
"Я бы пошел другим путем<br>Идем сюда: http://www.atol.ru/support/documents/<br>Качаем оттуда «АТОЛ: Драйвер ККМ» — описание интерфейса<br>Читаем его внимательно и понимаем, что на чековую ленту можно печатать и без регистрации в фискальной памяти (далее по тексту "ФП"), причем печатать можно что угодно.<br>Открываем управляющую обработку Торговли и склад, которая ловит команды системы на работу с кассой и отсылает их в dll, которая в свою очередь отсылает их в железку. Обработка эта называется в типовой ТиС: FR_COMM.ERT<br>Видим, что там есть функция ПечататьЧек(). В ней идет перебор в СписокТоваров и для каждой позиции заполняется класс-регистратор операции для засылки в ККМ:<br>Объект.Price = Окр(СписокТоваров.Цена,2,1);<br>Объект.Quantity = СписокТоваров.Количество;<br>...<br>Объект.Регистрация(); //это регистрация продажи, именно этой командой фиксируется необходимость записи в ФП ККМ и это будет сделано далее методом ЗакрытьЧек() или ОплатаСоСдачей(). Как именно работают все эти методы читаем в описании драйвера ККМ, которое взяли с Атола.<br><br>Так вот я бы в этом цикле перебора определял, надо ли в ФП пробивать текущую позицию или нет. Если не надо, то для текущей позиции из СписокТоваров я бы вызывал метод PrintString(). Это просто печать на ленту без регистрации в ФП (читаем снова доку по драйверу). В результате, подготовив должным образом строку, мы получим печать чека единой стилизации, но в фискалку уйдет только то что нужно. Особое внимание на ситуацию, когда в чек не попадет ни одной позиции, требуемой к регистрации в ФП. При такой ситуации не нужно вызывать метод ОплатаСоСдачей() или ЗакрытьЧек(). Так же обратите внимание на то, что перед этими методами идет установка значения в реквизит Summ, который отражает "количество денег", которое покупатель дает кассиру. Возможно, придется эту сумму так же разбить на две и в чек засылать только нужную долю, а вторую выводить простой строкой.<br>Таким образом можно не мучаться и работать на одном аппарате, при этом он будет в ФП регистрировать именно то, что вам нужно.<br><br>Теперь подумаем о правильности. Как насчет того, что в чеке написано одно, а ККМ в ФП регистрирует другое? Что по этому поводу говорят налоговые органы и представители ЦТО (центр техобслуживания ККМ)? Они считают это нормальным? Нет? Тогда нужно пойти другим путем.<br>Надо обратить внимание на то, что при регистрации каждой продажи чек в качестве одного из признаков получает некое значение Department. По смыслу это номер секции в магазине, в которой осуществляется продажа, то есть "отдел масел", "отдел прочего". Может нам для масел туда одно значение вписывать, а для остального другой? Тогда в ФР будет происходить детализированная регистрация продаж по секциям и налоговые органы при проверке это увидят и вы сможете объяснить, что секция №1 - масла (УСН), а секция №2 - остальное (ЕНВД). Но как при этом Z отчет станет печататься - не помню, надо читать описание Атола. Зато вот что помню! Номер секции не может быть более 16, я как то раз наступал на эти грабли.<br><br>В общем, все в ваших руках, работы тут на час, а с учетом всех экспериментов - на день. Делайте аккуратнее, фискальная память ошибок не признает."
miike
читатель
офлайн
Дата регистрации: 14.01.2009
Сообщений: 97
Пост №5
26.10.2010 20:49
Огромное спасибо за развернутый ответ и пищу для ума.<br>Однако первый вариант не подходит, второй не получается - Феликс-02К не поддерживает свойство Department, о чем сказано в документации Atol.<br>Видимо всё-таки придется подключить две кассы.
miike
читатель
офлайн
Дата регистрации: 14.01.2009
Сообщений: 97
Пост №6
26.10.2010 23:25
"Подключил два ФР с помощью логических устройств. Создал два ЛУ на разных COM портах, к которым подключены ФР.<br>Далее - в обработке обслуживания ФР в функции "ПечататьЧек" в самом начале добавил строку:<br>Объект.ИндексТекущегоУстройства = НомерСекции;<br>НомерСекции передается функции по выбранному складу. Сделал два склада - масла и автозапчасти.<br>Т.е. при печати происходит переключение между ЛУ в зависимости от выбранного склада.<br>Теперь примерно такое же нужно повторить и для "Закрытия смены".<br>Будем пробовать в боевых условиях =)"
Мы используем файлы cookie, чтобы анализировать трафик, подбирать для вас подходящий контент и рекламу,
а также дать вам возможность делиться информацией в социальных сетях.
Если вы продолжите использовать сайт, мы будем считать, что вас это устраивает.
X
X
Яндекс-виджет: Новости Яндекс-виджет: Полезные материалы Информеры