|
v7: ФР Штрих-М-01Ф - проблема с печатью нескольких НДС и различных типов оплат | ☑ | ||
---|---|---|---|---|
0
jq
30.05.17
✎
12:36
|
Добрый день. Есть ФР Штрих-М-01Ф, подключен к 1С обработкой fr_elves.ert, версия драйвера последняя 4.13.0.577, конфигурация доработана на примере типовой торговли 988. Продажи проходят, чеки печатаются. Но есть две проблемы:
Вопрос 1. Надо продать два товара, один с ндс 18, второй без ндс. Таблица в драйвере Налоговые ставки имеет строки: 1) 1800 - ндс 18%, 2) 1000 - ндс 10%, 3) 0 - без НДС, и еще несколько Продаю товар1 - прописываю ставку 18*100, т.е. с ндс 18, товар2 - ставка 0, т.к. без ндс В драйвер передаю: глФР.Налог1 = 1, т.е. 1 строка таблицы налогов 18% глФР.Налог2 = 3, т.е. 3 строка таблицы налогов 0% В итоге на чеке печатаются оба товара и рядом с суммой по каждой строке код ставки - "А", ниже в чеке указано, что "А" - НДС 18%. Т.е. два товара с ндс 18, хотя второй должен быть без ндс... Почему нет разделения на две налоговые ставки? Где делаю ошибку? Подскажите пожалуйста! Вопрос 2. Делаю аналогичную продажу, но интересуею вид оплаты Банк. картой, либо Аванс. Таблица оплат в драйвере 1) наличные 2)3)4) - банк карты, остальные поля до 16) - другие виды оплат, поле 14) аванс В тексте прописываю: глФР.Сумма2 = 100; // сумма2 - банк. картой глФР.РазрешенаОплатаКартами = 1; либо глФР.Сумма14 = 100; // сумма14 - аванс глФР.РазрешенаОплатаКартами = 1; В итоге при любом варианте в чеке выдает Наличные... Где исправить? Как правильно? //****************************************************************************** // Функция ПробитьЧекНаККМ() Перем НомерЧека; ЧекПробитККМ=1; СписокТоваров = СоздатьОбъект("ТаблицаЗначений"); СписокТоваров.НоваяКолонка("ТовНаим" , "Строка"); СписокТоваров.НоваяКолонка("Цена" , "Число"); СписокТоваров.НоваяКолонка("Количество", "Число"); СписокТоваров.НоваяКолонка("Сумма" , "Число"); СписокТоваров.НоваяКолонка("СтавкаНДС" , "Число"); СписокТоваров.НоваяСтрока(); СписокТоваров.ТовНаим = "Свеча зажигания"; СписокТоваров.Цена = 20;//ДокОснование.Цена; СписокТоваров.Количество = 3; СписокТоваров.Сумма = 60; СписокТоваров.СтавкаНДС = 18*100; СписокТоваров.НоваяСтрока(); СписокТоваров.ТовНаим = "Регистрация ГИБДД"; СписокТоваров.Цена = 40;//ДокОснование.Цена; СписокТоваров.Количество = 1; СписокТоваров.Сумма = 40; СписокТоваров.СтавкаНДС = 0; ПризнВозврата = 0; ПУП = 0; ВыбКасса = Касса; Кассир = глФИО(ВыбКассир); ЧекПробитККМ = глФРПечататьЧек(СписокТоваров, Итог("Сумма"), ?(Получено=0,Итог("Сумма"),Получено), 0, ПризнВозврата, "Склад", НомерЧека, ПУП, Кассир); Если ЧекПробитККМ = 1 Тогда ПриЗаписиПерепроводить(0); НомерЧекаККМ = НомерЧека; Записать(); ПриЗаписиПерепроводить(1); КонецЕсли; Возврат ЧекПробитККМ; КонецФункции // ПробитьЧекНаККМ() //****************************************************************************** // глФРПечататьЧек(СписокТоваров, СуммаЧека, Получено, ПризнВозврата, НомерСекции, НомерЧека, ПУП, Кассир) // // Параметры: // СписокТоваров - таблица значений с информацией о проданных или возвращенных товарах // СуммаЧека - итоговая сумма чека // Получено - сумма, полученная от покупателя // ПризнВозврата - 1 - чек на возврат, 0 - чек на продажу // НомерСекции - номер секции // НомерЧека - выходной параметр. Номер чека, пробитого на фискальном регистраторе // ПУП - параметры учетной политики // Кассир - кассир // // Возвращаемое значение: // 1 - операция успешно завершена, 0 - нет. // // Описание: // печатает чек на фискальном регистраторе // Функция глФРПечататьЧек(СписокТоваров, СуммаЧека, Получено, Скидка, ПризнВозврата, НомерСекции, НомерЧека, ПУП, Кассир) Экспорт Рез = 0; Сообщить("COM порт: " + глФР.НомерCOMпорта); глФР.НомерCOMпорта = 6; Сообщить("COM порт изменен: " + глФР.НомерCOMпорта); Если глФРВкл = 1 Тогда Параметры = СоздатьОбъект("СписокЗначений"); Параметры.Установить("Процесс" , "печатать_чек"); Параметры.Установить("Объект" , глФР); Параметры.Установить("ПарольПользователя", глФРПарольПользователя); Параметры.Установить("СписокТоваров" , СписокТоваров); Параметры.Установить("СуммаЧека" , СуммаЧека); Параметры.Установить("Получено" , Получено); Параметры.Установить("Скидка" , Скидка); Параметры.Установить("Возврат" , ПризнВозврата); Параметры.Установить("ПУП" , ПУП); Параметры.Установить("Кассир" , Кассир); Параметры.Установить("НомерСекции" , НомерСекции); Параметры.Установить("ПриемНаличныхОтЮрЛиц", глФРДляПриемаНаличныхОтЮрЛиц); глФР.Налог1 = 1; глФР.Налог2 = 3; глФР.Сумма2 = 100; глФР.РазрешенаОплатаКартами = 1; РезТекст = глОборудованиеКоманда("ФР", глФРОбработка, Параметры); Если ПустоеЗначение(РезТекст) = 0 Тогда Сообщить(РезТекст); Иначе Если Параметры.Получить("Результат") = 0 Тогда Сообщить("Фискальный регистратор: ошибка при печати чека"); Сообщить(Параметры.Получить("ОписаниеРезультата")); Иначе НомерЧека = Параметры.Получить("НомерЧека"); Рез = 1; КонецЕсли; КонецЕсли; КонецЕсли; Возврат Рез; КонецФункции // глФРПечататьЧек() |
|||
1
jq
30.05.17
✎
14:25
|
ап
|
|||
2
Ray Zexter
30.05.17
✎
14:31
|
По первому вопросу
глФР.Налог2 = 3 замени на глФР.Налог1 = 3 |
|||
3
Ray Zexter
30.05.17
✎
14:32
|
И определись Без НДС или НДС 0% - для ФР это 2 разные вещи
|
|||
4
mexanik_96
30.05.17
✎
14:47
|
(0) что то мне подсказывает что не там правит автор код. покажи метод закрытия чека в обармотке там где close()
|
|||
5
jq
30.05.17
✎
14:48
|
(2) Это не правильно, т.к. в данном случае на весь чек будет налог3, т.е. без ндс, а нужно чтобы две позиции в чеке были с разными налоговыми ставками.
В драйвере специально для этого 4 поля, Налог1,...,Налог4, чтобы присваивать 4 типа ставок, так вот с двумя не получается никак реализовать... (3) спасибо, но сейчас не принципиально |
|||
6
Ray Zexter
30.05.17
✎
14:51
|
(5) замени код, чтобы везде было глФР.Налог1, просто передавай на него каждый раз новые ставки и посмотри что выдаст ФР.
|
|||
7
jq
30.05.17
✎
14:52
|
(4) Точно не там... Только сейчас нашел процедуры в обработке обслуживания fr_elves.ert.
В ней нужно, да? А я и думаю, что-то не то... Спасибо! буду смотреть) |
|||
8
jq
30.05.17
✎
15:39
|
С данными вопросами разобрался, но момент с предоплатой не получается, как быть?
В таблице драйвера Типы оплат строка 14) Аванс, это может быть как оплата наличными, так и картой. Как это реализовать? Если написать, например, Summ1=100, то это будет нал. оплата, если Summ1=0,...,Summ14=100, то ФР не видит денег и говорит что сумма всех оплат меньше суммы док-та, чек не печатает. Если же значение записать в обе указанные суммы, то подхватывает первую и получается опять же нал. оплата... Как заставить выдать текст Аванс в форме оплаты? Или надо править таблицу драйвера и завести два аванса наличными и картой? Или я чего-то не понимаю? Может аванс просто строкой печатать вместо товара, а форма оплаты так и останется нал/безнал??? Объект.Password = Пароль; Объект.Summ1 = Получено; Объект.Summ2 = 0; Объект.Summ3 = 0; Объект.Summ4 = 0; Объект.Summ14 = Получено; |
|||
9
jq
31.05.17
✎
10:30
|
Никто про авансы не подскажет?
|
|||
10
jq
31.05.17
✎
15:08
|
а?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |