Клиент Сервера ККМ. Использование дополнительных методов и свойств расширения RbsoftExtension

1. Начало работы

Клиентская часть представляет собой несколько внешних компонент для 1с, реализованных по технологии COM. COM объекты реализуют интерфейсы ФР, ККТ, ККТ с передачей данных в ОФД, согласно требований к разработке драйверов подключаемого оборудования, Расширения от РБ-Софт. В документе описаны методы и свойства РБ-Софт. Все методы доступны при подключении внешних компонент как ФР и ККТ (Addin.RBsoftPrintServiceV3, Addin.RBsoftPrintServiceKKTV3)

2. Подключение внешней компоненты

Пример функции подключения внешней компоненты:

Функция ПолучитьОбъектДрайвера (progIdКомпонентыКлиенскойЧастиСервераККМ,АдресСервераККМ,ПортСервераККМ,ИмяУстройстваНаСервереККМ)Функция ПолучитьОбъектДрайвера

ПодключитьВнешнююКомпоненту(progIdКомпонентыКлиенскойЧастиСервераККМ);

ОбъектДрайвера = Новый (progIdКомпонентыКлиенскойЧастиСервераККМ);

ОбъектДрайвера.Адрес = АдресСервераККМ;

ОбъектДрайвера.Порт = ПортСервераККМ;

ОбъектДрайвера.ИдентификаторУстройства=ИмяУстройстваНаСервереККМ;

Результат = ОбъектДрайвера.Инициализация();

Если Не Результат Тогда

ПолучитьОписаниеОшибки(ОбъектДрайвера);

Возврат Неопределено;

КонецЕсли;

Возврат ОбъектДрайвера;

КонецФункции

3. Открыть смену

3.1 Методы

3.1.1 ОткрытьСмену105

bool ОткрытьСмену105(string ИмяУстройства, string Кассир, string ИННКассира, out int НомерДокумента, out int НомерСессии)

Метод открывает смену. В качестве параметров задаются: ИмяУстройства (Имя ККМ, указанное в Сервер ККМ.), Кассир (ФИО кассира). ИннКассира (ИНН кассира), НомерСессии (Возвращаемый параметр. Возвращает номер открытой смены), НомерДокумента (Возвращаемый параметр. Номер фискального документа).

Имя метода Параметры Возвращаемое значение
Тип Описание Тип Описание
Открыть string Имя ККМ, указанное в Сервер ККМ) bool true – успешно, false – завершен с ошбкой
Смену105 string ФИО кассира bool true – успешно, false – завершен с ошбкой
string ИНН кассира bool true – успешно, false – завершен с ошбкой
out int возвращаемый параметр, возвращает номер открытой смены bool true – успешно, false – завершен с ошбкой
out int возвращаемый параметр, номер фискального документа bool true – успешно, false – завершен с ошбкой

Пример использования:

Процедура ОткрытьСмену()Функция ПолучитьОбъектДрайвера

ОчиститьСообщения();

НомерДокумента = 0;

НомерСессии = 0;

Кассир ="Иванов И.И.";

ИННКассира="";

ИмяУстройства ="Atol";

Результат = ГлОбъектДрайвера.ОткрытьСмену105(ИмяУстройства, Кассир, ИннКассира, НомерДокумента, НомерСессии);

Если Не Результат Тогда

ПолучитьОписаниеОшибки(ГлОбъектДрайвера);

Возврат;

КонецЕсли;

Сообщить("Номер документа "+НомерДокумента + " Номер смены "+ НомерСессии);

КонецПроцедуры

Процедура ПолучитьОписаниеОшибки(ОбъектДрайвера)Функция ПолучитьОбъектДрайвера

КодОшибки = 0;

ОписаниеОшибки = "";

КодОшибки=ОбъектДрайвера.ПолучитьОшибку(ОписаниеОшибки);

СообщениеОшибки = "Код = "+КодОшибки+", описание "+ ОписаниеОшибки;

Сообщить(СообщениеОшибки );

КонецПроцедуры

4. Закрыть смену.

Закрыть смену можно двумя способами, используя метод НапечататьОтчетСГашением и метод РаспечататьОтчет.

4.1 Методы

4.1.1 НапечататьОтчетСГашением

bool НапечататьОтчетБезГашения(string ИмяУстройства)

Метода закрывает смену. В качестве параметров задается: ИмяУстройства (Имя ККМ, указанное в Сервер ККМ).

Имя метода Параметры Возвращаемое значение
Тип Описание Тип Описание
НапечататьОтчетБезГашения string Имя ККМ, указанное в Сервер ККМ bool true – успешно, false – завершен с ошбкой
Процедура ЗакрытьСмену()Процедура ЗакрытьСмену

ОчиститьСообщения();

ИмяУстройства ="Atol";

Результат = ГлОбъектДрайвера.НапечататьОтчетСГашением(ИмяУстройства);

Если Результат Тогда

Сообщить("Смена закрыта");

Возврат;

Иначе

ПолучитьОписаниеОшибки(ГлОбъектДрайвера);

КонецЕсли;

КонецПроцедуры

4.1.2 РаспечататьОтчет

Отчет РаспечататьОтчет(Отчет отчет)

Метода печатает отчеты. В качестве параметров задается типа отчета.

0 — Х отчет,

1 — Z отчет,

2 — отчет по кассирам,

3 — отчет по секциям,

42 — отчет о текущем состоянии расчетов

Имя метода Параметры Возвращаемое значение
Тип Описание Тип Описание
РапечататьОтчет Отчет ЗадаетсяТипОтчета Отчет true – успешно

Описание типа Отчет

Имя Тип Описание
Терминал string Задает или получает имя компьютера на котором сформирован документ
Идентификатор string Задает или получает идентификатор документа в формате GUID
ИмяКассы string Задает или получает имя устройства как на Сервере ККМ
КодОшибки int Получает код ошибки печати
ОписаниеОшибки string Получает описание ошибки печати
Кассир string ФИО кассира
ИннКассира string ИНН кассира
ВерсияКлиента string Версия клиента (Внешней компоненты)
ТипОтчета int 0 - Х отчет, 1 - Z отчет, 2 - отчет по кассирам, 3 - отчет по секциям, 42 - отчет о текущем состоянии расчетов
НомерЧека int Получает номер фискального документа после печат
НомерСмены int Получает номер смены после печати
ФискальныйПризнак string Получает фискальный признак после печати
Процедура ЗакрытьСмену()Процедура ЗакрытьСмену

ОчиститьСообщения();

отчет = ГлОбъектДрайвера.СоздатьОтчет();

отчет.Кассир = Кассир;

отчет.ИннКассира = ИннКассира;

отчет.ИмяКассы = "Atol";

отчет.ТипОтчета = 1;

Результат = ГлОбъектДрайвера.РаспечататьОтчет(отчет);

Если Результат.КодОшибки <>0 ТОгда

Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки);

Возврат;

КонецЕсли ;Процедура ЗакрытьСмену

Сообщить("Чек номер = "+ Результат.НомерЧека);

Сообщить("Чек смены = "+ Результат.НомерСмены);

Сообщить("Фискальный признак = "+Результат.ФискальныйПризнак );

КонецПроцедуры

5. X-Отчет

Печать отчета без гашения. Печать производится методом РаспечататьОтчет.

6. Печать Чека

Печать Чека. Для печати чека необходимо создать объект чек (метод СоздатьЧек()), инициализировать его свойства данными и отправить на печать(Метод РаспечататьЧек).

Описание типа Чек.

Имя Тип Описание
Терминал string Задает или получает имя компьютера на котором сформирован документ
Идентификатор string Задает или получает идентификатор документа в формате GUID
ИмяКассы string Задает или получает имя устройства как на Сервере ККМ
НомерЧека int Получает номер фискального документа после печат
НомерСмены int Получает номер смены после печати
КодОшибки int Получает код ошибки печати
ОписаниеОшибки string Получает описание ошибки печати
ФискальныйПризнак string Получает фискальный признак после печати
Кассир string ФИО кассира
ИннКассира string ИНН кассира
ВерсияКлиента string Версия клиента(Внешней компаненты)
ТипЧека int Получает или задает тип чека. ОтменаЧека = 0, Продажа = 1, Возврат = 2, Аннулирование = 3, Покупка = 4, ВозвратПокупки = 5, АннулированиеПокупки = 6, ЧекКоррекцииПрихода = 7, ЧекКоррекцииВозвратаПрихода = 8, ЧекКоррекцииРасхода = 9, ЧекКоррекцииВозвратаРасхода = 10, ВСчетСотрудника = 11,Any = 100
Покупатель string Покупатель (клиент) - наименование организации или фамилия, имя, отчество (при наличии), серия и номер паспорта покупателя (клиента).
ИННПокупателя string ИНН организации или покупателя (клиента)
ПарольКассира string Задает пароль кассира
Фискальный bool Фискальный документ или нет
Электронный bool True – Чек электронный, false – нет.
Электронный77 int 1 – Чек электронный, 0 - нет
ТипНалогообложения int 0 - Общая 1 - Упрощенная Доход 2 - Упрощенная Доход минус Расход 3 - Единый налог на вмененный доход 4 - Единый сельскохозяйственный налог 5 - Патентная система налогообложения
Контакт string Задает телефон или email покупателя
ПризнакАгента int 0-Банковский платежный агент 1-Банковский платежный субагент 2-Платежный агент 3-Платежный субагент 4-Поверенный 5-Комиссионер 6-Агент
Позиция Позиция Фискальная позиция. Перед обращением необходимо использовать метод СоздатьПозицию() или СоздатьПозицию77()
Агент Агент Данные агента
Поставщик Поставщик Данные поставщика

Описание типа Позиция.

Имя Тип Описание
Наименование string Наименование позиции
Фискальная bool true – позиция фискальная, false – не фискальная позиция
Фискальная77 int 1 – позиция фискальная, 0 – не фискальная позиция
Количество int Количество товара
Цена double Цена
Сумма double Сумма
Отдел int Отдел,по которому ведется продажа
НДС int -1 – БЕЗ НДС, 0 – НДС 0, 10 – НДС 10, 18 – НДС 18, 20 – НДС 20, 110 – НДС 10/110 118 –НДС 18/118
ПризнакСпособаРасчета int Признак способа расчета 0 - Не применяется, 1 - Предоплата полная, 2 – Предоплата частичная, 3 - Аванс, 4 – Полный расчет, 5 – частичный расчет и кредит, 6 – Передача в кредит 7 – Оплата кредита,
ПризнакПредметаРасчета int Признаки предмета расчета 0 – Не применяется. 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 – Платеж Казино
Страна string Цифровой код страны происхождения товара в соответствии с Общероссийским классификатором стран мира
ТДекларация string Регистрационный номер таможенной декларации
СуммаАкциза double Сумма акциза с учетом копеек, включенная в стоимость предмета расчета
КодМаркировки string Код контрольной марки.Кодируется текстом в кодировке Base64
ГТИН string Глобальный идентификатор торговой единицы (GTIN)
СерийныйНомер string Серийный номер
ПризнакАгента int Признак агента по позиции
Агент Агент Данные агента
Поставщик Поставщик Данные поставщика

Описание типа Агент.

Имя Тип Описание
ОперацияПлатежногоАгента string Операция платежного агента
ТелефонПлатежногоАгента string Телефон платежного агента
ТелефонОператораПоПриемуПлатежей string Телефон оператора по приему платежа
ОператорПервода string Наименование оператора по переводу
АдресОператораПеревода string Адрес оператора по переводу
ИННОператораПеревода string ИНН оператора перевода

Описание типа Поставщик

Имя Тип Описание
ТелефонПоставщика string Телефон поставщика
НаименованиеПоставщика string Наименование поставщика
ИННПоставщика string ИНН поставщика

6.1 Методы

6.1.1 СоздатьЧек

Чек СоздатьЧек()

Метод создает и возвращает объект Чек.

Имя метода Возвращаемое значение
Тип Описание
СоздатьЧек Чек Объект типа Чек

6.1.2 РаспечататьЧек

Чек РаспечататьЧек()

Метод создает и возвращает объект Чек.

Имя метода Возвращаемое значение
Тип Описание
РаспечататьЧек Чек Объект типа Чек

6.1.3 Чек.ДобавитьВНачало

void ДобавитьВНачало(string Текст)

Метод добавляет строку текста перед фискальными позициями в первую позицию.

Имя метода параметры Возвращаемое значение
Тип Описание Тип Описание
ДобавитьВНачало Текст string Текст

6.1.4 Чек.ДобавитьПередЧеком

void ДобавитьПередЧеком(string Текст)

Метод добавляет строку текста перед фискальными позициями чека.

Имя метода параметры
Имя Тип Описание
ДобавитьПередЧеком Текст string Текст

6.1.5 Чек.ДобавитьПозицию

(Устаревший)

void ДобавитьПозицию(string Наименование, double Цена, double Количество, double Скидка, int Отдел, double НДС).

Метод добавляет фискальную позицию в чек.

Имя метода параметры
Тип Описание
ДобавитьПозицию string Наименование позиции
double Цена
double Количество
double Скидка
int Отдел
double НДС

6.1.6 Чек.ДобавитьПозицию105

void ДобавитьПозицию105(string Наименование, double Цена, double Количество, double Скидка, int Отдел, double НДС, int ПризнакСпособаРасчета, int ПризнакПредметаРасчета)

Метод добавляет фискальную позицию в чек ФФД 1.0.5

Имя метода параметры
Тип Описание
ДобавитьПозицию105 string Наименование позиции
double Цена
double Количество
double Скидка
int Отдел
double НДС
int Признак способа расчета
int Признак предмета расчета

6.1.7 Чек.ДобавитьПозицию110

void ДобавитьПозицию110(string Наименование, double Цена, double Количество, double Скидка, int Отдел, double НДС, int ПризнакСпособаРасчета, int ПризнакПредметаРасчета, string ЦифровойКодСтраны, string НомерДекларации, decimal СуммаАкциза)

Метод добавляет фискальную позицию с учетом Акциза, цифрового кода страны и таможенной декларации.

Имя метода параметры
Тип Описание
ДобавитьПозицию110 string Наименование позиции
double Цена
double Количество
double Скидка
int Отдел
double НДС
int Признак способа расчета
int Признак предмета расчета
string Цифровой код страны
string Номер декларации
decimal Сумма акциза

6.1.8 Чек.ДобавитьВЧекАгента

void ДобавитьВЧекАгента (int ПризнакАгента, string Операция,

string ТелефонПлатежногоАгента, string ТелефонОператораПоПриему,string ТелефонОператораПеревода, string НаименованиеОператораПеревода, string АдресОператораПеревода, string ИННОператораПеревода)

Метод добавляет данные агента по чеку.

Имя метода параметры
Тип Описание
ДобавитьВЧекАгента int Признак агента.
string Операция
string Телефон платежного агента
string Телефон оператора по приему
string Телефон оператора перевода
string Наименование оператора перевода
string Адрес оператора перевода
string ИНН оператора перевода

6.1.9 Чек.ДобавитьВПозициюАгента

void ДобавитьВПозициюАгента(int ПризнакАгента, string Операция, string ТелефонПлатежногоАгента, string ТелефонОператораПоПриему,string ТелефонОператораПеревода, string НаименованиеОператораПеревода, string АдресОператораПеревода, string ИННОператораПеревода)

Метод добавляет данные агента в последнюю позицию.

Имя метода параметры
Тип Описание
ДобавитьВПозициюАгента int Признак агента.
string Операция
string Телефон платежного агента
string Телефон оператора по приему
string Телефон оператора перевода
string Наименование оператора перевода
string Адрес оператора перевода
string ИНН оператора перевода

6.1.10 Чек.ДобавитьВЧекПоставщика

void ДобавитьВЧекПоставщика(string ТелефонПоставщика, string НаименованиеПоставщика, string ИННПоставщика)

Метод добавляет данные поставщика по чеку.

Имя метода параметры
Тип Описание
ДобавитьВЧекПоставщика string Телефон поставщика
string Наименование поставщика
string ИНН поставщика

6.1.11 Чек.ДобавитьВПозициюПоставщика

void ДобавитьВПозициюПоставщика (string ТелефонПоставщика, string НаименованиеПоставщика, string ИННПоставщика)

Метод добавляет данные поставщика в последнюю позицию.

Имя метода параметры
Тип Описание
ДобавитьВПозициюПоставщика string Телефон поставщика
string Наименование поставщика
string ИНН поставщика

6.1.12 Чек.ДобавитьКодТоварнойНоменклатуры

void ДобавитьКодТоварнойНоменклатуры(string ТипМаркировки, string КиЗ, string GTIN, string СерийныйНомер, string КодМаркировки = null)

Метод добавляет данные по товарной маркировке.

Имя метода параметры
Тип Описание
ДобавитьКодТоварнойНоменклатуры string ТипМаркировки
string КиЗ
string GTIN
string СерийныйНомер
string КодМаркировки

6.1.13 Чек.ДобавитьНеФискальнуюПозицию

void ДобавитьНеФискальнуюПозицию (string Текст)

Метод добавляет данные по товарной маркировке.

Имя метода параметры
Тип Описание
ДобавитьНеФискальнуюПозицию string Текст нефискальной позиции

6.1.14 Чек.ДобавитьОплатуНаличными

void ДобавитьОплатуНаличными(double Сумма, double Скидка = 0)

Метод добавляет оплату наличными.

Имя метода параметры
Тип Описание
ДобавитьОплатуНаличными double Сумма
double Скидка(если не передается - по умолчанию 0)

6.1.15 Чек.ДобавитьОплатуКартой

void ДобавитьОплатуКартой(double Сумма, double Скидка = 0)

Метод добавляет оплату безналичными.

Имя метода параметры
Тип Описание
ДобавитьОплатуКартой double Сумма
double Скидка(если не передается - по умолчанию 0)

6.1.16 Чек.ДобавитьОплатуКредит

void ДобавитьОплатуКредит (double Сумма, double Скидка = 0)

Метод добавляет оплату в кредит.

Имя метода параметры
Тип Описание
ДобавитьОплатуКредит double Сумма
double Скидка(если не передается - по умолчанию 0)

6.1.17 Чек.ДобавитьОплатуПредоплатой

void ДобавитьОплатуПредоплатой(double Сумма, double Скидка = 0)

Метод добавляет оплату предплатой.

Имя метода параметры
Тип Описание
ДобавитьОплатуПредоплатой double Сумма
double Скидка(если не передается - по умолчанию 0)

6.1.18 Чек.ДобавитьОплатуПредставлением

void ДобавитьОплатуПредставлением(double Сумма, double Скидка = 0)

Метод добавляет оплату по представлению.

Имя метода параметры
Тип Описание
ДобавитьОплатуПредставлением double Сумма
double Скидка(если не передается - по умолчанию 0)

6.1.19 Чек.СоздатьПозицию

bool СоздатьПозицию()

Метод создает позицию.

Имя метода Возвращаемое значение
Тип Описание
СоздатьПозицию bool true – позиция создана

6.1.20 Чек.СоздатьПозицию77

bool СоздатьПозицию77()

Метод создает позицию.

Имя метода Возвращаемое значение
Тип Описание
СоздатьПозицию77 int 1–позиция создана

6.1.21 Чек.ДобавитьПозициюВЧек

bool ДобавитьПозициюВЧек()

Метод добавляет созданную и заполненную данными позицию в чек.

Имя метода Возвращаемое значение
Тип Описание
СоздатьПозициюВЧек bool true – позиция добавлена в чек

6.1.22 Чек.ДобавитьПозициюВЧек77

bool ДобавитьПозициюВЧек77()

Метод добавляет созданную и заполненную данными позицию в чек.

Имя метода Возвращаемое значение
Тип Описание
СоздатьПозицию77 int 1–позиция добавлена в чек

6.2 Примеры использования

6.2.1 Пример 1. Простой чек. Добавление инициализация позиции через метод.

Процедура СформироватьЧек(Команда)Процедура СформироватьЧек

ОчиститьСообщения();

Чек = ГлОбъектДрайвера.СоздатьЧек();

// Касса по умолчанию используется заданная при инициализации объекта драйвераПроцедура СформироватьЧек

// Чтобы другую кассу отличную от Процедура СформироватьЧек

// Чек.ИмяКассы = "Atol";Процедура СформироватьЧек

Чек.ИмяКассы = "Атол";

Чек.Кассир = Кассир;

Чек.ИннКассира = ИннКассира;

Фискальный = Истина;

Чек.Фискальный = Фискальный;

// 1 - приход, Процедура СформироватьЧек

// 2 - возврат прихода, Процедура СформироватьЧек

// 4 - расход, Процедура СформироватьЧек

// 5 - возврат расхода Процедура СформироватьЧек

Чек.ТипЧека = 1;

// 0 - Общая Процедура СформироватьЧек

// 1 - Упрощенная Доход Процедура СформироватьЧек

// 2 - Упрощенная Доход минус Расход Процедура СформироватьЧек

// 3 - Единый налог на вмененный доход Процедура СформироватьЧек

// 4 - Единый сельскохозяйственный налог Процедура СформироватьЧек

// 5 - Патентная система налогообложения Процедура СформироватьЧек

// 999 - использовать настройки устройства Процедура СформироватьЧек

Чек.ТипНалогообложения = 0;

Чек.Электронный = Ложь;

//Задает телефон или email покупателя Процедура СформироватьЧек

Чек.Контакт = "";

//Задает номер отдела Процедура СформироватьЧек

Чек.Департамент =1;

// ДобавитьПозицию105(Процедура СформироватьЧек

Чек.ДобавитьПозицию105(Процедура СформироватьЧек

"Спички", // string Наименование,Процедура СформироватьЧек

0.60 , // double Цена,Процедура СформироватьЧек

2, // double Количество,Процедура СформироватьЧек

0.20, //double Скидка,Процедура СформироватьЧек

1, //int Отдел,Процедура СформироватьЧек

10, //double НДС, Процедура СформироватьЧек

2, //int ПризнакСпособаРасчета,Процедура СформироватьЧек

1); // int ПризнакПредметаРасчетаПроцедура СформироватьЧек

Чек.ДобавитьОплатуНаличными(0.10);

Чек.ДобавитьОплатуКартой(0.20);

Чек.ДобавитьОплатуПредставлением1(0.70);

Результат = ГлОбъектДрайвера.РаспечататьЧек(Чек);

Если Результат.КодОшибки <>0 ТОгда

Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки);

Возврат

КонецЕсли ;Процедура СформироватьЧек

Сообщить("Успех");

Если Фискальный Тогда

Сообщить("Чек номер = "+ Результат.НомерЧека);

Сообщить("Чек смены = "+ Результат.НомерСмены);

Сообщить("Фискальный признак = "+ Результат.ФискальныйПризнак );

КонецЕсли ;Процедура СформироватьЧек

КонецПроцедуры

6.2.2 Пример 2. Простой чек. Инициализация позиции через обращение к свойствам

Процедура СформироватьЧек(Команда)Процедура СформироватьЧек

ОчиститьСообщения();

Чек = ГлОбъектДрайвера.СоздатьЧек();

Чек.ИмяКассы = "Атол";

Чек.Кассир = Кассир;

Чек.ИннКассира = ИннКассира;

Фискальный = Истина;

Чек.Фискальный = Фискальный;

Чек.ТипЧека = 1

Чек.ТипНалогообложения = 0;

Чек.Электронный = Ложь;

Чек.Контакт = "";

Чек.Департамент =1;

Чек.СоздатьПозицию();

Чек.Позиция.Фискальная = true;

Чек.Позиция.Наименование = "Спички";

Чек.Позиция.Цена =0.50;

Чек.Позиция.Количество = 2;

Чек.Позиция.Отдел = 1;

Чек.Позиция.НДС=10;

Чек.Позиция.ПризнакСпособаРасчета = 2;

Чек.Позиция.ПризнакПредметаРасчета = 1;

Чек.Позиция.Сумма = 1;

Чек.ДобавитьПозициюВЧек();

Чек.ДобавитьОплатуНаличными(0.10);

Чек.ДобавитьОплатуКартой(0.90);

Результат = ГлОбъектДрайвера.РаспечататьЧек(Чек);

Если Результат.КодОшибки <>0 ТОгда

Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки);

Возврат

КонецЕсли ;

Сообщить("Успех");

Если Фискальный Тогда

Сообщить("Чек номер = "+ Результат.НомерЧека);

Сообщить("Чек смены = "+ Результат.НомерСмены);

Сообщить("Фискальный признак = "+ Результат.ФискальныйПризнак );

КонецЕсли\

КонецПроцедуры

6.2.3 Пример 3. Печать чека с акцизом, номером ТД

Процедура СформироватьЧек(Команда)Процедура СформироватьЧек

ОчиститьСообщения();

Чек = ГлОбъектДрайвера.СоздатьЧек();

Чек.Кассир = Кассир;

Чек.ИннКассира = ИннКассира;

Фискальный = Истина;

Чек.Фискальный = Фискальный;

Чек.Покупатель = "ООО ТрейдКом";

Чек.ИННПокупателя = "0326031413";

Чек.ТипЧека = 1;

Чек.ТипНалогообложения = 0;

Чек.Электронный = Ложь;

Чек.Контакт = "";

Чек.Департамент =1;

Чек.СоздатьПозицию(); // созадние пустой позицииПроцедура СформироватьЧек

Чек.Позиция.Фискальная = true;

Чек.Позиция.Наименование = "Спички";

Чек.Позиция.Цена =0.50;

Чек.Позиция.Количество = 2;

Чек.Позиция.Отдел = 1;

Чек.Позиция.НДС=10;

Чек.Позиция.ПризнакСпособаРасчета = 2;

Чек.Позиция.ПризнакПредметаРасчета = 1;

Чек.Позиция.Сумма = 1;

Чек.Позиция.СуммаАкциза =0.5;

Чек.Позиция.ТДекларация="10225040/250511/1022504" ;Процедура СформироватьЧек

Чек.ДобавитьПозициюВЧек();// созадние позиции в чекПроцедура СформироватьЧек

Чек.ДобавитьОплатуНаличными(0.10);

Чек.ДобавитьОплатуКартой(0.90);

Результат = ГлОбъектДрайвера.РаспечататьЧек(Чек);

Если Результат.КодОшибки <>0 ТОгда

Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки);

Возврат

КонецЕсли ;Процедура СформироватьЧек

Сообщить("Успех");

Если Фискальный Тогда

Сообщить("Чек номер = "+ Результат.НомерЧека);

Сообщить("Чек смены = "+ Результат.НомерСмены);

Сообщить("Фискальный признак = "+ Результат.ФискальныйПризнак );

КонецЕсли

КонецПроцедуры

6.2.4 Пример 4. Печать чека с маркировкой. Пример указания маркировки товара через ГТИН и Серийный номер и через указание кода маркировки в формате base64 (требования 1с 3.x.)

Процедура СформироватьЧек(Команда)Процедура СформироватьЧек

ОчиститьСообщения();

Чек = ГлОбъектДрайвера.СоздатьЧек();

Чек.Кассир = Кассир;

Чек.ИннКассира = ИннКассира;

Фискальный = Истина;

Чек.Фискальный = Фискальный;

Чек.Покупатель = "ООО ТрейдКом";

Чек.ИННПокупателя = "0326031413";

Чек.ТипЧека = 1;

Чек.ТипНалогообложения = 0;

Чек.Электронный = Ложь;

Чек.Контакт = "";

Чек.Департамент =1;

Чек.СоздатьПозицию();

Чек.Позиция.Фискальная = true;

Чек.Позиция.Наименование = "Спички";

Чек.Позиция.Цена =0.50;

Чек.Позиция.Количество = 2;

Чек.Позиция.Отдел = 1;

Чек.Позиция.НДС=10;

Чек.Позиция.ПризнакСпособаРасчета = 2;

Чек.Позиция.ПризнакПредметаРасчета = 1;

Чек.Позиция.Сумма = 1;

Чек.Позиция.СуммаАкциза =0.5;

Чек.Позиция.ТДекларация="10225040/250511/1022504" ;Процедура СформироватьЧек

Чек.ДобавитьПозициюВЧек();

Чек.СоздатьПозицию();

Чек.Позиция.Фискальная = true;

Чек.Позиция.Наименование = "Туфли женские";

Чек.Позиция.Цена =100;

Чек.Позиция.Количество = 1;

Чек.Позиция.Отдел = 1;

Чек.Позиция.НДС=20;

Чек.Позиция.ПризнакСпособаРасчета = 2;

Чек.Позиция.ПризнакПредметаРасчета = 1;

Чек.Позиция.КодМаркировки = "RE0CozWXrhdwcmNmRj9wZGxsakYw";//КМ в формате base64Процедура СформироватьЧек

Чек.Позиция.Сумма = 100;

Чек.ДобавитьПозициюВЧек();

Чек.СоздатьПозицию();

Чек.Позиция.Фискальная = true;

Чек.Позиция.Наименование = "Туфли мужские";

Чек.Позиция.Цена =200;

Чек.Позиция.Количество = 1;

Чек.Позиция.Отдел = 1;

Чек.Позиция.НДС=10;

Чек.Позиция.ПризнакСпособаРасчета = 2;

Чек.Позиция.ПризнакПредметаРасчета = 1;

Чек.Позиция.Сумма = 200;

Чек.Позиция.ГТИН = "02900002057751"; // указание КМ через ГИНПроцедура СформироватьЧек

Чек.Позиция.СерийныйНомер = "prcfF?pdlljF2"; // и серийный номерПроцедура СформироватьЧек

Чек.ДобавитьПозициюВЧек() ;Процедура СформироватьЧек

Чек.ДобавитьОплатуНаличными(300.10);

Чек.ДобавитьОплатуКартой(0.90);

Результат = ГлОбъектДрайвера.РаспечататьЧек(Чек);

Если Результат.КодОшибки <>0 ТОгда

Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки);

Возврат

КонецЕсли ;Процедура СформироватьЧек

Сообщить("Успех");

Если Фискальный Тогда

Сообщить("Чек номер = "+ Результат.НомерЧека);

Сообщить("Чек смены = "+ Результат.НомерСмены);

Сообщить("Фискальный признак = "+ Результат.ФискальныйПризнак );

КонецЕсли

КонецПроцедуры

6.2.5 Пример 5. Печать чека с данными агента и поставщика по чеку

Процедура ЧекСДаннымиАгентаПоставщика(Команда)Процедура СформироватьЧек

ОчиститьСообщения();

Чек = ГлОбъектДрайвера.СоздатьЧек();

Чек.Кассир = Кассир;

Чек.ИннКассира = ИннКассира;

Фискальный = Истина;

Чек.Фискальный = Фискальный;

Чек.Покупатель = "ООО ТрейдКом";

Чек.ИННПокупателя = "0326031413";

Чек.ПризнакАгента = "1";

Чек.Агент.ОперацияПлатежногоАгента = "ООО МСТ";

Чек.Агент.ТелефонПлатежногоАгента = "+79010000000";

Чек.Агент.ТелефонОператораПоПриемуПлатежей = "+79020000000";

Чек.Агент.ОператорПервода = "Банк";

Чек.Агент.АдресОператораПеревода = "адрес";

Чек.Агент.ИННОператораПеревода = "7140269847";

Чек.Поставщик.ТелефонПоставщика = "+79000000000";

Чек.Поставщик.НаименованиеПоставщика ="Платежи";

Чек.Поставщик.ИННПоставщика = "0413055019";

Чек.ТипЧека = 1;

Чек.ТипНалогообложения = 0;

Чек.Электронный = Ложь;

Чек.Контакт = "";

Чек.Департамент =1;

Чек.СоздатьПозицию();

Чек.Позиция.Фискальная = true;

Чек.Позиция.Наименование = "Спички";

Чек.Позиция.Цена =0.50;

Чек.Позиция.Количество = 2;

Чек.Позиция.Отдел = 1;

Чек.Позиция.НДС=10;

Чек.Позиция.ПризнакСпособаРасчета = 2;

Чек.Позиция.ПризнакПредметаРасчета = 1;

Чек.Позиция.Сумма = 1;

Чек.Позиция.СуммаАкциза =0.5;

Чек.Позиция.ТДекларация="10225040/250511/1022504" ;Процедура СформироватьЧек

Чек.ДобавитьПозициюВЧек();

Чек.СоздатьПозицию();

Чек.Позиция.Фискальная = true;

Чек.Позиция.Наименование = "Туфли женские";

Чек.Позиция.Цена =100;

Чек.Позиция.Количество = 1;

Чек.Позиция.Отдел = 1;

Чек.Позиция.НДС=20;

Чек.Позиция.ПризнакСпособаРасчета = 2;

Чек.Позиция.ПризнакПредметаРасчета = 1;

Чек.Позиция.КодМаркировки = "RE0CozWXrhdwcmNmRj9wZGxsakYw";

Чек.Позиция.Сумма = 100;

Чек.ДобавитьПозициюВЧек();

Чек.СоздатьПозицию();

Чек.Позиция.Фискальная = true;

Чек.Позиция.Наименование = "Туфли мужские";

Чек.Позиция.Цена =200;

Чек.Позиция.Количество = 1;

Чек.Позиция.Отдел = 1;

Чек.Позиция.НДС=10;

Чек.Позиция.ПризнакСпособаРасчета = 2;

Чек.Позиция.ПризнакПредметаРасчета = 1;

Чек.Позиция.Сумма = 200;

Чек.Позиция.ГТИН = "02900002057751";

Чек.Позиция.СерийныйНомер = "prcfF?pdlljF2";

Чек.ДобавитьПозициюВЧек() ;Процедура СформироватьЧек

Чек.ДобавитьОплатуНаличными(300.10);

Чек.ДобавитьОплатуКартой(0.90);

Результат = ГлОбъектДрайвера.РаспечататьЧек(Чек);

Если Результат.КодОшибки <>0 ТОгда

Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки);

Возврат

КонецЕсли ;Процедура СформироватьЧек

Сообщить("Успех");

Если Фискальный Тогда

Сообщить("Чек номер = "+ Результат.НомерЧека);

Сообщить("Чек смены = "+ Результат.НомерСмены);

Сообщить("Фискальный признак = "+ Результат.ФискальныйПризнак );

КонецЕсли

КонецПроцедуры

6.2.6 Пример 6. Печать чека с данными агента и поставщика по позиции

Процедура СформироватьЧек(Команда)Процедура СформироватьЧек

ОчиститьСообщения();

Чек = ГлОбъектДрайвера.СоздатьЧек();

Чек.Кассир = Кассир;

Чек.ИннКассира = ИннКассира;

Фискальный = Истина;

Чек.Фискальный = Фискальный;

Чек.Покупатель = "ООО ТрейдКом";

Чек.ИННПокупателя = "0326031413";

Чек.ТипЧека = 1

Чек.ТипНалогообложения = 0;

Чек.Электронный = Ложь;

Чек.Контакт = "";

Чек.Департамент =1;

Чек.СоздатьПозицию();

Чек.Позиция.Фискальная = true;

Чек.Позиция.Наименование = "Спички";

Чек.Позиция.Цена =0.50;

Чек.Позиция.Количество = 2;

Чек.Позиция.Отдел = 1;

Чек.Позиция.НДС=10;

Чек.Позиция.ПризнакСпособаРасчета = 2;

Чек.Позиция.ПризнакПредметаРасчета = 1;

Чек.Позиция.Сумма = 1;

Чек.Позиция.СуммаАкциза =0.5;

Чек.Позиция.ТДекларация="10225040/250511/1022504" ;Процедура СформироватьЧек

Чек.ДобавитьПозициюВЧек();

Чек.СоздатьПозицию();

Чек.Позиция.Фискальная = true;

Чек.Позиция.Наименование = "Туфли женские";

Чек.Позиция.Цена =100;

Чек.Позиция.Количество = 1;

Чек.Позиция.Отдел = 1;

Чек.Позиция.НДС=20;

Чек.Позиция.ПризнакСпособаРасчета = 2;

Чек.Позиция.ПризнакПредметаРасчета = 1;

Чек.Позиция.КодМаркировки = "RE0CozWXrhdwcmNmRj9wZGxsakYw";

Чек.Позиция.Сумма = 100;

Чек.ДобавитьПозициюВЧек();

Чек.СоздатьПозицию();

Чек.Позиция.Фискальная = true;

Чек.Позиция.Наименование = "Туфли мужские";

Чек.Позиция.Цена =200;

Чек.Позиция.Количество = 1;

Чек.Позиция.Отдел = 1;

Чек.Позиция.НДС=10;

Чек.Позиция.ПризнакСпособаРасчета = 2;

Чек.Позиция.ПризнакПредметаРасчета = 1;

Чек.Позиция.Сумма = 200;

Чек.Позиция.ГТИН = "02900002057751";

Чек.Позиция.СерийныйНомер = "prcfF?pdlljF2";

Чек.Позиция.ПризнакАгента = "1";

Чек.Позиция.Агент.ОперацияПлатежногоАгента = "ООО МСТ";

Чек.Позиция.Агент.ТелефонПлатежногоАгента = "+79010000000";

Чек.Позиция.Агент.ТелефонОператораПоПриемуПлатежей = "+79020000000";

Чек.Позиция.Агент.ОператорПервода = "Банк";

Чек.Позиция.Агент.АдресОператораПеревода = "адрес";

Чек.Позиция.Агент.ИННОператораПеревода = "7140269847";

Чек.Позиция.Поставщик.ТелефонПоставщика = "+79000000000" ;Процедура СформироватьЧек

Чек.Позиция.Поставщик.НаименованиеПоставщика ="Платежи";

Чек.Позиция.Поставщик.ИННПоставщика = "0413055019" ;Процедура СформироватьЧек

Чек.ДобавитьПозициюВЧек() ;

Чек.ДобавитьОплатуНаличными(300.10);

Чек.ДобавитьОплатуКартой(0.90);

Результат = ГлОбъектДрайвера.РаспечататьЧек(Чек);

Если Результат.КодОшибки <>0 ТОгда

Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки);

Возврат

КонецЕсли;

Сообщить("Успех");

Если Фискальный Тогда

Сообщить("Чек номер = "+ Результат.НомерЧека);

Сообщить("Чек смены = "+ Результат.НомерСмены);

Сообщить("Фискальный признак = "+ Результат.ФискальныйПризнак );

КонецЕсли

КонецПроцедуры

7. Печать Чека Коррекции

7.1 Методы

7.1.1 СоздатьЧекКоррекции

ЧекКоррекции СоздатьЧек()

Метод создает и возвращает объект ЧекКоррекции.

Имя метода Возвращаемое значение
Тип Описание
СоздатьЧекКоррекции ЧекКоррекции Объект типа ЧекКоррекции

7.1.2 РаспечататьЧекКоррекции

ЧекКоррекции РаспечататьЧекКоррекции(ЧекКоррекции чек)

Метод отправляет на печать Чек Коррекции.

Имя метода Возвращаемое значение
Тип Описание
РаспечататьЧекКоррекции ЧекКоррекции Объект типа ЧекКоррекции

Описание типа ЧекКоррекции.

Имя Тип Описание
Терминал string Задает или получает имя компьютера на котором сформирован документ
Идентификатор string Задает или получает идентификатор документа в формате GUID
ИмяКассы string Задает или получает имя устройства как на Сервере ККМ
НомерЧека int Получает номер фискального документа после печати
НомерСмены int Получает номер смены после печати
КодОшибки int Получает код ошибки печати
ОписаниеОшибки string Получает описание ошибки печати
ФискальныйПризнак string Получает фискальный признак после печати
Кассир string ФИО кассира
ИннКассира string ИНН кассира
ВерсияКлиента string Версия клиента (Внешней компоненты)
ТипЧека int Получает или задает тип чека. ЧекКоррекцииПрихода = 1, ЧекКоррекцииВозвратаПрихода = 2, ЧекКоррекцииРасхода = 3, ЧекКоррекцииВозвратаРасхода = 4
ТипКоррекции int Тип коррекции 0 – самостоятельно, 1 – по предписанию
ДатаДокументаОснованияДляКоррекции DateTime Дата описания коррекции
НомерДокументаОснованияДляКоррекции string Номер документа основания коррекции
ОписаниеКоррекции string Описание коррекции
СуммаНалога18 double Сумма налога по ставке 18%
СуммаНалога10 double Сумма налога по ставке 10%
СуммаНалога0 double Сумма налога по ставке 0%
СуммаНалогаБезНдс double Сумма налога по ставке Без НДС
СуммаНалога110 double Сумма налога по ставке 110%
СуммаНалога118 double Сумма налога по ставке 118%
СуммаНалога20 double Сумма налога по ставке 20%
СуммаНалога120 double Сумма налога по ставке 120%
ТипНалогообложения int 0 - Общая 1 - Упрощенная Доход 2 - Упрощенная Доход минус Расход 3 - Единый налог на вмененный доход 4 - Единый сельскохозяйственный налог 5 - Патентная система налогообложения

7.1.3 ДобавитьОплатуНаличными

void ДобавитьОплатуНаличными(double Сумма)

Метод устанавливает оплату наличными.

Имя метода параметры
Имя Тип Описание
ДобавитьОплатуНаличными Сумма double Устанавливаемая Сумма

7.1.4 ДобавитьОплатуКартой

void ДобавитьОплатуКартой(double Сумма)

Метод устанавливает оплату наличными.

Имя метода параметры
Имя Тип Описание
ДобавитьОплатуКартой Сумма double Устанавливаемая Сумма

7.1.5 ДобавитьОплатуКредит

void ДобавитьОплатуКредит(double Сумма)

Метод устанавливает оплату наличными.

Имя метода параметры
Имя Тип Описание
ДобавитьОплатуКредит Сумма double Устанавливаемая Сумма

7.1.6 ДобавитьОплатуПредоплатой

void ДобавитьОплатуПредоплатой (double Сумма)

Метод устанавливает оплату наличными.

Имя метода параметры
Имя Тип Описание
ДобавитьОплатуПредоплатой Сумма double Устанавливаемая Сумма

7.1.7 ДобавитьОплатуПредставлением

void ДобавитьОплатуПредставлением (double Сумма)

Метод устанавливает оплату наличными.

Имя метода параметры
Имя Тип Описание
ДобавитьОплатуПредставлением Сумма double Устанавливаемая Сумма

8. Внесение/Выемка денег

8.1 Методы

8.1.1 НапечататьЧекВнесенияВыемки

bool НапечататьЧекВнесенияВыемки (string ИДУстойства, double Сумма)

Метод печатает документ внесения или выемки.

Имя метода параметры Возвращаемое значение
Тип Описание Тип Описание
НапечататьЧекВнесенияВыемки string Идентификатор устройства bool true – напечатан успешно

9. Печать Текста

9.1 Методы

9.1.1 СоздатьТекст

ТекстовыйФайл СозатьТекст()

Метод создает нефискальный документ — текст.

Возвращаемое значение
Тип Описание
ТекстовыйФайл Данные печати

9.1.2 РаспечататьТекст

Метод печатает нефискальный документ — текст.

Имя метода параметры Возвращаемое значение
Тип Описание Тип Описание
РаспечататьТекст <a href="#ТекстовыйФайл">ТекстовыйФай</a> Данные для печати <a href="#ТекстовыйФайл">ТекстовыйФайл</a> Данные печати

9.1.3 ДобавитьСтроку

void ДобавитьСтроку(string Текст)

Метод добавляет строку для печати в нефискальном документе.

Имя метода параметры
Тип Описание
ДобавитьСтроку string Строка для печати

Описание типа ТекстовыйФайл

Имя Тип Описание
Терминал string Задает или получает имя компьютера на котором сформирован документ
Идентификатор string Задает или получает идентификатор документа в формате GUID
ИмяКассы string Задает или получает имя устройства как на Сервере ККМ
КодОшибки int Получает код ошибки печати
ОписаниеОшибки string Получает описание ошибки печати
Кассир string ФИО кассира
ИннКассира string ИНН кассира
ВерсияКлиента string Версия клиента (Внешней компоненты)

10. Получить текущее состояние

10.1 Методы

10.1.1 ПолучитьСостояниеКассы

bool ПолучитьСостояниеКассы(string ИДУстройтва, out int НомерЧека, out int НомерСмены, out int СтатусСмены)

Метод получает состояние ККМ.

Имя метода параметры Возвращаемое значение
Тип Описание Тип Описание
ПолучитьСостояниеКассы string Идентификатор устройства bool true – успешно
out int Номер чека
out int Номер смены
out int Статус смены (1-Закрыта,2-Открыта,3-Истекла)

11. Получение текущего состоянии расчетов

11.1 Методы

11.1.1 ПолучитьТекущееСостояниеРасчетов

bool ПолучитьТекущееСостояниеРасчетов(string deviceId, out int backlogDocumentsCounter, out int backlogDocumentFirstNumber, out DateTime BacklogDocumentFirstDateTime)

Метод получает текущее состояние расчетов.

Имя метода параметры Возвращаемое значение
Тип Описание Тип Описание
ПолучитьТекущееСостояниеРасчетов string Идентификатор устройства bool true – успешно
out int Количество непереданных документов
out int Номер первого непереданного документа
out DateTime Дата и время первого из непереданных документов

12. Получение ширины строки

12.1 Методы

12.1.1 ПолучитьШиринуСтроки

bool ПолучитьШиринуСтроки(string ИДУстойства, out int ШиринаСтроки)

Метод печатает ширину строки документа ККМ.

Имя метода параметры Возвращаемое значение
Тип Описание Тип Описание
ПолучитьШиринуСтроки string Идентификатор устройства bool true – успешно
out int Ширина строки в символах

13. Открытие денежного ящика

13.1 Методы

13.1.1 ОткрытьДенежныйЯщик

bool ОткрытьДенежныйЯщик(string ИДУстойства)

Метод открывает денежный ящик.

Имя метода параметры Возвращаемое значение
Тип Описание Тип Описание
ОткрытьДенежныйЯщик string Идентификатор устройства bool true – успешно

13.1.2 ОткрытьДенежныйЯщик77

int ОткрытьДенежныйЯщик77(string ИДУстойства)

Метод открывает денежный ящик.

Имя метода параметры Возвращаемое значение
Тип Описание Тип Описание
ОткрытьДенежныйЯщик string Идентификатор устройства int 1–успешно

Совпадений по запросу " "

    Совпадений по запросу "" не найдено