Clarion и терминал карт СБЕРА

Сканеры, кассы, ККТ и т.д.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 3448
Зарегистрирован: 06 Ноябрь 2014, 12:48

Clarion и терминал карт СБЕРА

Сообщение finsoftrz »

Кстати, в кассовой программе сделали запрос печати чека. Для розницы. Если кассир выбирает не печатать, то не печатаются ни чек, ни банковской слип, ни чек егаис. Обоснование то, что сейчас введён мораторий на штрафы при невыдаче чека. Покупателя спрашивают, если говорит, что чек не нужен, то не печатают. Сколько продлится мораторий, неизвестно, а экономия должна быть заметная.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 3448
Зарегистрирован: 06 Ноябрь 2014, 12:48

Clarion и терминал карт СБЕРА

Сообщение finsoftrz »

В других магазинах аналогичная практика. Например, в Пятерочке. Правда, кассиров надо строить, некоторые ленятся спрашивать.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 6054
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion и терминал карт СБЕРА

Сообщение Игорь Столяров »

finsoftrz писал(а): 13 Июль 2022, 15:46 Если кассир выбирает не печатать, то не печатаются ни чек
Электронный чек ! Прям и для Штриха умеете ? Научите ! :shock:
Приносим Вам свои неудобства !
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 3448
Зарегистрирован: 06 Ноябрь 2014, 12:48

Clarion и терминал карт СБЕРА

Сообщение finsoftrz »

Для атолов, штрихов и пиритов такое можно. Для сп, насколько знаю, такой возможности нет, у них можно только при регистрации ккм задать режим без печати чека. На них не печатают банковские слипы и егаис.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 6054
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion и терминал карт СБЕРА

Сообщение Игорь Столяров »

finsoftrz писал(а): 13 Июль 2022, 16:14 Для ... штрихов ... такое можно.
Научите пожалуйста ! Лет пять передаём электронные чеки - но для Штриха не умеем. :(
Точнее там нет программного переключения - только по настройке драйвера. :(
Последний раз редактировалось Игорь Столяров 13 Июль 2022, 16:27, всего редактировалось 1 раз.
Приносим Вам свои неудобства !
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 3448
Зарегистрирован: 06 Ноябрь 2014, 12:48

Clarion и терминал карт СБЕРА

Сообщение finsoftrz »

Это лучше бы в другую тему разместить.

Для штриха надо перед открытием чека записать признак в таблицу (после печати он автоматически возвращается в стандартное положение). После открытия чека передать какой-нибудь адрес покупателя. Можно любой. Без него не пробовал.

Как-то так выглядит.

Код: Выделить всё

         if SELF.FlagPrintNo=1  !не печатать следующий чек
            if SELF.TablesWrite(1,17,1,7,0).
         .

         SELF.Contr{'password'} = SELF.Pswd
         SELF.Contr{'CheckType'} = 0
         SELF.Contr{'OpenCheck()'}

         if SELF.FlagPrintNo=1  !не печатается чек, передаем эл.адрес/телефон покупателя
            SELF.Contr{'password'} = SELF.Pswd
            SELF.Contr{'TagType'}  = 7
            SELF.Contr{'TagNumber'}  = 1008
            SELF.Contr{'TagValueStr'}=SELF.KlientContact
            SELF.Contr{'FNSendTag()'}
         .
Запись в таблицу.

Код: Выделить всё

         !===================================================================================
! Записать таблицу
!
FsKKM.TablesWrite FUNCTION (STRING pVal, BYTE pTable, BYTE pRow, BYTE pCol, BYTE pReg)
      CODE

   if SELF.Active=0
      return(0)
   end

   if SELF.DriverType=0  !штрих
      SELF.Contr{'password'}     = SELF.PswdAdmin
      SELF.Contr{'TableNumber'}  = pTable
      SELF.Contr{'RowNumber'}    = pRow
      SELF.Contr{'FieldNumber'}  = pCol
      if pReg=0
         SELF.Contr{'ValueOfFieldString'}=pVal
      else
         SELF.Contr{'ValueOfFieldInteger'}=pVal
      end
      SELF.Contr{'WriteTable()'}
   else                  !атол
      SELF.Contr{'Table'}  = pTable
      SELF.Contr{'Row'}    = pRow
      SELF.Contr{'Field'}  = pCol
      if pReg=0   !строка
         SELF.Contr{'FieldType'}  = 1
      else        !число
         SELF.Contr{'FieldType'}  = 0
      end
      SELF.Contr{'Caption'}=pVal
      SELF.Contr{'SetSettings()'}
   end

   if SELF.Contr{'RESULTCODE'}=0
      return(1)
   else
      return(0)
   end

C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 6054
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion и терминал карт СБЕРА

Сообщение Игорь Столяров »

finsoftrz писал(а): 13 Июль 2022, 16:26 после печати он автоматически возвращается в стандартное положение
Ага ! Вот как они вывернулись ... Спасибо. Попробуем. :)
finsoftrz писал(а): 13 Июль 2022, 16:26 Это лучше бы в другую тему разместить
Та пусь будет - кому надо найдут поиском. ;)
Приносим Вам свои неудобства !
Аватара пользователя
SergioRaguzini
Активист
Сообщения: 165
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край

Clarion и терминал карт СБЕРА

Сообщение SergioRaguzini »

finsoftrz писал(а): 13 Июль 2022, 16:26 Для штриха надо перед открытием чека записать признак в таблицу (после печати он автоматически возвращается в стандартное положение). После открытия чека передать какой-нибудь адрес покупателя. Можно любой.
Спасибо!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 6054
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Clarion и терминал карт СБЕРА

Сообщение Игорь Столяров »

finsoftrz писал(а): 13 Июль 2022, 16:26 SELF.Contr{'TagNumber'} = 1008
Как я понимаю - начиная с версии драйвера 4.12 (когда появилось понятие электронного чека),
есть специальный метод для передачи "телефона или e-mail покупателя для отправки чека":

Код: Выделить всё

  If MyFRS.ClientEMail <> ''  ! Телефон / E-mail для передачи чека через ОФД
     MyFRS.Object{'Password'}      = Clip(MyFRS.FRPass)
     MyFRS.Object{'CustomerEmail'} = MyFRS.ClientEMail
     MyFRS.Object{'FNSendCustomerEmail'}
  end
Даже не могу сказать сколько - но очень давно используем этот метод.
Приносим Вам свои неудобства !
Ответить