Имя: Пароль:
1C
 
Торговля, фискальник и чеки на оплату картой
0 poligraf
 
22.03.11
18:21
Никто сходу не натолкнет, как в чеке отразить оплату картой через банк?

В z-отчете, в итоговых суммах все сваливается в "Наличные", но в нем присутствует и графа "Плат.картой".
Покрутил обработку обслуживания, там, похоже только на наличные завязано все.
1 poligraf
 
22.03.11
18:25
Да, стоят атоловские драйвера.
Я думаю, что где-то в работе с драйвером можно это указать
2 miki
 
22.03.11
18:26
Ты уж напиши, что за фискальник, каким драйвером и какой обработкой пользуешься...
А так добавить ещё один параметр в что-то_типа ПечататьЧек()...
3 miki
 
22.03.11
18:27
(1)см. процедуру, которая отрабатывает печать чека.
4 mishaPH
 
22.03.11
18:30
(0) есть там флаг при оплате картой
5 poligraf
 
22.03.11
18:32
(3) параметр добавлю.

знать бы в какое поле его прописать:)

Вот, например, код из elvesfr.ert:

Объект.Password          = Пароль;
Объект.Price             = Получено;
Объект.Quantity          = 1;
Объект.Department        = НомерСекции;
       
где-то здесь должен быть флаг оплаты нал/картой.
6 poligraf
 
22.03.11
18:33
(4) где?
вот описание функции

Функция ПечататьЧек(Объект, Пароль, СписокТоваров, Получено, Скидка, ПризнакВозврата, НомерСекции, НомерЧека)
7 miki
 
22.03.11
18:36
(5)Добавь в конец параметр "ТипОплаты", как вариант. Тип - целое число.
У метода CloseCheck()/ЗакрытьЧек() есть свойство
TypeClose/ТипЗакрытия
Для налички - 0.
Драйвер поддерживает ещё три типа.
Тип закрытия чека:
0 - наличными;
1 - тип оплаты 1;
2 - тип оплаты 2;
3 - тип оплаты 3.

Какой у тебя завязан на пластик - можешь узнать утилитой обслуживания. Или тупо посчитать номер строки в x/z отчете.
Для феликсов это обычно "3".
8 mishaPH
 
22.03.11
18:40
Если (Наличные=0) И (Безналичные=0) Тогда
       ОнЛайнСервер.Summ1 = ОбщЦена;
       ОнЛайнСервер.Summ2 = 0;
   Иначе        
       ОнЛайнСервер.Summ1 = Наличные;
       ОнЛайнСервер.Summ2 = Безналичные;
   КонецЕсли;    

это из штриховской обработки ККМ
9 mishaPH
 
22.03.11
18:41
точнее не флаг, а разделение сумм по каналам
10 miki
 
22.03.11
18:44
+
обработка обслуживания вызывается из дока ЧекККМ или ещё откуда процедурой типа глФРПечататьЧек(), туда и добавь ещё один параметр.
В свою очередь, глФРПечататьЧек() вызывает обработку обслуживания, в которую передает СЗ с параметрами. => добавить в этот СЗ признак оплаты.
Затем обработка обслуживания в ПриОткрытии() парсит полученный СЗ (Форма.Параметр).
Надо дать ей понять, что есть варианты оплаты, выглядит примерно так:
       ИначеЕсли Процесс = "печатать_чек" Тогда
           Объект        = Парам.Получить("Объект");
           Пароль        = Парам.Получить("ПарольПользователя");
           СписокТоваров = Парам.Получить("СписокТоваров");
           СуммаЧека     = Парам.Получить("СуммаЧека");
           Получено      = Парам.Получить("Получено");
           ЧекНаВозврат  = Парам.Получить("Возврат");
           НомерСекции   = Парам.Получить("НомерСекции");
           Скидка        = Парам.Получить("Скидка");
           ДлинаСтроки   = Парам.Получить("ДлинаСтроки");
           БезНалично      = Число(Парам.Получить("Безнал"));

Ну и переделать вызов ПечататьЧек() - добавить параметр вида оплаты и присваивать его свойству TypeClose перед CloseCheck().

Единственно следует учесть, что по пластику не может быть оплаты со сдачей...
11 mishaPH
 
22.03.11
18:50
(10) + 100 есть такое
12 poligraf
 
22.03.11
19:01
(10) О! Спасибо!

И тогда еще для понимания.

Чеки с НДС и без НДС развожу по разным секциям. Так?