Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 11.09.2020
Сообщений: 1

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

11.09.2020, 12:18. Показов 1978. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru