1. Перейдите в меню: Настройки > Печать > Использование схем печати.
    Узнайте схему печати, которая используется сейчас: приоритет снизу вверх — чем ниже, тем приоритетнее.
  2. Перейдите в меню: Настройки > Печать > Схемы печати

  3. Выберете используемую схему печати, которую узнали в прошлом пункте. Найдите документ Чек, узнайте какой макет: номер и название сейчас используется по умолчанию.

  4. Перейдите в меню Настройки > Печать > Документы и макеты 
  5. Перейдите в раздел Расчёт с покупателем и выберите пункт Чек
  6. Скопируйте макет текущего чека название и номер которого вы посмотрели в Схеме печати. Нажмите на иконку чека правой кнопкой мышки и выберите Копировать, затем, на пустом месте Вставить
  7. Добавьте к названию макета DCTips
  8. Переведите Статус из Черновик в Активный
  9. Перейдите в редактирование дизайна макета, нажав левой кнопкой на ... в поле Макет или нажав дважды на [Дизайн макета]
  10. В нижний бенд добавьте мемо. Для этого нажмите на свободном месте бенда правой кнопкой мыши и выберите Создать мемо.
    Если свободного места нет, то расширьте бенд мышкой.
    Если в бенде есть мемо с <EndRoll>, то нужно его перетащить мышкой ниже нашего.
    Бенд — блок чека, в который можно добавлять мемо.
    Мемо — поля чека выводящие информацию.

  11. Растяните мемо за его края на ширину чека.

  12. Войдите в режим редактирования. Для этого нажмите правой кнопкой мышки на мемо, выберите пункт Режим редактирования и нажмите по мемо левой кнопкой мыши дважды

  13. В мемо вставьте нужный вариант скрипта, в зависимости от ширины макета, по умолчанию 40 

    var 
      sQR, wCode, sum, orderId, orgId, defaultWaiter, str, table: string; 
      i: Integer; 
      ch: char;
    begin
      str := [Заказы.Имястола]; 
      sum := IntToStr(Trunc([Чеки.Сумма]));
      table := '';
      wCode := [Заказы.Основнойофициант.КодDCTips];  
      orgId := [System.Ресторан.КодресторанаDCTips];
      defaultWaiter := [System.Ресторан.КодпоумолчаниюDCTips];
      orderId := IntToStr(Trunc([Чеки.Номерчека]));
      for i := 1 to Length(str) do begin
        ch := str[i];
        if ch = 'а' then
          table := table + 'a'
        else if ch = 'А' then
          table := table + 'A'
        else if ch = 'б' then
          table := table + 'b'
        else if ch = 'Б' then
          table := table + 'B'
        else if ch = 'в' then
          table := table + 'v'
        else if ch = 'В' then
          table := table + 'V'
        else if ch = 'г' then
          table := table + 'g'
        else if ch = 'Г' then
          table := table + 'G'
        else if ch = 'д' then
          table := table + 'd'
        else if ch = 'Д' then
          table := table + 'D'
        else if (ch = 'е') or (ch = 'ё') then
          table := table + 'e'
        else if (ch = 'Е') or (ch = 'Ё') then
          table := table + 'E'
        else if ch = 'ж' then
          table := table + 'j'
        else if ch = 'Ж' then
          table := table + 'J'
        else if ch = 'з' then
          table := table + 'z'
        else if ch = 'З' then
          table := table + 'Z'
        else if (ch = 'и') or (ch = 'й') then
          table := table + 'i'
        else if (ch = 'И') or (ch = 'Й') then
          table := table + 'I'
        else if ch = 'к' then
          table := table + 'k'
        else if ch = 'К' then
          table := table + 'K'
        else if ch = 'л' then
          table := table + 'l'
        else if ch = 'Л' then
          table := table + 'L'
        else if ch = 'м' then
          table := table + 'm'
        else if ch = 'М' then
          table := table + 'M'
        else if ch = 'н' then
          table := table + 'n'
        else if ch = 'Н' then
          table := table + 'N'
        else if ch = 'о' then
          table := table + 'o'
        else if ch = 'О' then
          table := table + 'O'
        else if ch = 'п' then
          table := table + 'p'
        else if ch = 'П' then
          table := table + 'P'
        else if ch = 'р' then
          table := table + 'r'
        else if ch = 'Р' then
          table := table + 'R'
        else if ch = 'с' then
          table := table + 's'
        else if ch = 'С' then
          table := table + 'S'
        else if ch = 'т' then
          table := table + 't'
        else if ch = 'Т' then
          table := table + 'T'
        else if ch = 'у' then
          table := table + 'u'
        else if ch = 'У' then
          table := table + 'U'
        else if ch = 'ф' then
          table := table + 'f'
        else if ch = 'Ф' then
          table := table + 'F'
        else if ch = 'х' then
          table := table + 'h'
        else if ch = 'Х' then
          table := table + 'H'
        else if ch = 'ц' then
          table := table + 'c'
        else if ch = 'Ц' then
          table := table + 'C'
        else if ch = 'ч' then
          table := table + 'ch'
        else if ch = 'Ч' then
          table := table + 'CH'
        else if ch = 'ш' then
          table := table + 'sh'
        else if ch = 'Ш' then
          table := table + 'SH'
        else if ch = 'щ' then
          table := table + 'sc'
        else if ch = 'Щ' then
          table := table + 'SC'
        else if (ch = 'ъ') or (ch = 'Ъ') then
          table := table + ''
        else if ch = 'ы' then
          table := table + 'y'
        else if ch = 'Ы' then
          table := table + 'Y'
        else if (ch = 'ь') or (ch = 'Ь') then
          table := table + ''
        else if ch = 'э' then
          table := table + 'e'
        else if ch = 'Э' then
          table := table + 'E'
        else if ch = 'ю' then
          table := table + 'iu'
        else if ch = 'Ю' then
          table := table + 'IU'
        else if ch = 'я' then
          table := table + 'ia'
        else if ch = 'Я' then
          table := table + 'IA'
        else
          table := table + ch;
        end;
      if (wCode = '') then wCode := defaultWaiter;
      if ((wCode <> '') AND (orgId <> '')) then 
      begin 
          sQR := 'https://tips.delivery-club.ru/pay/' + wCode + '?org='+ orgId + '&src=3&orderSum=' + sum + '&orderId=' + orderId + '&table=' + table;
          Memo7.text  :=  Char(#10)
                       + '<H2><W2>Безналичные чаевые' + Char(#10)
                       + '<H1><W1>         Чтобы оставить чаевые,' + Char(#10)  
                       + '       наведите камеру на QR-код' + Char(#10)
                       + '             <QRCode ' + sQR + '>' + Char(#10)
                       + '        Delivery Club Чаевые' + Char(#10)
       end;
    end
    XML
    var 
      sQR, wCode, sum, orderId, orgId, defaultWaiter, str, table: string; 
      i: Integer; 
      ch: char;
    begin
      str := [Заказы.Имястола]; 
      sum := IntToStr(Trunc([Чеки.Сумма]));
      table := '';
      wCode := [Заказы.Основнойофициант.КодDCTips];  
      orgId := [System.Ресторан.КодресторанаDCTips];
      defaultWaiter := [System.Ресторан.КодпоумолчаниюDCTips];
      orderId := IntToStr(Trunc([Чеки.Номерчека]));
      for i := 1 to Length(str) do begin
        ch := str[i];
        if ch = 'а' then
          table := table + 'a'
        else if ch = 'А' then
          table := table + 'A'
        else if ch = 'б' then
          table := table + 'b'
        else if ch = 'Б' then
          table := table + 'B'
        else if ch = 'в' then
          table := table + 'v'
        else if ch = 'В' then
          table := table + 'V'
        else if ch = 'г' then
          table := table + 'g'
        else if ch = 'Г' then
          table := table + 'G'
        else if ch = 'д' then
          table := table + 'd'
        else if ch = 'Д' then
          table := table + 'D'
        else if (ch = 'е') or (ch = 'ё') then
          table := table + 'e'
        else if (ch = 'Е') or (ch = 'Ё') then
          table := table + 'E'
        else if ch = 'ж' then
          table := table + 'j'
        else if ch = 'Ж' then
          table := table + 'J'
        else if ch = 'з' then
          table := table + 'z'
        else if ch = 'З' then
          table := table + 'Z'
        else if (ch = 'и') or (ch = 'й') then
          table := table + 'i'
        else if (ch = 'И') or (ch = 'Й') then
          table := table + 'I'
        else if ch = 'к' then
          table := table + 'k'
        else if ch = 'К' then
          table := table + 'K'
        else if ch = 'л' then
          table := table + 'l'
        else if ch = 'Л' then
          table := table + 'L'
        else if ch = 'м' then
          table := table + 'm'
        else if ch = 'М' then
          table := table + 'M'
        else if ch = 'н' then
          table := table + 'n'
        else if ch = 'Н' then
          table := table + 'N'
        else if ch = 'о' then
          table := table + 'o'
        else if ch = 'О' then
          table := table + 'O'
        else if ch = 'п' then
          table := table + 'p'
        else if ch = 'П' then
          table := table + 'P'
        else if ch = 'р' then
          table := table + 'r'
        else if ch = 'Р' then
          table := table + 'R'
        else if ch = 'с' then
          table := table + 's'
        else if ch = 'С' then
          table := table + 'S'
        else if ch = 'т' then
          table := table + 't'
        else if ch = 'Т' then
          table := table + 'T'
        else if ch = 'у' then
          table := table + 'u'
        else if ch = 'У' then
          table := table + 'U'
        else if ch = 'ф' then
          table := table + 'f'
        else if ch = 'Ф' then
          table := table + 'F'
        else if ch = 'х' then
          table := table + 'h'
        else if ch = 'Х' then
          table := table + 'H'
        else if ch = 'ц' then
          table := table + 'c'
        else if ch = 'Ц' then
          table := table + 'C'
        else if ch = 'ч' then
          table := table + 'ch'
        else if ch = 'Ч' then
          table := table + 'CH'
        else if ch = 'ш' then
          table := table + 'sh'
        else if ch = 'Ш' then
          table := table + 'SH'
        else if ch = 'щ' then
          table := table + 'sc'
        else if ch = 'Щ' then
          table := table + 'SC'
        else if (ch = 'ъ') or (ch = 'Ъ') then
          table := table + ''
        else if ch = 'ы' then
          table := table + 'y'
        else if ch = 'Ы' then
          table := table + 'Y'
        else if (ch = 'ь') or (ch = 'Ь') then
          table := table + ''
        else if ch = 'э' then
          table := table + 'e'
        else if ch = 'Э' then
          table := table + 'E'
        else if ch = 'ю' then
          table := table + 'iu'
        else if ch = 'Ю' then
          table := table + 'IU'
        else if ch = 'я' then
          table := table + 'ia'
        else if ch = 'Я' then
          table := table + 'IA'
        else
          table := table + ch;
        end;
      if (wCode = '') then wCode := defaultWaiter;
      if ((wCode <> '') AND (orgId <> '')) then 
      begin 
          sQR := 'https://tips.delivery-club.ru/pay/' + wCode + '?org='+ orgId + '&src=3&orderSum=' + sum + '&orderId=' + orderId + '&table=' + table;
          Memo7.text  :=  Char(#10)
                       + '<H2><W2> Безналичные чаевые' + Char(#10)
                       + '<H1><W1>        Чтобы оставить чаевые,' + Char(#10)  
                       + '      наведите камеру на QR-код' + Char(#10)                
                       + '           <QRCode ' + sQR + '>' + Char(#10)  
                       + '         Delivery Club Чаевые'  + Char(#10)
       end;
    end
    CODE
    var 
      sQR, wCode, sum, orderId, orgId, defaultWaiter, str, table: string; 
      i: Integer; 
      ch: char;
    begin
      str := [Заказы.Имястола]; 
      sum := IntToStr(Trunc([Чеки.Сумма]));
      table := '';
      wCode := [Заказы.Основнойофициант.КодDCTips];  
      orgId := [System.Ресторан.КодресторанаDCTips];
      defaultWaiter := [System.Ресторан.КодпоумолчаниюDCTips];
      orderId := IntToStr(Trunc([Чеки.Номерчека]));
      for i := 1 to Length(str) do begin
        ch := str[i];
        if ch = 'а' then
          table := table + 'a'
        else if ch = 'А' then
          table := table + 'A'
        else if ch = 'б' then
          table := table + 'b'
        else if ch = 'Б' then
          table := table + 'B'
        else if ch = 'в' then
          table := table + 'v'
        else if ch = 'В' then
          table := table + 'V'
        else if ch = 'г' then
          table := table + 'g'
        else if ch = 'Г' then
          table := table + 'G'
        else if ch = 'д' then
          table := table + 'd'
        else if ch = 'Д' then
          table := table + 'D'
        else if (ch = 'е') or (ch = 'ё') then
          table := table + 'e'
        else if (ch = 'Е') or (ch = 'Ё') then
          table := table + 'E'
        else if ch = 'ж' then
          table := table + 'j'
        else if ch = 'Ж' then
          table := table + 'J'
        else if ch = 'з' then
          table := table + 'z'
        else if ch = 'З' then
          table := table + 'Z'
        else if (ch = 'и') or (ch = 'й') then
          table := table + 'i'
        else if (ch = 'И') or (ch = 'Й') then
          table := table + 'I'
        else if ch = 'к' then
          table := table + 'k'
        else if ch = 'К' then
          table := table + 'K'
        else if ch = 'л' then
          table := table + 'l'
        else if ch = 'Л' then
          table := table + 'L'
        else if ch = 'м' then
          table := table + 'm'
        else if ch = 'М' then
          table := table + 'M'
        else if ch = 'н' then
          table := table + 'n'
        else if ch = 'Н' then
          table := table + 'N'
        else if ch = 'о' then
          table := table + 'o'
        else if ch = 'О' then
          table := table + 'O'
        else if ch = 'п' then
          table := table + 'p'
        else if ch = 'П' then
          table := table + 'P'
        else if ch = 'р' then
          table := table + 'r'
        else if ch = 'Р' then
          table := table + 'R'
        else if ch = 'с' then
          table := table + 's'
        else if ch = 'С' then
          table := table + 'S'
        else if ch = 'т' then
          table := table + 't'
        else if ch = 'Т' then
          table := table + 'T'
        else if ch = 'у' then
          table := table + 'u'
        else if ch = 'У' then
          table := table + 'U'
        else if ch = 'ф' then
          table := table + 'f'
        else if ch = 'Ф' then
          table := table + 'F'
        else if ch = 'х' then
          table := table + 'h'
        else if ch = 'Х' then
          table := table + 'H'
        else if ch = 'ц' then
          table := table + 'c'
        else if ch = 'Ц' then
          table := table + 'C'
        else if ch = 'ч' then
          table := table + 'ch'
        else if ch = 'Ч' then
          table := table + 'CH'
        else if ch = 'ш' then
          table := table + 'sh'
        else if ch = 'Ш' then
          table := table + 'SH'
        else if ch = 'щ' then
          table := table + 'sc'
        else if ch = 'Щ' then
          table := table + 'SC'
        else if (ch = 'ъ') or (ch = 'Ъ') then
          table := table + ''
        else if ch = 'ы' then
          table := table + 'y'
        else if ch = 'Ы' then
          table := table + 'Y'
        else if (ch = 'ь') or (ch = 'Ь') then
          table := table + ''
        else if ch = 'э' then
          table := table + 'e'
        else if ch = 'Э' then
          table := table + 'E'
        else if ch = 'ю' then
          table := table + 'iu'
        else if ch = 'Ю' then
          table := table + 'IU'
        else if ch = 'я' then
          table := table + 'ia'
        else if ch = 'Я' then
          table := table + 'IA'
        else
          table := table + ch;
        end;
      if (wCode = '') then wCode := defaultWaiter;
      if ((wCode <> '') AND (orgId <> '')) then 
      begin 
          sQR := 'https://tips.delivery-club.ru/pay/' + wCode + '?org='+ orgId + '&src=3&orderSum=' + sum + '&orderId=' + orderId + '&table=' + table;
    		  Memo7.text  :=  Char(#10)
                       + '<H2><W2>   Безналичные чаевые' + Char(#10)
                       + '<H1><W1>             Чтобы оставить чаевые,' + Char(#10)  
                       + '           наведите камеру на QR-код' + Char(#10)                
                       + '               <QRCode ' + sQR + '>' + Char(#10)  
                       + '         Delivery Club Чаевые'  + Char(#10)
       end;
    end
    CODE
    var 
      sQR, wCode, sum, orderId, orgId, defaultWaiter, str, table: string; 
      i: Integer; 
      ch: char;
    begin
      str := [Заказы.Имястола]; 
      sum := IntToStr(Trunc([Чеки.Сумма]));
      table := '';
      wCode := [Заказы.Основнойофициант.КодDCTips];  
      orgId := [System.Ресторан.КодресторанаDCTips];
      defaultWaiter := [System.Ресторан.КодпоумолчаниюDCTips];
      orderId := IntToStr(Trunc([Чеки.Номерчека]));
      for i := 1 to Length(str) do begin
        ch := str[i];
        if ch = 'а' then
          table := table + 'a'
        else if ch = 'А' then
          table := table + 'A'
        else if ch = 'б' then
          table := table + 'b'
        else if ch = 'Б' then
          table := table + 'B'
        else if ch = 'в' then
          table := table + 'v'
        else if ch = 'В' then
          table := table + 'V'
        else if ch = 'г' then
          table := table + 'g'
        else if ch = 'Г' then
          table := table + 'G'
        else if ch = 'д' then
          table := table + 'd'
        else if ch = 'Д' then
          table := table + 'D'
        else if (ch = 'е') or (ch = 'ё') then
          table := table + 'e'
        else if (ch = 'Е') or (ch = 'Ё') then
          table := table + 'E'
        else if ch = 'ж' then
          table := table + 'j'
        else if ch = 'Ж' then
          table := table + 'J'
        else if ch = 'з' then
          table := table + 'z'
        else if ch = 'З' then
          table := table + 'Z'
        else if (ch = 'и') or (ch = 'й') then
          table := table + 'i'
        else if (ch = 'И') or (ch = 'Й') then
          table := table + 'I'
        else if ch = 'к' then
          table := table + 'k'
        else if ch = 'К' then
          table := table + 'K'
        else if ch = 'л' then
          table := table + 'l'
        else if ch = 'Л' then
          table := table + 'L'
        else if ch = 'м' then
          table := table + 'm'
        else if ch = 'М' then
          table := table + 'M'
        else if ch = 'н' then
          table := table + 'n'
        else if ch = 'Н' then
          table := table + 'N'
        else if ch = 'о' then
          table := table + 'o'
        else if ch = 'О' then
          table := table + 'O'
        else if ch = 'п' then
          table := table + 'p'
        else if ch = 'П' then
          table := table + 'P'
        else if ch = 'р' then
          table := table + 'r'
        else if ch = 'Р' then
          table := table + 'R'
        else if ch = 'с' then
          table := table + 's'
        else if ch = 'С' then
          table := table + 'S'
        else if ch = 'т' then
          table := table + 't'
        else if ch = 'Т' then
          table := table + 'T'
        else if ch = 'у' then
          table := table + 'u'
        else if ch = 'У' then
          table := table + 'U'
        else if ch = 'ф' then
          table := table + 'f'
        else if ch = 'Ф' then
          table := table + 'F'
        else if ch = 'х' then
          table := table + 'h'
        else if ch = 'Х' then
          table := table + 'H'
        else if ch = 'ц' then
          table := table + 'c'
        else if ch = 'Ц' then
          table := table + 'C'
        else if ch = 'ч' then
          table := table + 'ch'
        else if ch = 'Ч' then
          table := table + 'CH'
        else if ch = 'ш' then
          table := table + 'sh'
        else if ch = 'Ш' then
          table := table + 'SH'
        else if ch = 'щ' then
          table := table + 'sc'
        else if ch = 'Щ' then
          table := table + 'SC'
        else if (ch = 'ъ') or (ch = 'Ъ') then
          table := table + ''
        else if ch = 'ы' then
          table := table + 'y'
        else if ch = 'Ы' then
          table := table + 'Y'
        else if (ch = 'ь') or (ch = 'Ь') then
          table := table + ''
        else if ch = 'э' then
          table := table + 'e'
        else if ch = 'Э' then
          table := table + 'E'
        else if ch = 'ю' then
          table := table + 'iu'
        else if ch = 'Ю' then
          table := table + 'IU'
        else if ch = 'я' then
          table := table + 'ia'
        else if ch = 'Я' then
          table := table + 'IA'
        else
          table := table + ch;
        end;
      if (wCode = '') then wCode := defaultWaiter;
      if ((wCode <> '') AND (orgId <> '')) then 
      begin 
          sQR := 'https://tips.delivery-club.ru/pay/' + wCode + '?org='+ orgId + '&src=3&orderSum=' + sum + '&orderId=' + orderId + '&table=' + table;
          Memo7.text  :=  Char(#10)
                       + '<H2><W2>       Безналичные чаевые' + Char(#10)
                       + '<H1><W1>                   Чтобы оставить чаевые,' + Char(#10)  
                       + '                 наведите камеру на QR-код' + Char(#10)                 
                       + '                     <QRCode ' + sQR + '>' + Char(#10)  
                       + '                  Delivery Club Чаевые'  + Char(#10)  
       end;
    end
    CODE

    Ниже пример вставки скрипта.

    Номер мемо в скрипте (Memo10) совпадает с номером редактируемого Memo, это обязательное условие для корректной работы скрипта.


  14. Сохраните макет, нажав ОК
  15. Снова откройте текущую схему печати, название которой вы посмотрели ранее в использование схем печати. Выберите текущий макет чека, посмотрите какой Класс осн. принтера выбран, стоит ли галочка Паковать перед печатью, запомните это.
  16. Добавьте созданный ранее макет Чека DCTips: нажмите на свободном месте правой кнопкой мыши > выберите Добавить представление документа
  17. Выберете раздел Расчёт с покупателем, подраздел Чек и нажмите дважды на макет Чек DCTips
  18. В поле Класс осн. принтера выберете тот класс осн. принтера, и то состояние галочки Паковать перед печатью, которые вы запомнили ранее из старого макета.
  19. Удалите старый макет чека из схемы печати — нажмите по нему правой кнопкой мыши и выберите Удалить
  20. Перейдите в настройки оборудования Сервис > Станции и Устройства и задайте в настройках всех принтеров, которые печатают чеки размер QR-кода:
  21. Для каждой кассовой станции необходимо узнать какой принтер используется для печати чеков.
  22. Для этого выберете станцию, на  вкладке Свойства, в разделе Назначения принтеров узнайте какой принтер используется: Для чеков, или другого класса, если в схеме печати как Класс осн. принтера указан иной класс
  23. Во вкладке Принтеры найдите этот принтер и посмотреть какой модуль он использует.
  24. Во вкладке Устройства найдите этот модуль и пропишите следующие значения:

    • Для термопринтеров (модуль EPSON):

      QRCodeXYSize = 200 QRCodeIndent = 135
      CODE
    • Для фискальных регистраторов (модуль Universal driver for fiscal printers) большинства типов:

      BarcodeHeight = 200
      CODE
    • Для фискальных регистраторов (модуль Universal driver for fiscal printers) типа 169 FR Atol DTO10:

      BarcodeHeight = 100
      CODE
    • Для фискальных регистраторов (модуль Universal driver for fiscal printers) типа 182 FR Custom:

      BarcodeHeight = 50
      CODE


Как проверить чекLink to Как проверить чек

  1. Под учетной записью официанта, DCTips ID которого уже внесено в менеджерскую станцию, создайте заказ и распечатайте Чек.
  2. На принтере распечатается Чек с QR кодом.