Клиент Сервера ККМ. Использование дополнительных методов и свойств расширения RbsoftExtension.
Начало работы.
Клиентская часть представляет собой несколько внешних компонент для 1с, реализованных по технологии COM. COM объекты реализуют интерфейсы ФР, ККТ, ККТ с передачей данных в ОФД, согласно требований к разработке драйверов подключаемого оборудования, Расширения от РБ-Софт. В документе описаны методы и свойства РБ-Софт. Все методы доступны при подключении внешних компонент как ФР и ККТ (Addin.RBsoftPrintServiceV3, Addin.RBsoftPrintServiceKKTV3)
Подключение внешней компоненты.
Пример функции подключения внешней компоненты:
Функция ПолучитьОбъектДрайвера (progIdКомпонентыКлиенскойЧастиСервераККМ,АдресСервераККМ,ПортСервераККМ,ИмяУстройстваНаСервереККМ) ПодключитьВнешнююКомпоненту(progIdКомпонентыКлиенскойЧастиСервераККМ); ОбъектДрайвера = Новый (progIdКомпонентыКлиенскойЧастиСервераККМ); ОбъектДрайвера.Адрес = АдресСервераККМ; ОбъектДрайвера.Порт = ПортСервераККМ; ОбъектДрайвера.ИдентификаторУстройства=ИмяУстройстваНаСервереККМ; Результат = ОбъектДрайвера.Инициализация(); Если Не Результат Тогда ПолучитьОписаниеОшибки(ОбъектДрайвера); Возврат Неопределено; КонецЕсли; Возврат ОбъектДрайвера; КонецФункции
Открыть смену.
Методы
ОткрытьСмену105.
bool ОткрытьСмену105(string ИмяУстройства, string Кассир, string ИННКассира, out int НомерДокумента, out int НомерСессии)
Метод открывает смену. В качестве параметров задаются: ИмяУстройства (Имя ККМ, указанное в Сервер ККМ.), Кассир (ФИО кассира). ИннКассира (ИНН кассира), НомерСессии (Возвращаемый параметр. Возвращает номер открытой смены), НомерДокумента (Возвращаемый параметр. Номер фискального документа).
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ОткрытьСмену105 | string | Имя ККМ, указанное в Сервер ККМ) | bool | true – успешно, false – завершен с ошбкой. |
string | ФИО кассира | |||
string | ИНН кассира | |||
out int | возвращаемый параметр, возвращает номер открытой смены | |||
out int | возвращаемый параметр, номер фискального документа |
Пример использования:
Процедура ОткрытьСмену() ОчиститьСообщения(); НомерДокумента = 0; НомерСессии = 0; Кассир ="Иванов И.И."; ИННКассира=""; ИмяУстройства ="Atol"; Результат = ГлОбъектДрайвера.ОткрытьСмену105(ИмяУстройства, Кассир, ИннКассира, НомерДокумента, НомерСессии); Если Не Результат Тогда ПолучитьОписаниеОшибки(ГлОбъектДрайвера); Возврат; КонецЕсли; Сообщить("Номер документа "+НомерДокумента + " Номер смены "+ НомерСессии); КонецПроцедуры Процедура ПолучитьОписаниеОшибки(ОбъектДрайвера) КодОшибки = 0; ОписаниеОшибки = ""; КодОшибки=ОбъектДрайвера.ПолучитьОшибку(ОписаниеОшибки); СообщениеОшибки = "Код = "+КодОшибки+", описание "+ ОписаниеОшибки; Сообщить(СообщениеОшибки ); КонецПроцедуры
Закрыть смену.
Закрыть смену можно двумя способами, используя метод НапечататьОтчетСГашением и метод РаспечататьОтчет.
Методы
НапечататьОтчетСГашением
bool НапечататьОтчетБезГашения(string ИмяУстройства)
Метода закрывает смену. В качестве параметров задается: ИмяУстройства (Имя ККМ, указанное в Сервер ККМ).
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
НапечататьОтчетБезГашения | string | Имя ККМ, указанное в Сервер ККМ | bool | true – успешно, false – завершен с ошбкой. |
Процедура ЗакрытьСмену() ОчиститьСообщения(); ИмяУстройства ="Atol"; Результат = ГлОбъектДрайвера.НапечататьОтчетСГашением(ИмяУстройства); Если Результат Тогда Сообщить("Смена закрыта"); Возврат; Иначе ПолучитьОписаниеОшибки(ГлОбъектДрайвера); КонецЕсли; КонецПроцедуры
РаспечататьОтчет
Отчет РаспечататьОтчет(Отчет отчет)
Метода печатает отчеты. В качестве параметров задается типа отчета.
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 ТОгда Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки); Возврат; КонецЕсли ; Сообщить("Чек номер = "+ Результат.НомерЧека); Сообщить("Чек смены = "+ Результат.НомерСмены); Сообщить("Фискальный признак = "+Результат.ФискальныйПризнак ); КонецПроцедуры
X-Отчет.
Печать отчета без гашения. Печать производится методом РаспечататьОтчет.
Печать Чека.
Печать Чека. Для печати чека необходимо создать объект чек (метод СоздатьЧек()), инициализировать его свойства данными и отправить на печать(Метод РаспечататьЧек).
Описание типа Чек.
Имя | Тип | Описание |
Терминал | 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 | ИНН поставщика. |
Методы
СоздатьЧек.
Чек СоздатьЧек()
Метод создает и возвращает объект Чек.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
СоздатьЧек | Чек | Объект типа Чек. |
РаспечататьЧек
Чек РаспечататьЧек()
Метод создает и возвращает объект Чек.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
РаспечататьЧек | Чек | Объект типа Чек. |
Чек.ДобавитьВНачало
void ДобавитьВНачало(string Текст)
Метод добавляет строку текста перед фискальными позициями в первую позицию.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьВНачало | Текст | string | Текст. |
Чек.ДобавитьПередЧеком
void ДобавитьПередЧеком(string Текст)
Метод добавляет строку текста перед фискальными позициями чека
Имя метода | параметры | Возвращаемое значение | ||||
Имя | Тип | Описание | Имя | Тип | Описание | |
ДобавитьПередЧеком | Текст | string | Текст. |
Чек.ДобавитьПозицию
(Устаревший)
void ДобавитьПозицию(string Наименование, double Цена, double Количество, double Скидка, int Отдел, double НДС)
Метод добавляет фискальную позицию в чек
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьПозицию | string | Наименование позиции. | ||
double | Цена | |||
double | Количество | |||
double | Скидка | |||
int | Отдел | |||
double | НДС |
Чек.ДобавитьПозицию105
void ДобавитьПозицию105(string Наименование, double Цена, double Количество, double Скидка, int Отдел, double НДС, int ПризнакСпособаРасчета, int ПризнакПредметаРасчета)
Метод добавляет фискальную позицию в чек ФФД 1.0.5
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьПозицию105 | string | Наименование позиции. | ||
double | Цена | |||
double | Количество | |||
double | Скидка | |||
int | Отдел | |||
double | НДС | |||
int | Признак способа расчета | |||
int | Признак предмета расчета |
Чек.ДобавитьПозицию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 | Сумма акциза |
Чек.ДобавитьВЧекАгента
void ДобавитьВЧекАгента (int ПризнакАгента, string Операция,
string ТелефонПлатежногоАгента, string ТелефонОператораПоПриему,string ТелефонОператораПеревода, string НаименованиеОператораПеревода, string АдресОператораПеревода, string ИННОператораПеревода)
Метод добавляет данные агента по чеку.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьВЧекАгента | int | Признак агента. | ||
string | Операция | |||
string | Телефон платежного агента | |||
string | Телефон оператора по приему | |||
string | Телефон оператора перевода | |||
string | Наименование оператора перевода | |||
string | Адрес оператора перевода | |||
string | ИНН оператора перевода |
Чек.ДобавитьВПозициюАгента
void ДобавитьВПозициюАгента(int ПризнакАгента, string Операция, string ТелефонПлатежногоАгента, string ТелефонОператораПоПриему,string ТелефонОператораПеревода, string НаименованиеОператораПеревода, string АдресОператораПеревода, string ИННОператораПеревода)
Метод добавляет данные агента в последнюю позицию.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьВПозициюАгента | int | Признак агента. | ||
string | Операция | |||
string | Телефон платежного агента | |||
string | Телефон оператора по приему | |||
string | Телефон оператора перевода | |||
string | Наименование оператора перевода | |||
string | Адрес оператора перевода | |||
string | ИНН оператора перевода |
Чек.ДобавитьВЧекПоставщика
void ДобавитьВЧекПоставщика(string ТелефонПоставщика, string НаименованиеПоставщика, string ИННПоставщика)
Метод добавляет данные поставщика по чеку.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьВЧекПоставщика | string | Телефон поставщика. | ||
string | Наименование поставщика | |||
string | ИНН поставщика |
Чек.ДобавитьВПозициюПоставщика
void ДобавитьВПозициюПоставщика (string ТелефонПоставщика, string НаименованиеПоставщика, string ИННПоставщика)
Метод добавляет данные поставщика в последнюю позицию.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьВПозициюПоставщика | string | Телефон поставщика. | ||
string | Наименование поставщика | |||
string | ИНН поставщика |
Чек.ДобавитьКодТоварнойНоменклатуры
void ДобавитьКодТоварнойНоменклатуры(string ТипМаркировки, string КиЗ, string GTIN, string СерийныйНомер, string КодМаркировки = null)
Метод добавляет данные по товарной маркировке.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьКодТоварнойНоменклатуры | string | ТипМаркировки. | ||
string | КиЗ | |||
string | GTIN | |||
string | СерийныйНомер | |||
string | КодМаркировки |
Чек.ДобавитьНеФискальнуюПозицию
void ДобавитьНеФискальнуюПозицию (string Текст)
Метод добавляет данные по товарной маркировке.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьНеФискальнуюПозицию | string | Текст нефискальной позиции |
Чек.ДобавитьОплатуНаличными
void ДобавитьОплатуНаличными(double Сумма, double Скидка = 0)
Метод добавляет оплату наличными.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьОплатуНаличными | double | Сумма | ||
double | Скидка (если не передается — по умолчанию 0) |
Чек.ДобавитьОплатуКартой
void ДобавитьОплатуКартой(double Сумма, double Скидка = 0)
Метод добавляет оплату безналичными.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьОплатуКартой | double | Сумма | ||
double | Скидка (если не передается — по умолчанию 0) |
Чек.ДобавитьОплатуКредит
void ДобавитьОплатуКредит (double Сумма, double Скидка = 0)
Метод добавляет оплату в кредит.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьОплатуКредит | double | Сумма | ||
double | Скидка (если не передается — по умолчанию 0) |
Чек.ДобавитьОплатуПредоплатой
void ДобавитьОплатуПредоплатой(double Сумма, double Скидка = 0)
Метод добавляет оплату предплатой.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьОплатуПредоплатой | double | Сумма | ||
double | Скидка (если не передается — по умолчанию 0) |
Чек.ДобавитьОплатуПредставлением
void ДобавитьОплатуПредставлением(double Сумма, double Скидка = 0)
Метод добавляет оплату по представлению.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьОплатуПредставлением | double | Сумма | ||
double | Скидка (если не передается — по умолчанию 0) |
Чек.СоздатьПозицию
bool СоздатьПозицию()
Метод создает позицию.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
СоздатьПозицию | bool | true – позиция создана. |
Чек.СоздатьПозицию77
bool СоздатьПозицию77()
Метод создает позицию.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
СоздатьПозицию77 | int | 1 – позиция создана. |
Чек.ДобавитьПозициюВЧек
bool ДобавитьПозициюВЧек()
Метод добавляет созданную и заполненную данными позицию в чек.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьПозициюВЧек | bool | true – позиция добавлена в чек. |
Чек.ДобавитьПозициюВЧек77
bool ДобавитьПозициюВЧек77()
Метод добавляет созданную и заполненную данными позицию в чек.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьПозициюВЧек77 | int | 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 ТОгда Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки); Возврат КонецЕсли ; Сообщить("Успех"); Если Фискальный Тогда Сообщить("Чек номер = "+ Результат.НомерЧека); Сообщить("Чек смены = "+ Результат.НомерСмены); Сообщить("Фискальный признак = "+ Результат.ФискальныйПризнак ); КонецЕсли ; КонецПроцедуры
Пример 2. Простой чек. Инициализация позиции через обращение к свойствам
Процедура СформироватьЧек(Команда) ОчиститьСообщения(); Чек = ГлОбъектДрайвера.СоздатьЧек(); Чек.ИмяКассы = "Атол"; Чек.Кассир = Кассир; Чек.ИннКассира = ИннКассира; Фискальный = Истина; Чек.Фискальный = Фискальный; Чек.ТипЧека = 1 Чек.ТипНалогообложения = 0; Чек.Электронный = Ложь; Чек.Контакт = ""; Чек.Департамент =1; Чек.СоздатьПозицию(); Чек.Позиция.Фискальная = true; Чек.Позиция.Наименование = "Спички"; Чек.Позиция.Цена =0.50; Чек.Позиция.Количество = 2; Чек.Позиция.Отдел = 1; Чек.Позиция.НДС=10; Чек.Позиция.ПризнакСпособаРасчета = 2; Чек.Позиция.ПризнакПредметаРасчета = 1; Чек.Позиция.Сумма = 1; Чек.ДобавитьПозициюВЧек(); Чек.ДобавитьОплатуНаличными(0.10); Чек.ДобавитьОплатуКартой(0.90); Результат = ГлОбъектДрайвера.РаспечататьЧек(Чек); Если Результат.КодОшибки <>0 ТОгда Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки); Возврат КонецЕсли ; Сообщить("Успех"); Если Фискальный Тогда Сообщить("Чек номер = "+ Результат.НомерЧека); Сообщить("Чек смены = "+ Результат.НомерСмены); Сообщить("Фискальный признак = "+ Результат.ФискальныйПризнак ); КонецЕсли\ КонецПроцедуры
Пример 3. Печать чека с акцизом, номером ТД.
Процедура СформироватьЧек(Команда) ОчиститьСообщения(); Чек = ГлОбъектДрайвера.СоздатьЧек(); Чек.Кассир = Кассир; Чек.ИннКассира = ИннКассира; Фискальный = Истина; Чек.Фискальный = Фискальный; Чек.Покупатель = "ООО ТрейдКом"; Чек.ИННПокупателя = "0326031413"; Чек.ТипЧека = 1; Чек.ТипНалогообложения = 0; Чек.Электронный = Ложь; Чек.Контакт = ""; Чек.Департамент =1; Чек.СоздатьПозицию(); // созадние пустой позиции Чек.Позиция.Фискальная = true; Чек.Позиция.Наименование = "Спички"; Чек.Позиция.Цена =0.50; Чек.Позиция.Количество = 2; Чек.Позиция.Отдел = 1; Чек.Позиция.НДС=10; Чек.Позиция.ПризнакСпособаРасчета = 2; Чек.Позиция.ПризнакПредметаРасчета = 1; Чек.Позиция.Сумма = 1; Чек.Позиция.СуммаАкциза =0.5; Чек.Позиция.ТДекларация="10225040/250511/1022504" ; Чек.ДобавитьПозициюВЧек();// созадние позиции в чек Чек.ДобавитьОплатуНаличными(0.10); Чек.ДобавитьОплатуКартой(0.90); Результат = ГлОбъектДрайвера.РаспечататьЧек(Чек); Если Результат.КодОшибки <>0 ТОгда Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки); Возврат КонецЕсли ; Сообщить("Успех"); Если Фискальный Тогда Сообщить("Чек номер = "+ Результат.НомерЧека); Сообщить("Чек смены = "+ Результат.НомерСмены); Сообщить("Фискальный признак = "+ Результат.ФискальныйПризнак ); КонецЕсли КонецПроцедуры
Пример 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 ТОгда Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки); Возврат КонецЕсли ; Сообщить("Успех"); Если Фискальный Тогда Сообщить("Чек номер = "+ Результат.НомерЧека); Сообщить("Чек смены = "+ Результат.НомерСмены); Сообщить("Фискальный признак = "+ Результат.ФискальныйПризнак ); КонецЕсли КонецПроцедуры
Пример 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. Печать чека с данными агента и поставщика по позиции.
Процедура СформироватьЧек(Команда) ОчиститьСообщения(); Чек = ГлОбъектДрайвера.СоздатьЧек(); Чек.Кассир = Кассир; Чек.ИннКассира = ИннКассира; Фискальный = Истина; Чек.Фискальный = Фискальный; Чек.Покупатель = "ООО ТрейдКом"; Чек.ИННПокупателя = "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 ТОгда Сообщить("Ошибка "+Результат.КодОшибки+" Описание "+Результат.ОписаниеОшибки); Возврат КонецЕсли; Сообщить("Успех"); Если Фискальный Тогда Сообщить("Чек номер = "+ Результат.НомерЧека); Сообщить("Чек смены = "+ Результат.НомерСмены); Сообщить("Фискальный признак = "+ Результат.ФискальныйПризнак ); КонецЕсли КонецПроцедуры
Печать Чека Коррекции.
Методы
СоздатьЧекКоррекции
ЧекКоррекции СоздатьЧек()
Метод создает и возвращает объект ЧекКоррекции.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
СоздатьЧекКоррекции | ЧекКоррекции | Объект типа ЧекКоррекции. |
РаспечататьЧекКоррекции
ЧекКоррекции РаспечататьЧекКоррекции(ЧекКоррекции чек)
Метод отправляет на печать Чек Коррекции.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
РаспечататьЧекКоррекции | ЧекКоррекции | Объект типа ЧекКоррекции. |
Описание типа ЧекКоррекции.
Имя | Тип | Описание |
Терминал | 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 — Патентная система налогообложения |
ДобавитьОплатуНаличными
void ДобавитьОплатуНаличными(double Сумма)
Метод устанавливает оплату наличными.
Имя метода | параметры | Возвращаемое значение | ||||
Имя | Тип | Описание | Имя | Тип | Описание | |
ДобавитьОплатуНаличными | Сумма | double | Устанавливаемая Сумма |
ДобавитьОплатуКартой
void ДобавитьОплатуКартой(double Сумма)
Метод устанавливает оплату наличными.
Имя метода | параметры | Возвращаемое значение | ||||
Имя | Тип | Описание | Имя | Тип | Описание | |
ДобавитьОплатуКартой | Сумма | double | Устанавливаемая Сумма |
ДобавитьОплатуКредит
void ДобавитьОплатуКредит(double Сумма)
Метод устанавливает оплату наличными.
Имя метода | параметры | Возвращаемое значение | ||||
Имя | Тип | Описание | Имя | Тип | Описание | |
ДобавитьОплатуКредит | Сумма | double | Устанавливаемая Сумма |
ДобавитьОплатуПредоплатой
void ДобавитьОплатуПредоплатой (double Сумма)
Метод устанавливает оплату наличными.
Имя метода | параметры | Возвращаемое значение | ||||
Имя | Тип | Описание | Имя | Тип | Описание | |
ДобавитьОплатуПредоплатой | Сумма | double | Устанавливаемая Сумма |
ДобавитьОплатуПредставлением
void ДобавитьОплатуПредставлением (double Сумма)
Метод устанавливает оплату наличными.
Имя метода | параметры | Возвращаемое значение | ||||
Имя | Тип | Описание | Имя | Тип | Описание | |
ДобавитьОплатуПредставлением | Сумма | double | Устанавливаемая Сумма |
Внесение/Выемка денег.
Методы
НапечататьЧекВнесенияВыемки
bool НапечататьЧекВнесенияВыемки (string ИДУстойства, double Сумма)
Метод печатает документ внесения или выемки.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
НапечататьЧекВнесенияВыемки | string | Идентификатор устройства. | bool | true – напечатан успешно. |
Печать Текста.
Методы
СоздатьТекст
ТекстовыйФайл СозатьТекст()
Метод создает нефискальный документ — текст.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ТекстовыйФайл | Данные печати |
РаспечататьТекст
Метод печатает нефискальный документ — текст.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
РаспечататьТекст | ТекстовыйФайл | Данные для печати | ТекстовыйФайл | Данные печати |
ДобавитьСтроку
void ДобавитьСтроку(string Текст)
Метод добавляет строку для печати в нефискальном документе.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ДобавитьСтроку | string | Строка для печати |
Описание типа ТекстовыйФайл
Имя | Тип | Описание |
Терминал | string | Задает или получает имя компьютера на котором сформирован документ |
Идентификатор | string | Задает или получает идентификатор документа в формате GUID |
ИмяКассы | string | Задает или получает имя устройства как на Сервере ККМ |
КодОшибки | int | Получает код ошибки печати |
ОписаниеОшибки | string | Получает описание ошибки печати |
Кассир | string | ФИО кассира |
ИннКассира | string | ИНН кассира |
ВерсияКлиента | string | Версия клиента (Внешней компоненты) |
Получить текущее состояние
Методы
ПолучитьСостояниеКассы
bool ПолучитьСостояниеКассы(string ИДУстройтва, out int НомерЧека, out int НомерСмены, out int СтатусСмены)
Метод получает состояние ККМ.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ПолучитьСостояниеКассы | string | Идентификатор устройства. | bool | true – успешно. |
out int | Номер чека | |||
out int | Номер смены | |||
out int | Статус смены (1-Закрыта,2-Открыта,3-Истекла) |
Получение текущего состоянии расчетов
Методы
ПолучитьТекущееСостояниеРасчетов
bool ПолучитьТекущееСостояниеРасчетов(string deviceId, out int backlogDocumentsCounter, out int backlogDocumentFirstNumber, out DateTime BacklogDocumentFirstDateTime)
Метод получает текущее состояние расчетов.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ПолучитьТекущееСостояниеРасчетов | string | Идентификатор устройства. | bool | true – успешно. |
out int | Количество непереданных документов | |||
out int | Номер первого непереданного документа | |||
out DateTime | Дата и время первого из непереданных документов |
Получение ширины строки
Методы
ПолучитьШиринуСтроки
bool ПолучитьШиринуСтроки(string ИДУстойства, out int ШиринаСтроки)
Метод печатает ширину строки документа ККМ.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ПолучитьШиринуСтроки | string | Идентификатор устройства. | bool | true – успешно. |
out int | Ширина строки в символах. |
Открытие денежного ящика
Методы
ОткрытьДенежныйЯщик
bool ОткрытьДенежныйЯщик(string ИДУстойства)
Метод открывает денежный ящик.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ОткрытьДенежныйЯщик | string | Идентификатор устройства. | bool | true – успешно. |
ОткрытьДенежныйЯщик77
int ОткрытьДенежныйЯщик77(string ИДУстойства)
Метод открывает денежный ящик.
Имя метода | параметры | Возвращаемое значение | ||
Тип | Описание | Тип | Описание | |
ОткрытьДенежныйЯщик | string | Идентификатор устройства. | int | 1 – успешно. |