Включает перемещение по ячейкам, стикеровку МП, синхронизацию справочников и обработку кодов маркировки. Co-authored-by: Cursor <cursoragent@cursor.com>
728 lines
58 KiB
Plaintext
728 lines
58 KiB
Plaintext
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
// Copyright (c) 2024, ООО 1С-Софт
|
||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||
// Текст лицензии доступен по ссылке:
|
||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
#Область ПрограммныйИнтерфейс
|
||
|
||
// Установить компоненту для интеграции с НСПК
|
||
//
|
||
// Параметры:
|
||
// ОповещениеПриЗавершении - ОписаниеОповещения - Оповещение вызываемое после установки
|
||
// описание результата см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации .
|
||
//
|
||
Асинх Процедура УстановитьКомпонентуИнтеграцииНСПК(ОповещениеПриЗавершении = Неопределено) Экспорт
|
||
|
||
РезультатПодключения = Ждать УстановитьКомпонентуИнтеграцииНСПКАсинх();
|
||
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации(РезультатПодключения.Установлено, РезультатПодключения.ОписаниеОшибки);
|
||
ВыполнитьОбработкуОповещения(ОповещениеПриЗавершении, РезультатВыполнения);
|
||
|
||
КонецПроцедуры
|
||
|
||
// Установить компоненту для интеграции с НСПК
|
||
//
|
||
// Возвращаемое значение:
|
||
// см. ВнешниеКомпонентыБПОКлиент.РезультатУстановки
|
||
//
|
||
Асинх Функция УстановитьКомпонентуИнтеграцииНСПКАсинх() Экспорт
|
||
|
||
ОписаниеКомпоненты = ЭлектронныеСертификатыНСПККлиентСервер.ОписаниеКомпоненты();
|
||
ИмяОбъекта = ОписаниеКомпоненты.ИмяОбъекта;
|
||
ПолноеИмяМакета = ОписаниеКомпоненты.ПолноеИмяМакета;
|
||
|
||
РезультатВыполнения = Ждать ВнешниеКомпонентыБПОКлиент.УстановитьКомпонентуИзМакетаАсинх(ПолноеИмяМакета);
|
||
|
||
Возврат РезультатВыполнения;
|
||
|
||
КонецФункции
|
||
|
||
// Начинает подключение компоненты интеграции НСПК
|
||
//
|
||
// Параметры:
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
// Возвращаемое значение:
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации
|
||
//
|
||
Асинх Функция ПодключитьКомпонентуИнтеграцииНСПКАсинх(ПараметрыОперации = Неопределено) Экспорт
|
||
|
||
ОписаниеКомпоненты = ЭлектронныеСертификатыНСПККлиентСервер.ОписаниеКомпоненты();
|
||
ИмяОбъекта = ОписаниеКомпоненты.ИмяОбъекта;
|
||
ПолноеИмяМакета = ОписаниеКомпоненты.ПолноеИмяМакета;
|
||
|
||
ВнешняяКомпонента = МенеджерОборудованияКлиент.ОбъектДрайвераИзКэша(ИмяОбъекта);
|
||
Если ВнешняяКомпонента <> Неопределено Тогда
|
||
РезультатПодключения = ВнешниеКомпонентыБПОКлиент.РезультатПодключения();
|
||
РезультатПодключения.ПодключаемыйМодуль = ВнешняяКомпонента;
|
||
РезультатПодключения.Подключено = Истина;
|
||
Иначе
|
||
РезультатПодключения = Ждать ВнешниеКомпонентыБПОКлиент.ПодключитьКомпонентуИзМакетаАсинх(ИмяОбъекта, ПолноеИмяМакета);
|
||
Если Не РезультатПодключения.Подключено Тогда
|
||
РезультатУстановки = Ждать ВнешниеКомпонентыБПОКлиент.УстановитьКомпонентуИзМакетаАсинх(ПолноеИмяМакета);
|
||
Если Не РезультатУстановки.Установлено Тогда
|
||
ОписаниеОшибки = СтрШаблон(НСтр("ru = 'Ошибка установки компоненты %1: %2'"), ИмяОбъекта, РезультатУстановки.ОписаниеОшибки);
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации(Ложь, ОписаниеОшибки);
|
||
Возврат РезультатВыполнения;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
РезультатПодключения = Ждать ВнешниеКомпонентыБПОКлиент.ПодключитьКомпонентуИзМакетаАсинх(ИмяОбъекта, ПолноеИмяМакета);
|
||
Если Не РезультатПодключения.Подключено Тогда
|
||
ОписаниеОшибки = СтрШаблон(НСтр("ru = 'Ошибка подключения компоненты %1: %2'"), ИмяОбъекта, РезультатПодключения.ОписаниеОшибки);
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации(Ложь, ОписаниеОшибки);
|
||
Возврат РезультатВыполнения;
|
||
КонецЕсли;
|
||
|
||
МенеджерОборудованияКлиент.ДобавитьДрайверВКэш(ИмяОбъекта, РезультатПодключения.ПодключаемыйМодуль);
|
||
КонецЕсли;
|
||
|
||
ВнешняяКомпонента = РезультатПодключения.ПодключаемыйМодуль;
|
||
Если ОбщегоНазначенияБПОКлиент.ИспользуетсяБСП() Тогда
|
||
РезультатВызова = Ждать ВнешняяКомпонента.ВерсияАсинх();
|
||
Версия = РезультатВызова.Значение;
|
||
// Вызов БСП
|
||
МодульОбщегоНазначенияКлиентСервер = ОбщегоНазначенияБПОКлиент.ОбщийМодуль("ОбщегоНазначенияКлиентСервер");
|
||
Если НЕ МодульОбщегоНазначенияКлиентСервер.СравнитьВерсии(Версия, ОписаниеКомпоненты.ВерсияМинимальная) >= 0 Тогда
|
||
ОписаниеОшибки = СтрШаблон(НСтр("ru = 'Используется компонента %1 не актуальной версии %2. Необходимо обновить до версии %3 и выше.'"),
|
||
ИмяОбъекта, Версия, ОписаниеКомпоненты.ВерсияМинимальная);
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации(Ложь, ОписаниеОшибки);
|
||
Возврат РезультатВыполнения;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации(Истина);
|
||
РезультатВыполнения.Вставить("ВнешняяКомпонента", ВнешняяКомпонента);
|
||
|
||
Если ПараметрыОперации <> Неопределено Тогда
|
||
ПараметрыJSON = ЭлектронныеСертификатыНСПККлиентСервер.ПолучитьJSONПараметры(ПараметрыОперации);
|
||
Результат = Ждать ВнешняяКомпонента.УстановитьПараметрыАсинх(ПараметрыJSON);
|
||
КонецЕсли;
|
||
|
||
Возврат РезультатВыполнения;
|
||
|
||
КонецФункции
|
||
|
||
// Подключает компоненту и начинает получение версии внешней компоненты НСПК
|
||
//
|
||
// Возвращаемое значение:
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации
|
||
//
|
||
Асинх Функция ПолучениеВерсииВКАсинх() Экспорт
|
||
|
||
РезультатПодключения = Ждать ПодключитьКомпонентуИнтеграцииНСПКАсинх();
|
||
Если РезультатПодключения.Результат Тогда
|
||
ВнешняяКомпонента = РезультатПодключения.ВнешняяКомпонента;
|
||
РезультатВызова = Ждать ВнешняяКомпонента.ВерсияАсинх();
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации(Истина);
|
||
РезультатВыполнения.Вставить("Версия", РезультатВызова.Значение);
|
||
Иначе
|
||
Возврат РезультатПодключения;
|
||
КонецЕсли;
|
||
|
||
Возврат РезультатВыполнения;
|
||
|
||
КонецФункции
|
||
|
||
// Подключает компоненту и начинает получение версии внешней компоненты НСПК
|
||
//
|
||
// Параметры:
|
||
// ОповещениеПриЗавершении - ОписаниеОповещения - В случае успеха результатом оповещения будет номер версии, в случае ошибки
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации.
|
||
//
|
||
Асинх Процедура НачатьПолучениеВерсииВК(ОповещениеПриЗавершении) Экспорт
|
||
|
||
РезультатВыполнения = Ждать ПолучениеВерсииВКАсинх();
|
||
ВыполнитьОбработкуОповещения(ОповещениеПриЗавершении, РезультатВыполнения);
|
||
|
||
КонецПроцедуры
|
||
|
||
// Подключает компоненту и начинает тестовое подключение к НСПК
|
||
//
|
||
// Параметры:
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
// Возвращаемое значение:
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации
|
||
//
|
||
Асинх Функция ТестовоеПодключениеАсинх(ПараметрыОперации) Экспорт
|
||
|
||
РезультатПодключения = Ждать ПодключитьКомпонентуИнтеграцииНСПКАсинх(ПараметрыОперации);
|
||
|
||
Если РезультатПодключения.Результат Тогда
|
||
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПроверитьПараметрыОперации(ПараметрыОперации);
|
||
Если НЕ РезультатВыполнения.Результат Тогда
|
||
Возврат РезультатВыполнения;
|
||
КонецЕсли;
|
||
|
||
// Замер производительности
|
||
КлючеваяОперация = "ОбщийМодуль.ЭлектронныеСертификатыНСПККлиент.ТестовоеПодключение";
|
||
ИдентификаторЗамера = ОбщегоНазначенияБПОКлиент.НачатьЗамерВремениБПО(КлючеваяОперация);
|
||
|
||
ВнешняяКомпонента = РезультатПодключения.ВнешняяКомпонента;
|
||
ИдентификаторЗапроса = ПараметрыОперации.ИдентификаторЗапроса;
|
||
ИдентификаторКассы = ПараметрыОперации.ИдентификаторКассы;
|
||
ТестовоеСообщение = НСтр("ru = 'Тест 1С'");
|
||
|
||
// АПК: 1036-выкл совместимость с драйвером
|
||
РезультатВызова = Ждать ВнешняяКомпонента.эхоАсинх(
|
||
ИдентификаторЗапроса, // Строка
|
||
ИдентификаторКассы, // Строка
|
||
ТестовоеСообщение); // Строка
|
||
// АПК: 1036-вкл
|
||
|
||
ПараметрыЗавершение = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперацииНаСервере();
|
||
ПараметрыЗавершение.ТекстРезультата = РезультатВызова.Значение;
|
||
ПараметрыЗавершение.ТипПлатежнойОперации = Неопределено;
|
||
ПараметрыЗавершение.ПараметрыОперации = ПараметрыОперации;
|
||
|
||
// Замер производительности
|
||
ОбщегоНазначенияБПОКлиент.ЗавершитьЗамерВремениБПО(ИдентификаторЗамера);
|
||
|
||
РезультатВыполнения = Ждать ЗавершениеОперации(ВнешняяКомпонента, ПараметрыЗавершение);
|
||
|
||
Иначе
|
||
Возврат РезультатПодключения;
|
||
КонецЕсли;
|
||
|
||
Возврат РезультатВыполнения;
|
||
|
||
КонецФункции
|
||
|
||
// Подключает компоненту и начинает тестовое подключение к НСПК
|
||
//
|
||
// Параметры:
|
||
// ОповещениеПриЗавершении - ОписаниеОповещения - событие описания оповещения, описание результата
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации.
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
Асинх Процедура НачатьТестовоеПодключение(ОповещениеПриЗавершении, ПараметрыОперации) Экспорт
|
||
|
||
РезультатВыполнения = Ждать ТестовоеПодключениеАсинх(ПараметрыОперации);
|
||
ВыполнитьОбработкуОповещения(ОповещениеПриЗавершении, РезультатВыполнения);
|
||
|
||
КонецПроцедуры
|
||
|
||
// Выполняет операцию предварительного одобрения использования сертификатов
|
||
//
|
||
// Параметры:
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
// Возвращаемое значение:
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации
|
||
//
|
||
Асинх Функция ПредварительноеОдобрениеИспользованияАсинх(ПараметрыОперации) Экспорт
|
||
|
||
РезультатПодключения = Ждать ПодключитьКомпонентуИнтеграцииНСПКАсинх(ПараметрыОперации);
|
||
|
||
Если РезультатПодключения.Результат Тогда
|
||
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПроверитьПараметрыОперации(ПараметрыОперации, Истина);
|
||
Если НЕ РезультатВыполнения.Результат Тогда
|
||
Возврат РезультатВыполнения;
|
||
КонецЕсли;
|
||
|
||
// Замер производительности
|
||
КлючеваяОперация = "ОбщийМодуль.ЭлектронныеСертификатыНСПККлиент.ПредварительноеОдобрениеИспользования";
|
||
ИдентификаторЗамера = ОбщегоНазначенияБПОКлиент.НачатьЗамерВремениБПО(КлючеваяОперация);
|
||
|
||
ВнешняяКомпонента = РезультатПодключения.ВнешняяКомпонента;
|
||
ИдентификаторЗапроса = Строка(ПараметрыОперации.ИдентификаторЗапроса);
|
||
ИдентификаторКассы = ПараметрыОперации.ИдентификаторКассы;
|
||
ХешНомерКарты = ПараметрыОперации.ХешНомерКарты;
|
||
СсылкаНаПлатежныйСчет = ПараметрыОперации.СсылкаНаПлатежныйСчет;
|
||
|
||
ТоварныеПозицииJSON = ЭлектронныеСертификатыНСПККлиентСервер.ПолучитьJSONТоварныеПозиции(ПараметрыОперации.ТоварныеПозиции, Истина);
|
||
|
||
РезультатВызова = Ждать ВнешняяКомпонента.ЗапросНаПредварительноеОдобрениеИспользованияАсинх(
|
||
ИдентификаторЗапроса, // Строка
|
||
ИдентификаторКассы, // Строка
|
||
ХешНомерКарты, // Строка
|
||
СсылкаНаПлатежныйСчет, // Строка
|
||
ТоварныеПозицииJSON); // Строка
|
||
|
||
ПараметрыЗавершение = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперацииНаСервере();
|
||
ПараметрыЗавершение.ТекстРезультата = РезультатВызова.Значение;
|
||
ПараметрыЗавершение.ТипПлатежнойОперации = ЭлектронныеСертификатыНСПККлиентСервер.ТипПлатежнойОперацииПредварительноеОдобрениеИспользованияЭС();
|
||
ПараметрыЗавершение.ПараметрыОперации = ПараметрыОперации;
|
||
|
||
// Замер производительности
|
||
ОбщегоНазначенияБПОКлиент.ЗавершитьЗамерВремениБПО(ИдентификаторЗамера);
|
||
|
||
РезультатВыполнения = Ждать ЗавершениеОперации(ВнешняяКомпонента, ПараметрыЗавершение);
|
||
Иначе
|
||
Возврат РезультатПодключения;
|
||
КонецЕсли;
|
||
|
||
Возврат РезультатВыполнения;
|
||
|
||
КонецФункции
|
||
|
||
// Подключает компоненту и начинает предварительное одобрение использования сертификатов
|
||
//
|
||
// Параметры:
|
||
// ОповещениеПриЗавершении - ОписаниеОповещения - событие описания оповещения, описание результата
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации.
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
Асинх Процедура НачатьПредварительноеОдобрениеИспользования(ОповещениеПриЗавершении, ПараметрыОперации) Экспорт
|
||
|
||
РезультатВыполнения = Ждать ПредварительноеОдобрениеИспользованияАсинх(ПараметрыОперации);
|
||
ВыполнитьОбработкуОповещения(ОповещениеПриЗавершении, РезультатВыполнения);
|
||
|
||
КонецПроцедуры
|
||
|
||
// Подключает компоненту и начинает предварительное одобрение возврата сертификатов
|
||
//
|
||
// Параметры:
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
// Возвращаемое значение:
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации
|
||
//
|
||
Асинх Функция ПредварительноеОдобрениеВозвратаАсинх(ПараметрыОперации) Экспорт
|
||
|
||
РезультатПодключения = Ждать ПодключитьКомпонентуИнтеграцииНСПКАсинх(ПараметрыОперации);
|
||
|
||
Если РезультатПодключения.Результат Тогда
|
||
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПроверитьПараметрыОперации(ПараметрыОперации, Истина);
|
||
Если НЕ РезультатВыполнения.Результат Тогда
|
||
Возврат РезультатВыполнения;
|
||
КонецЕсли;
|
||
|
||
// Замер производительности
|
||
КлючеваяОперация = "ОбщийМодуль.ЭлектронныеСертификатыНСПККлиент.ПредварительноеОдобрениеВозврата";
|
||
ИдентификаторЗамера = ОбщегоНазначенияБПОКлиент.НачатьЗамерВремениБПО(КлючеваяОперация);
|
||
|
||
ВнешняяКомпонента = РезультатПодключения.ВнешняяКомпонента;
|
||
ИдентификаторЗапроса = Строка(ПараметрыОперации.ИдентификаторЗапроса);
|
||
ИдентификаторКассы = ПараметрыОперации.ИдентификаторКассы;
|
||
ХешНомерКарты = ПараметрыОперации.ХешНомерКарты;
|
||
СсылкаНаПлатежныйСчет = ПараметрыОперации.СсылкаНаПлатежныйСчет;
|
||
ИдентификаторКорзины = ПараметрыОперации.ИдентификаторКорзины;
|
||
|
||
ТоварныеПозицииJSON = ЭлектронныеСертификатыНСПККлиентСервер.ПолучитьJSONТоварныеПозиции(ПараметрыОперации.ТоварныеПозиции);
|
||
|
||
РезультатВызова = Ждать ВнешняяКомпонента.ЗапросНаПредварительноеОдобрениеВозвратаАсинх(
|
||
ИдентификаторЗапроса, // Строка
|
||
ИдентификаторКассы, // Строка
|
||
ИдентификаторКорзины, // Строка
|
||
ХешНомерКарты, // Строка
|
||
СсылкаНаПлатежныйСчет, // Строка
|
||
ТоварныеПозицииJSON); // Строка
|
||
|
||
ПараметрыЗавершение = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперацииНаСервере();
|
||
ПараметрыЗавершение.ТекстРезультата = РезультатВызова.Значение;
|
||
ПараметрыЗавершение.ТипПлатежнойОперации = ЭлектронныеСертификатыНСПККлиентСервер.ТипПлатежнойОперацииПредварительноеОдобрениеВозвратаЭС();
|
||
ПараметрыЗавершение.ПараметрыОперации = ПараметрыОперации;
|
||
|
||
// Замер производительности
|
||
ОбщегоНазначенияБПОКлиент.ЗавершитьЗамерВремениБПО(ИдентификаторЗамера);
|
||
|
||
РезультатВыполнения = Ждать ЗавершениеОперации(ВнешняяКомпонента, ПараметрыЗавершение);
|
||
Иначе
|
||
Возврат РезультатПодключения;
|
||
КонецЕсли;
|
||
|
||
Возврат РезультатВыполнения;
|
||
|
||
КонецФункции
|
||
|
||
// Подключает компоненту и начинает предварительное одобрение возврата сертификатов
|
||
//
|
||
// Параметры:
|
||
// ОповещениеПриЗавершении - ОписаниеОповещения - событие описания оповещения, описание результата
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации.
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
Асинх Процедура НачатьПредварительноеОдобрениеВозврата(ОповещениеПриЗавершении, ПараметрыОперации) Экспорт
|
||
|
||
РезультатВыполнения = Ждать ПредварительноеОдобрениеВозвратаАсинх(ПараметрыОперации);
|
||
ВыполнитьОбработкуОповещения(ОповещениеПриЗавершении, РезультатВыполнения);
|
||
|
||
КонецПроцедуры
|
||
|
||
// Подключает компоненту и начинает выполнение получения состава корзины
|
||
//
|
||
// Параметры:
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
// Возвращаемое значение:
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации
|
||
//
|
||
Асинх Функция ПолучениеСоставаКорзиныАсинх(ПараметрыОперации) Экспорт
|
||
|
||
РезультатПодключения = Ждать ПодключитьКомпонентуИнтеграцииНСПКАсинх(ПараметрыОперации);
|
||
|
||
Если РезультатПодключения.Результат Тогда
|
||
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПроверитьПараметрыОперации(ПараметрыОперации);
|
||
Если НЕ РезультатВыполнения.Результат Тогда
|
||
Возврат РезультатВыполнения;
|
||
КонецЕсли;
|
||
|
||
// Замер производительности
|
||
КлючеваяОперация = "ОбщийМодуль.ЭлектронныеСертификатыНСПККлиент.ПолучениеСоставаКорзины";
|
||
ИдентификаторЗамера = ОбщегоНазначенияБПОКлиент.НачатьЗамерВремениБПО(КлючеваяОперация);
|
||
|
||
ВнешняяКомпонента = РезультатПодключения.ВнешняяКомпонента;
|
||
ИдентификаторЗапроса = Строка(ПараметрыОперации.ИдентификаторЗапроса);
|
||
ИдентификаторКассы = ПараметрыОперации.ИдентификаторКассы;
|
||
ИдентификаторКорзины = ПараметрыОперации.ИдентификаторКорзины;
|
||
|
||
РезультатВызова = Ждать ВнешняяКомпонента.ЗапросНаПолучениеСоставаКорзиныОригинальнойПокупкиАсинх(
|
||
ИдентификаторЗапроса, // Строка
|
||
ИдентификаторКассы, // Строка
|
||
ИдентификаторКорзины); // Строка
|
||
|
||
ПараметрыЗавершение = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперацииНаСервере();
|
||
ПараметрыЗавершение.ТекстРезультата = РезультатВызова.Значение;
|
||
ПараметрыЗавершение.ТипПлатежнойОперации = ЭлектронныеСертификатыНСПККлиентСервер.ТипПлатежнойОперацииПолучениеСоставаКорзины();
|
||
ПараметрыЗавершение.ПараметрыОперации = ПараметрыОперации;
|
||
|
||
// Замер производительности
|
||
ОбщегоНазначенияБПОКлиент.ЗавершитьЗамерВремениБПО(ИдентификаторЗамера);
|
||
|
||
РезультатВыполнения = Ждать ЗавершениеОперации(ВнешняяКомпонента, ПараметрыЗавершение);
|
||
Иначе
|
||
Возврат РезультатПодключения;
|
||
КонецЕсли;
|
||
|
||
Возврат РезультатВыполнения;
|
||
|
||
КонецФункции
|
||
|
||
// Подключает компоненту и начинает выполнение получения состава корзины
|
||
//
|
||
// Параметры:
|
||
// ОповещениеПриЗавершении - ОписаниеОповещения - событие описания оповещения, описание результата
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации.
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
Асинх Процедура НачатьПолучениеСоставаКорзины(ОповещениеПриЗавершении, ПараметрыОперации) Экспорт
|
||
|
||
РезультатВыполнения = Ждать ПолучениеСоставаКорзиныАсинх(ПараметрыОперации);
|
||
ВыполнитьОбработкуОповещения(ОповещениеПриЗавершении, РезультатВыполнения);
|
||
|
||
КонецПроцедуры
|
||
|
||
// Подключает компоненту и начинает выполнение получение списка сертификатов
|
||
//
|
||
// Параметры:
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
// Возвращаемое значение:
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации
|
||
//
|
||
Асинх Функция ПолучениеСпискаСертификатовАсинх(ПараметрыОперации) Экспорт
|
||
|
||
РезультатПодключения = Ждать ПодключитьКомпонентуИнтеграцииНСПКАсинх(ПараметрыОперации);
|
||
|
||
Если РезультатПодключения.Результат Тогда
|
||
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПроверитьПараметрыОперации(ПараметрыОперации, Истина);
|
||
Если НЕ РезультатВыполнения.Результат Тогда
|
||
Возврат РезультатВыполнения;
|
||
КонецЕсли;
|
||
|
||
// Замер производительности
|
||
КлючеваяОперация = "ОбщийМодуль.ЭлектронныеСертификатыНСПККлиент.ПолучениеСпискаСертификатов";
|
||
ИдентификаторЗамера = ОбщегоНазначенияБПОКлиент.НачатьЗамерВремениБПО(КлючеваяОперация);
|
||
|
||
ВнешняяКомпонента = РезультатПодключения.ВнешняяКомпонента;
|
||
ИдентификаторЗапроса = Строка(ПараметрыОперации.ИдентификаторЗапроса);
|
||
ИдентификаторКассы = ПараметрыОперации.ИдентификаторКассы;
|
||
ХешНомерКарты = ПараметрыОперации.ХешНомерКарты;
|
||
СсылкаНаПлатежныйСчет = ПараметрыОперации.СсылкаНаПлатежныйСчет;
|
||
|
||
РезультатВызова = Ждать ВнешняяКомпонента.ЗапросНаПолучениеСпискаСертификатовАсинх(
|
||
ИдентификаторЗапроса, // Строка
|
||
ИдентификаторКассы, // Строка
|
||
ХешНомерКарты, // Строка
|
||
СсылкаНаПлатежныйСчет); // Строка
|
||
|
||
ПараметрыЗавершение = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперацииНаСервере();
|
||
ПараметрыЗавершение.ТекстРезультата = РезультатВызова.Значение;
|
||
ПараметрыЗавершение.ТипПлатежнойОперации = ЭлектронныеСертификатыНСПККлиентСервер.ТипПлатежнойОперацииПолучениеСпискаСертификатов();
|
||
ПараметрыЗавершение.ПараметрыОперации = ПараметрыОперации;
|
||
|
||
// Замер производительности
|
||
ОбщегоНазначенияБПОКлиент.ЗавершитьЗамерВремениБПО(ИдентификаторЗамера);
|
||
|
||
РезультатВыполнения = Ждать ЗавершениеОперации(ВнешняяКомпонента, ПараметрыЗавершение);
|
||
Иначе
|
||
Возврат РезультатПодключения;
|
||
КонецЕсли;
|
||
|
||
Возврат РезультатВыполнения;
|
||
|
||
КонецФункции
|
||
|
||
// Подключает компоненту и начинает выполнение получение списка сертификатов
|
||
//
|
||
// Параметры:
|
||
// ОповещениеПриЗавершении - ОписаниеОповещения - событие описания оповещения, описание результата
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации.
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
Асинх Процедура НачатьПолучениеСпискаСертификатов(ОповещениеПриЗавершении, ПараметрыОперации) Экспорт
|
||
|
||
РезультатВыполнения = Ждать ПолучениеСпискаСертификатовАсинх(ПараметрыОперации);
|
||
ВыполнитьОбработкуОповещения(ОповещениеПриЗавершении, РезультатВыполнения);
|
||
|
||
КонецПроцедуры
|
||
|
||
// Подключает компоненту и начинает выполнение получение списка идентификаторов корзин покупок ТСП
|
||
//
|
||
// Параметры:
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
// Возвращаемое значение:
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации
|
||
//
|
||
Асинх Функция ПолучениеСпискаИдентификаторовКорзинПокупокТСПАсинх(ПараметрыОперации) Экспорт
|
||
|
||
РезультатПодключения = Ждать ПодключитьКомпонентуИнтеграцииНСПКАсинх(ПараметрыОперации);
|
||
|
||
Если РезультатПодключения.Результат Тогда
|
||
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПроверитьПараметрыОперации(ПараметрыОперации, Истина);
|
||
Если НЕ РезультатВыполнения.Результат Тогда
|
||
Возврат РезультатВыполнения;
|
||
КонецЕсли;
|
||
|
||
// Замер производительности
|
||
КлючеваяОперация = "ОбщийМодуль.ЭлектронныеСертификатыНСПККлиент.ПолучениеСпискаИдентификаторовКорзинПокупокТСП";
|
||
ИдентификаторЗамера = ОбщегоНазначенияБПОКлиент.НачатьЗамерВремениБПО(КлючеваяОперация);
|
||
|
||
ВнешняяКомпонента = РезультатПодключения.ВнешняяКомпонента;
|
||
ИдентификаторЗапроса = Строка(ПараметрыОперации.ИдентификаторЗапроса);
|
||
ИдентификаторКассы = ПараметрыОперации.ИдентификаторКассы;
|
||
ХешНомерКарты = ПараметрыОперации.ХешНомерКарты;
|
||
СсылкаНаПлатежныйСчет = ПараметрыОперации.СсылкаНаПлатежныйСчет;
|
||
КодТовараТРУ = ПараметрыОперации.КодТовараТРУ;
|
||
|
||
РезультатВызова = Ждать ВнешняяКомпонента.ЗапросНаПолучениеСпискаИдентификаторовКорзинПокупокТСПАсинх(
|
||
ИдентификаторЗапроса, // Строка
|
||
ИдентификаторКассы, // Строка
|
||
КодТовараТРУ, // Строка
|
||
ХешНомерКарты, // Строка
|
||
СсылкаНаПлатежныйСчет); // Строка
|
||
|
||
ПараметрыЗавершение = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперацииНаСервере();
|
||
ПараметрыЗавершение.ТекстРезультата = РезультатВызова.Значение;
|
||
ПараметрыЗавершение.ТипПлатежнойОперации = ЭлектронныеСертификатыНСПККлиентСервер.ТипПлатежнойОперацииПолучениеСпискаИдентификаторовКорзинПокупокТСП();
|
||
ПараметрыЗавершение.ПараметрыОперации = ПараметрыОперации;
|
||
|
||
// Замер производительности
|
||
ОбщегоНазначенияБПОКлиент.ЗавершитьЗамерВремениБПО(ИдентификаторЗамера);
|
||
|
||
РезультатВыполнения = Ждать ЗавершениеОперации(ВнешняяКомпонента, ПараметрыЗавершение);
|
||
Иначе
|
||
Возврат РезультатПодключения;
|
||
КонецЕсли;
|
||
|
||
Возврат РезультатВыполнения;
|
||
|
||
КонецФункции
|
||
|
||
// Подключает компоненту и начинает выполнение получение списка идентификаторов корзин покупок ТСП
|
||
//
|
||
// Параметры:
|
||
// ОповещениеПриЗавершении - ОписаниеОповещения - событие описания оповещения, описание результата
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации.
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
Асинх Процедура НачатьПолучениеСпискаИдентификаторовКорзинПокупокТСП(ОповещениеПриЗавершении, ПараметрыОперации) Экспорт
|
||
|
||
РезультатВыполнения = Ждать ПолучениеСпискаИдентификаторовКорзинПокупокТСПАсинх(ПараметрыОперации);
|
||
ВыполнитьОбработкуОповещения(ОповещениеПриЗавершении, РезультатВыполнения);
|
||
|
||
КонецПроцедуры
|
||
|
||
// Выполняет выполнение получения идентификатора корзины
|
||
//
|
||
// Параметры:
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
// Возвращаемое значение:
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации
|
||
//
|
||
Асинх Функция ПолучениеИдентификатораКорзиныАсинх(ПараметрыОперации) Экспорт
|
||
|
||
РезультатПодключения = Ждать ПодключитьКомпонентуИнтеграцииНСПКАсинх(ПараметрыОперации);
|
||
|
||
Если РезультатПодключения.Результат Тогда
|
||
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПроверитьПараметрыОперации(ПараметрыОперации);
|
||
Если НЕ РезультатВыполнения.Результат Тогда
|
||
Возврат РезультатВыполнения;
|
||
КонецЕсли;
|
||
|
||
// Замер производительности
|
||
КлючеваяОперация = "ОбщийМодуль.ЭлектронныеСертификатыНСПККлиент.ПолучениеИдентификатораКорзины";
|
||
ИдентификаторЗамера = ОбщегоНазначенияБПОКлиент.НачатьЗамерВремениБПО(КлючеваяОперация);
|
||
|
||
ВнешняяКомпонента = РезультатПодключения.ВнешняяКомпонента;
|
||
ИдентификаторЗапроса = ПараметрыОперации.ИдентификаторЗапроса;
|
||
ИдентификаторКассы = ПараметрыОперации.ИдентификаторКассы;
|
||
НомерФискальногоНакопителя = ПараметрыОперации.НомерФискальногоНакопителя;
|
||
ФискальныйПризнакЧека = ПараметрыОперации.ФискальныйПризнакЧека;
|
||
ФискальныйЧекНомер = ПараметрыОперации.ФискальныйЧекНомер;
|
||
|
||
Если НЕ ПустаяСтрока(ПараметрыОперации.QRКодЧекаККТ) Тогда
|
||
ДанныеШтрихкода = ОборудованиеЧекопечатающиеУстройстваКлиентСервер.РасшифроватьQRКодЧекаККТ(ПараметрыОперации.QRКодЧекаККТ);
|
||
Если ДанныеШтрихкода.Расшифрован Тогда
|
||
НомерФискальногоНакопителя = ДанныеШтрихкода.НомерФискальногоНакопителя;
|
||
ФискальныйПризнакЧека = ДанныеШтрихкода.ФискальныйПризнак;
|
||
ФискальныйЧекНомер = ДанныеШтрихкода.НомерФискальногоДокумента;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
ФискальныйПризнакЧека = Строка(ФискальныйПризнакЧека);
|
||
ФискальныйЧекНомер = Формат(Число(ФискальныйЧекНомер), "ЧГ=0");
|
||
|
||
РезультатВызова = Ждать ВнешняяКомпонента.ЗапросНаПолучениеИдентификатораКорзиныОперацииПокупкиАсинх(
|
||
ИдентификаторЗапроса, // Строка
|
||
ИдентификаторКассы, // Строка
|
||
НомерФискальногоНакопителя, // Строка
|
||
ФискальныйЧекНомер, // Строка
|
||
ФискальныйПризнакЧека); // Строка
|
||
|
||
ПараметрыЗавершение = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперацииНаСервере();
|
||
ПараметрыЗавершение.ТекстРезультата = РезультатВызова.Значение;
|
||
ПараметрыЗавершение.ТипПлатежнойОперации = ЭлектронныеСертификатыНСПККлиентСервер.ТипПлатежнойОперацииПолучениеИдентификатораОперации();
|
||
ПараметрыЗавершение.ПараметрыОперации = ПараметрыОперации;
|
||
|
||
// Замер производительности
|
||
ОбщегоНазначенияБПОКлиент.ЗавершитьЗамерВремениБПО(ИдентификаторЗамера);
|
||
|
||
РезультатВыполнения = Ждать ЗавершениеОперации(ВнешняяКомпонента, ПараметрыЗавершение);
|
||
Иначе
|
||
Возврат РезультатПодключения;
|
||
КонецЕсли;
|
||
|
||
Возврат РезультатВыполнения;
|
||
|
||
КонецФункции
|
||
|
||
// Подключает компоненту и начинает выполнение получения идентификатора корзины
|
||
//
|
||
// Параметры:
|
||
// ОповещениеПриЗавершении - ОписаниеОповещения - событие описания оповещения, описание результата
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации.
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
Асинх Процедура НачатьПолучениеИдентификатораКорзины(ОповещениеПриЗавершении, ПараметрыОперации) Экспорт
|
||
|
||
РезультатВыполнения = Ждать ПолучениеИдентификатораКорзиныАсинх(ПараметрыОперации);
|
||
ВыполнитьОбработкуОповещения(ОповещениеПриЗавершении, РезультатВыполнения);
|
||
|
||
КонецПроцедуры
|
||
|
||
// Выполняет передачу данных фискального чека
|
||
//
|
||
// Параметры:
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
// Возвращаемое значение:
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации
|
||
//
|
||
Асинх Функция ПередачаДанныхФискальногоЧекаАсинх(ПараметрыОперации) Экспорт
|
||
|
||
РезультатПодключения = Ждать ПодключитьКомпонентуИнтеграцииНСПКАсинх(ПараметрыОперации);
|
||
|
||
Если РезультатПодключения.Результат Тогда
|
||
|
||
РезультатВыполнения = ЭлектронныеСертификатыНСПККлиентСервер.ПроверитьПараметрыОперации(ПараметрыОперации);
|
||
Если НЕ РезультатВыполнения.Результат Тогда
|
||
Возврат РезультатВыполнения;
|
||
КонецЕсли;
|
||
|
||
// Замер производительности
|
||
КлючеваяОперация = "ОбщийМодуль.ЭлектронныеСертификатыНСПККлиент.ПередачаДанныхФискальногоЧека";
|
||
ИдентификаторЗамера = ОбщегоНазначенияБПОКлиент.НачатьЗамерВремениБПО(КлючеваяОперация);
|
||
|
||
ВнешняяКомпонента = РезультатПодключения.ВнешняяКомпонента;
|
||
ИдентификаторЗапроса = ПараметрыОперации.ИдентификаторЗапроса;
|
||
ИдентификаторКассы = ПараметрыОперации.ИдентификаторКассы;
|
||
ИдентификаторКорзины = ПараметрыОперации.ИдентификаторКорзины;
|
||
НомерФискальногоНакопителя = Строка(ПараметрыОперации.НомерФискальногоНакопителя);
|
||
ФискальныйТипРасчета = Число(ОборудованиеЧекопечатающиеУстройстваКлиентСервер.КодРасчетаДенежнымиСредствами(ПараметрыОперации.ФискальныйТипРасчета));
|
||
ФискальныйПризнакЧека = Строка(ПараметрыОперации.ФискальныйПризнакЧека);
|
||
ФискальныйЧекНомер = Формат(Число(ПараметрыОперации.ФискальныйЧекНомер), "ЧГ=0");
|
||
ФискальныйЧекСумма = Формат(ПараметрыОперации.ФискальныйЧекСумма, "ЧГ=0;ЧДЦ=2;ЧРД=.");
|
||
ФискальныйМестоРасчетов = Строка(ПараметрыОперации.ФискальныйМестоРасчетов);
|
||
// АПК: 1367-выкл особенность локального законодательства
|
||
Если ПараметрыОперации.ПротоколОбмена = ПредопределенноеЗначение("Перечисление.ПротоколОбменаФЭСНСПК.ВерсияV2") Тогда
|
||
ФискальныйЧекДатаВремя = Формат(ПараметрыОперации.ФискальныйЧекДатаВремя, "ДФ=""ггггММддTЧЧмм""");
|
||
Иначе
|
||
ФискальныйЧекДатаВремя = Формат(ПараметрыОперации.ФискальныйЧекДатаВремя, "ДФ=""ггггММддЧЧмм""");
|
||
КонецЕсли;
|
||
// АПК: 1367
|
||
|
||
РезультатВызова = Ждать ВнешняяКомпонента.ПередачаДанныхФискальногоЧекаАсинх(
|
||
ИдентификаторЗапроса, // Строка
|
||
ИдентификаторКассы, // Строка
|
||
ИдентификаторКорзины, // Строка
|
||
НомерФискальногоНакопителя, // Строка
|
||
ФискальныйЧекНомер, // Строка
|
||
ФискальныйПризнакЧека, // Строка
|
||
ФискальныйЧекСумма, // Строка
|
||
ФискальныйЧекДатаВремя, // Строка
|
||
ФискальныйТипРасчета, // Число
|
||
ФискальныйМестоРасчетов); // Строка
|
||
|
||
ПараметрыЗавершение = ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперацииНаСервере();
|
||
ПараметрыЗавершение.ТекстРезультата = РезультатВызова.Значение;
|
||
ПараметрыЗавершение.ТипПлатежнойОперации = ЭлектронныеСертификатыНСПККлиентСервер.ТипПлатежнойОперацииПередачаДанныхФискальногоЧека();
|
||
ПараметрыЗавершение.ПараметрыОперации = ПараметрыОперации;
|
||
ПараметрыЗавершение.ОснованиеФискальнойОперации = ПараметрыОперации.ОснованиеФискальнойОперации;
|
||
|
||
// Замер производительности
|
||
ОбщегоНазначенияБПОКлиент.ЗавершитьЗамерВремениБПО(ИдентификаторЗамера);
|
||
|
||
РезультатВыполнения = Ждать ЗавершениеОперации(ВнешняяКомпонента, ПараметрыЗавершение);
|
||
Иначе
|
||
Возврат РезультатПодключения;
|
||
КонецЕсли;
|
||
|
||
Возврат РезультатВыполнения;
|
||
|
||
КонецФункции
|
||
|
||
// Подключает компоненту и начинает передача данных фискального чека
|
||
//
|
||
// Параметры:
|
||
// ОповещениеПриЗавершении - ОписаниеОповещения - событие описания оповещения, описание результата
|
||
// см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыВыполненияОперации.
|
||
// ПараметрыОперации - см. ЭлектронныеСертификатыНСПККлиентСервер.ПараметрыОперацииНСПК
|
||
//
|
||
Асинх Процедура НачатьПередачуДанныхФискальногоЧека(ОповещениеПриЗавершении, ПараметрыОперации) Экспорт
|
||
|
||
РезультатВыполнения = Ждать ПередачаДанныхФискальногоЧекаАсинх(ПараметрыОперации);
|
||
ВыполнитьОбработкуОповещения(ОповещениеПриЗавершении, РезультатВыполнения);
|
||
|
||
КонецПроцедуры
|
||
|
||
#КонецОбласти
|
||
|
||
#Область СлужебныеПроцедурыИФункции
|
||
|
||
Асинх Функция ЗавершениеОперации(ВнешняяКомпонента, ПараметрыЗавершение)
|
||
|
||
РезультатВызова = Ждать ВнешняяКомпонента.ПолучитьСписокОшибокАсинх();
|
||
Если РезультатВызова <> Неопределено Тогда
|
||
ПараметрыЗавершение.СписокОшибок = РезультатВызова.Значение;
|
||
КонецЕсли;
|
||
|
||
Возврат ЭлектронныеСертификатыНСПКВызовСервера.ОбработатьДанныеОперации(ПараметрыЗавершение);
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти |