








Методика работы с модулем CashDesk
Общая работа с сервисом CashDesk идет через форму данной обработки. Поэтому все обращения к
сервису (передача входных параметров, получение данных) идут через модальное открытие
данной формы. Обработка cashdesk.ert помещается в каталог внешних форм базы 1С и оттуда
вызывается.
Пример открытия формы для настроек:
ОткрытьФормуМодально("Отчет",,Катал+"cashdesk.ert");
Пример вызова встроенных функция с передачей параметров:
ОткрытьФормуМодально("Отчет",Параметры,Катал+"cashdesk.ert");
Ответ = Параметры.Получить("Ответ");
Настройка
Настройка делается через открытие обработки cashdesk.ert.
Поля для заполнения и сохранения: Домен, Апи-ключ и Фискальный номер. После заполнения
полей обязательно нажать сохранить. Все остальные команды на формы являются сервисом
cashdesk.
Методы сервиса
Продажа/Возврат
Вызывается методом модального открытия обработки с параметрами
ОткрытьФормуМодально("Отчет",Параметры,Катал+"cashdesk.ert");
Ответ = Параметры.Получить("Ответ");
Ответ.Получить("НомерЧека");
Параметры (Тип СписокЗначений), заполняется такими полями:
Параметры.Установить("ТаблицаНоменклатуры", ТаблицаНоменклатуры); -список значений
Параметры.Установить("ТаблицаОплат", ТаблицаОплат); - список значений
Параметры.Установить("ОбщаяСуммаЧека", Число); указывается сумма чека
Параметры.Установить("ЭтоВозврат", 0); 0-продажа, 1- возврат
Параметры.Установить("ИмяКоманды", "Продажа");
- ТаблицаНоменклатуры – СписокЗначений, который содержит другие списки значений
- Значения - Список значений с полями (Наименование, Артикул, Количество, Цена,
СуммаСкидки, ПроцентСкидки, Сумма, НомерСекции, СуммаНДС, СтавкаНДС)
- ТаблицаОплат – Список значений с полями (СуммаБН, СуммаНАЛ). Указываются суммы
внесенные по безналу и наличкой (наличкой указывается полная сумма без сдачи)
Результатом данной функции будет номер чека и вывод файла чека на просмотр
Пример заполнения с помощью готовой функции, которая встраивается в форму продажи
В данную функцию передается таблица значений с товаром, количеством и ценами и другие
реквизиты, которые потребуются для заполнения таблицы номенклатуры, так же передается
признак продажи или возврата, и признак оплаты (в примере указан только один признак, но
можете передавать сразу два, если будет два вида оплаты)
//Вызов продажи cashdesk ЭтоВозврат=0-продажа,1-возврат
Функция ПечатьЧекаPPO(тзЧек, ЭтоВозврат=0, наличка=1)
Параметры = СоздатьОбъект("СписокЗначений");
ТаблицаНоменклатуры = СоздатьОбъект("СписокЗначений");//СЗ Наименование, Артикул,
Количество, Цена, СуммаСкидки, ПроцентСкидки, Сумма, НомерСекции, СуммаНДС, СтавкаНДС
ТаблицаОплат = СоздатьОбъект("СписокЗначений");
ТаблицаОплат.Установить("СуммаБН", ?(наличка=1, 0, Получено));
ТаблицаОплат.Установить("СуммаНАЛ", ?(наличка=1, Получено, 0));
ОбщаяСуммаЧека = 0;
ТЗЧек.ВыбратьСтроки();
Пока ТЗЧек.ПолучитьСтроку() = 1 Цикл
_ТМЦ = ТЗЧек.ТМЦ;
СтавкаНДС = _ТМЦ.СтавкаНДС.Ставка.Получить(ТекущаяДата());
_Цена = ТЗЧек.ЦенаСоСкидкой;
_ЦенаБезНДСБезСкидки = ТЗЧек.Цена;
Рах_Кво = ТЗЧек.Количество;
Рах_СуммаБезСкидки = _ЦенаБезНДСБезСкидки * Рах_Кво;
Рах_СуммаСНДС = _Цена* Рах_Кво;
Рах_Скидка = Рах_СуммаБезСкидки - Рах_СуммаСНДС;
Рах_СуммаБезНДС = Рах_СуммаСНДС / (1 +СтавкаНДС);
ОбщаяСуммаЧека = ОбщаяСуммаЧека+Рах_СуммаСНДС;
СтрокаНоменклатуры = СоздатьОбъект("СписокЗначений");
СтрокаНоменклатуры.Установить("Наименование", ТЗЧек.ТМЦ.Наименование);
СтрокаНоменклатуры.Установить("Артикул", ТЗЧек.ТМЦ.Артикул);
СтрокаНоменклатуры.Установить("Штрихкод", ТЗЧек.ТМЦ.Штрихкод);
СтрокаНоменклатуры.Установить("Количество", ТЗЧек.Количество);
СтрокаНоменклатуры.Установить("Цена", _ЦенаБезНДСБезСкидки);
СтрокаНоменклатуры.Установить("СуммаСкидки", Рах_Скидка);
СтрокаНоменклатуры.Установить("Сумма", Рах_СуммаСНДС);
СтрокаНоменклатуры.Установить("СуммаНДС", Рах_СуммаСНДСРах_СуммаБезНДС);
СтрокаНоменклатуры.Установить("СтавкаНДС", СтавкаНДС*10);
ТаблицаНоменклатуры.ДобавитьЗначение(СтрокаНоменклатуры);
КонецЦикла;
Параметры.Установить("ТаблицаНоменклатуры", ТаблицаНоменклатуры);
Параметры.Установить("ТаблицаОплат", ТаблицаОплат);
Параметры.Установить("ОбщаяСуммаЧека", ОбщаяСуммаЧека);
Параметры.Установить("ЭтоВозврат", ЭтоВозврат);
Параметры.Установить("ИмяКоманды", "Продажа");
Катал="ExtForms";//Указывается полный путь к каталогу внешних форм
Если ФС.СуществуетФайл(Катал+"cashdesk.ert")=1 Тогда
ОткрытьФормуМодально("Отчет",Параметры,Катал+"cashdesk.ert");
Ответ = Параметры.Получить("Ответ");
Возврат Ответ.Получить("НомерЧека");
КонецЕсли;
Возврат "";
КонецФункции//cashdesk
Копия Чека
Вызывается методом модального открытия обработки с параметрами
ОткрытьФормуМодально("Отчет",Параметры,Катал+"cashdesk.ert");
Параметры (Тип СписокЗначений), заполняется такими полями:
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.Установить("НомерЧека", НомерЧека);//Указывается номер чека, который был
получен при продаже или возврате
Параметры.Установить("ИмяКоманды", "КопияЧека");
Результатом данной функции будет вывод копии чека на просмотр
Отправить Чек
Вызывается методом модального открытия обработки с параметрами
ОткрытьФормуМодально("Отчет",Параметры,Катал+"cashdesk.ert");
Параметры (Тип СписокЗначений), заполняется такими полями:
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.Установить("НомерЧека", НомерЧека);//Указывается номер чека, который был
получен при продаже или возврате
Параметры.Установить("ТипОтправки", "VIBER"); //Возможные параметры SMS, EMAIL, VIBER
Параметры.Установить("Получатель", "380..");//Ограничение для телефона, надо указывать 380 и
далее номер
Параметры.Установить("ИмяКоманды", "ОтправитьЧек");
Результатом данной функции будет отправка копии чека получателю