0 / 0 / 0
Регистрация: 11.09.2020
Сообщений: 1

Kkm Server. Печать чека товара. Как прописать в чеке товар и QR код?

11.09.2020, 12:18. Показов 1984. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Используем KKM Server API для печати чека. Как правильно подключиться к системе KKM. Ниже привели пример кода который используем, нашли его в примере API на официальном сайте KKM. При его запуске печатается аннулированный чек без товара. Так же не печатается QR код

Печать производится по нажатию на кнопку:

PHP/HTML
1
<button class="btn btn-danger" onclick="RegisterCheck(1, 1, 1);">Печать чека</button>
Вот код обработчика:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
function ExecuteSuccess(result) {
    $('#kkm-result').html(JSON.stringify(result));
}
 
// Печать чека
function RegisterCheck(NumDevice, TypeCheck, IsBarCode, Print) {
 
    // Подготовка данных команды, параметры (TypeCheck = 0, NumDevice = 0, InnKkm = "", CashierName = "")
    var Data = KkmServer.GetDataCheck(TypeCheck, NumDevice, "", "Kазакова Н.А.", "430601071197");
 
    Data.NumDevice = NumDevice;
    Data.InnKkm = "";
    Data.KktNumber = "";
 
    Data.Timeout = 30;
    // Это фискальный или не фискальный чек
    Data.IsFiscalCheck = true;
    // Тип чека;
    // 0 – продажа;                             10 – покупка;
    // 1 – возврат продажи;                     11 - возврат покупки;
    // 8 - продажа только по ЕГАИС (обычный чек ККМ не печатается)
    // 9 - возврат продажи только по ЕГАИС (обычный чек ККМ не печатается)
    Data.TypeCheck = TypeCheck;
    // Не печатать чек на бумагу
    Data.NotPrint = false; //true,
    // Количество копий документа
    Data.NumberCopies = 0;
    // Продавец, тег ОФД 1021
    Data.CashierName = "Kазакова Н.А.";
    // ИНН продавца тег ОФД 1203
    Data.CashierVATIN = "430601071197";
    Data.ClientAddress = "sochi@papa.com";
    Data.ClientInfo = "Везучий В.В. РЕ-125486";
    Data.ClientINN = "502906602876";
    Data.SenderEmail = "sochi@mama.com";
    Data.PlaceMarket = "kkmserver.ru";
    Data.TaxVariant = "";
    // Дополнительный реквизит пользователя тег ОФД 1084
    Data.UserAttribute = {
        // Наименование дополнительного реквизита пользователя тег ОД 1085
        Name: "Поле-тест",
        // Значение дополнительного реквизита пользователя тег ОФД 1086
        Value: "Тестовое значение"
    };
    // Дополнительный реквизит чека тег 1192
    Data.AdditionalAttribute = "Тест";
 
 
    Data.KPP = "782543005";
 
 
    Data.PayByProcessing = false; //В тестовом чеке автоматический эквайринг выключен
    // Номер устройства для эквайринга - Null - из настроек на сервере, 0 - любое, число - номер конкретного устройства
    Data.NumDeviceByProcessing = null; 
    // Номер чека для эквайринга
    Data.ReceiptNumber = "TEST-1";
    // Печатать Слип-чек после чека (а не в чеке)
    PrintSlipAfterCheck = false;
    // Печатать Слип-чек дополнительно для кассира (основной слип-чек уже будет печататся в составе чека)
    Data.PrintSlipForCashier = true;
    //Если это чек возврата то возможны два поля для отмены транзакции (если не указано то по эквайрингу будет не отмена а возврат оплаты)
    Data.RRNCode = ""; // RRNCode из операции эквайринга. Только для отмены оплаты! Для Оплаты или возврата оплаты не заполнять!
    Data.AuthorizationCode = ""; // AuthorizationCode из операции эквайринга. Только для отмены оплаты! Для Оплаты или возврата оплаты не заполнять!
 
    // Добавление признаков агенте и поставщика 
    Data.AddDataAgent(
        2,
        // Операция платежного агента тег 1044
        "95315",
        // Телефон платежного агента тег 1073
        "+79995554422",
        // Телефон оператора по приему платежей  тег 1074
        "+72223334455",
        // Телефон оператора перевода тег 1075
        "+74447776655",
        // Наименование оператора перевода тег 1026
        "ООО Тестовая организация",
        // Адрес оператора перевода тег 1005
        "Москва, зубовский бульвар 44",
        // ИНН оператора перевода тег 1016
        "430601071197",
        // Телефон поставщика тег 1171
        "+76662229955"
    );
   
 
    // Добавление печати текста по полям
 
    //При вставке в текст символов ">#10#<" строка при печати выровнеется по центру, где 10 - это на сколько меньше станет строка ККТ
    Data.AddTextString(">#2#<ООО "Рога и копыта"", 1);
                                 // При вставке в текст в середину строки символов "<#10#>" Левая часть строки будет выравнена по левому краю, правая по правому, где 10 - это на сколько меньше станет строка ККТ
                                 // При вставке в текст в середину строки символов "<#10#>>" Левая часть строки будет выравнена по правому краю, правая по правому, где 10 - отступ от правого клая
                                 Data.AddTextString("<<->>");
    Data.AddTextString("Пример №1:<#10#>154,41");
    Data.AddTextString("2-рое поле:<#10#>4,00");
    Data.AddTextString("<<->>");
    Data.AddTextString("Пример №2:<#8#>>4,00");
    Data.AddTextString("2-рое поле:<#8#>>1544,00");
 
 
    Data.AddTextString("<<->>");
    Data.AddTextString("Шрифт № 1", 1, 15);
    Data.AddTextString("Шрифт № 2", 2, 10);
    Data.AddTextString("Шрифт № 3", 3, 5);
    Data.AddTextString("Шрифт № 4", 4, 15);
    Data.AddTextString("<<->>");
 
    // Добавление печати фискальной строки
    var DataStr = Data.AddRegisterString(
        // НаименованиеТовара(64 символа)
        "Сапоги женские DF-3099-1",
        // Количество (3 знака после запятой)
        1,
        // ЦенаБезСкидки (2 знака после запятой)
        1,
        // СуммаСтроки (2 знака после запятой)
        0.01,
        // СтавкаНДС(0(НДС 0%), 10(НДС 10%), 20(НДС 20%), -1(НДС не облагается), 120 (НДС 20/120), 110 (НДС 10/110))
        -1,
        // Отдел
        0,
        // Код товара EAN13 - не обязательно
        "1254789547853",
        4,
        1,
        "0104300943734342212413195240818240640291ffd092MDEwNDMwMDk0MzczNDM",
        // Единица измерения предмета расчета. Можно не указывать
        "пара",
        // Цифровой код страны происхождения товара (CountryOfOrigin) в соответствии с Общероссийским классификатором стран мира 3 симв. Тег 1230
        "156",
        // Регистрационный номер таможенной декларации (CustomsDeclaration) 32 симв. Тег 1231
        "54180656/1345865/3435625/23",
        // Сумма акциза (ExciseAmount) с учетом копеек, включенная в стоимость предмета расчета Тег 1229
        0.01,
        // Дополнительный реквизит предмета расчета тег 1191, Только для ФФД 1.1 !
        "Тест-доп.реквизит"
    );
 
 
    // DataStr.EGAIS = {
    //     Barcode: "22N0000154NUCPRZ3R8381461004001003499NKAQ0ZBUVDNV62JQAR69PEV878RO93V",
    //     Ean: "3423290167937",
    //     Volume: 0.7500,
    // };
 
 
    Data.AddAgentSign(2);
    // Добавляет в последнею строку данные агента (не обязательно)
    Data.AddAgentData(
        // Операция платежного агента тег 1044
        "95315",
        // Телефон платежного агента тег 1073
        "+79995554422",
        // Телефон оператора по приему платежей  тег 1074
        "+72223334455",
        // Телефон оператора перевода тег 1075
        "+74447776655",
        // Наименование оператора перевода тег 1026
        "ООО Рога и копыта",
        // Адрес оператора перевода тег 1005
        "Москва, зубовский бульвар 44",
        // ИНН оператора перевода тег 1016
        "430601071197"
        );
        // Добавляет в последнею строку данные поставщика (не обязательно)
        Data.AddPurveyorData(
        // Телефон поставщика тег 1171
        "+76662229955",
        // Наименование поставщика ОФД 1225
        "ООО 'Гаражик в деревне'",
        // ИНН поставщика тег 1226
        "430601071197"
    );
 
    // Добавление печати штрихкода
    // Data.AddBarcodeString(ТипШтрихКода ("EAN13", "CODE39", "CODE128", "QR", "PDF417", "1254789547853"), ШтрихКод);
    Data.AddBarcodeString("EAN13", "1254789547853");
    Data.AddTextString("<<->>");
 
    Data.AddTextString("Это мега крутой товар. Продается во всех магазинах страны. Покупайте только у нас", 4, 0);
 
    // Добавление печати еще одной фискальной строки
    Data.AddRegisterString("Шаровары мужские красные: НИМБУС-2000", 1, 1, 0.01, 1, 1, "1254789547853", 1, 1);
 
    // Добавляет в последнею строку Код товарной номенклатуры
    Data.AddGoodCodeData("02", "04630037591316", "sgEdK2y5");
 
 
 
    // Наличная оплата (2 знака после запятой)
    Data.Cash = 100;
    // Сумма электронной оплаты (2 знака после запятой)
    Data.ElectronicPayment = 0.01;
    // Сумма из предоплаты (зачетом аванса) (2 знака после запятой)
    Data.AdvancePayment = 0;
    // Сумма постоплатой(в кредит) (2 знака после запятой)
    Data.Credit = 0;
    // Сумма оплаты встречным предоставлением (сертификаты, др. мат.ценности) (2 знака после запятой)
    Data.CashProvision = 0;
 
 
    //#if Relese
    // Скидываем данные об агенте - т.к.у Вас неверняка ККТ не зарегистрирована как Агент.
    Data.AgentSign = null;
    Data.AgentData = null;
    Data.PurveyorData = null;
    //#endif
    for (var i = 0; i < Data.CheckStrings.length; i++) {
        if (Data.CheckStrings[i] != undefined && Data.CheckStrings[i].Register != undefined) {
            Data.CheckStrings[i].Register.AgentSign = null;
            Data.CheckStrings[i].Register.AgentData = null;
            Data.CheckStrings[i].Register.PurveyorData = null;
        };
    };
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.09.2020, 12:18
Ответы с готовыми решениями:

Как прописать код на SQL чтоб при продажи товара автоматически списывался один товар со склада?
Как прописать код на SQL чтоб при продажи товара автоматически списывался один товар со склада?

УПП 1.3. Не выделен НДС на чеке ККТ (пробитие чека коррекции?)
Доброе утро, ребят столкнулся с проблемой: Кассир пробил чек, но не выделил в нём НДС (т.е. сумма с учётом НДС и она верная, чек верный)....

Не печатается товар в чеке
КА 1.1. Атол 55ф. На обновили ФН, перестали печататься товары в чеке и от кого принято. Тупо печатается ИТОГО и ниже инфа всякая. Второй...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.09.2020, 12:18
Помогаю со студенческими работами здесь

Не меняется товар на услугу в чеке
Как поменять в чеке товар на услуга? Используется оболочка c# для FprnM1C.dll Дто 8.16.6. Прошивка 10-7629. Устройство - атол 30ф. ...

Печать скидки в чеке ккм типовая ут 10
Всем доброго времени суток. Можно ли настроить печать скидок в чеке ккм не снимая конфигурацию с поддержки? Ут 10 последней версии. Дело...

Розница 2.1. Вывод информации о гарантии на товар при печати чека.
Доброго времени суток уважаемые форумчане. Прошу сильно не пинать слабо понимающего человека по программированию:) Суть вообщем следующая....

Печать в чеке ККМ Количество накопленных балов по дисконтной карте
Добрый день уважаемые форумчане !!! прошу помощи у гуру может кто сталкивался ... УТ 10.3; ФР - АТОЛ FPrint-03 ЕНВД; Руководство...

Ввести код товара и количество, показать название и сумму за данный товар, а также общую сумму
Нужно решить задание, но я его к сожалению не понимаю, если вы можете, то помогите с решением. Вот собственно само задание : &quot;Цикл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru