Обработчик драйвера фискального регистратора МИНИ-ФП
// общая функция через которую выполняется вызов методов | |
// | |
функция ВыполнитьМетодБиблиотеки(объектДрайвера, ИмяМетода, Параметры = неопределено) | |
Результат = Истина; | |
ОписаниеОшибки = ""; | |
СтрокаВызова=СокрЛП(имяМетода)+";"; | |
Если ИмяМетода = "open_port" Тогда | |
СтрокаВызова = СтрокаВызова + строка(Параметры.Порт) + ";115200;"; | |
ИначеЕсли ИмяМетода = "cashier_registration" Тогда | |
СтрокаВызова = СтрокаВызова + "1;0;"; | |
ИначеЕсли ИмяМетода = "execute_Z_report" ИЛИ ИмяМетода = "execute_X_report" Тогда | |
СтрокаВызова = СтрокаВызова + "12321;"; | |
Иначе | |
Если Параметры = Неопределено тогда | |
Параметры = новый Структура; | |
конецЕсли; | |
Для Каждого ЭлементПараметра из Параметры цикл | |
СтрокаВызова = СтрокаВызова + строка(ЭлементПараметра.Значение)+";"; | |
КонецЦикла; | |
КонецЕсли; | |
//--- Вызов метода библиотеки --- | |
Если имяМетода = "open_port" тогда | |
объектДрайвера.T400me("set_error_log;0"); | |
объектДрайвера.T400me(СтрокаВызова); | |
Если НЕ Число(объектДрайвера.get_last_error) = 0 тогда // --- 2 попытка | |
объектДрайвера.T400me(СтрокаВызова); | |
get_last_error = Число(объектДрайвера.get_last_error); | |
Если НЕ get_last_error = 0 тогда | |
Результат = Ложь; | |
СообщитьПредставлениеОшибки(ИмяМетода, get_last_error); | |
КонецЕсли; | |
КонецЕсли; | |
иначе //--- собственно сам вызов метода --- | |
объектДрайвера.T400me(СтрокаВызова); | |
get_last_error = Число(объектДрайвера.get_last_error); | |
Если НЕ get_last_error = 0 тогда // --- 2 раз | |
Результат = Ложь; | |
СообщитьПредставлениеОшибки(ИмяМетода, get_last_error); | |
КонецЕсли; | |
КонецЕсли; | |
Возврат Результат; | |
Конецфункции | |
Процедура СообщитьПредставлениеОшибки(ИмяМетода, Значение) | |
//--- по номеру ошибки выводим ее описание --- | |
Если Значение = 0 Тогда ТекстОшибки = "Нет ошибок"; | |
ИначеЕсли Значение = 1 Тогда ТекстОшибки = "Ошибки канала связи РРО №1 нет возможности запустить команду"; | |
ИначеЕсли Значение = 2 Тогда ТекстОшибки = "Ошибки канала связи РРО №2 'невозможно обработать команду '"; | |
ИначеЕсли Значение = 3 Тогда ТекстОшибки = "Ошибки канала связи РРО №3 'код команды отсутствует '"; | |
ИначеЕсли Значение = 4 Тогда ТекстОшибки = "Ошибки канала связи РРО №4 'много данных в команде '"; | |
ИначеЕсли Значение = 5 Тогда ТекстОшибки = "Ошибки канала связи РРО №5 'недостаточно данных в команде '"; | |
ИначеЕсли Значение = 6 Тогда ТекстОшибки = "Ошибки канала связи РРО №6 'ошибка при приеме данных '"; | |
ИначеЕсли Значение = 7 Тогда ТекстОшибки = "Ошибки канала связи РРО №7 'недопустимый идентификатор команды '"; | |
ИначеЕсли Значение = 8 Тогда ТекстОшибки = "Ошибки канала связи РРО №8 'невозможно выполнить команду '"; | |
ИначеЕсли Значение = 10 Тогда ТекстОшибки = "Ошибки канала связи РРО №10 'Ошибка ввода '"; | |
ИначеЕсли Значение = 11 Тогда ТекстОшибки = "Ошибки обработки команды РРО №11 'необходимо снять z1 отчет '"; | |
ИначеЕсли Значение = 12 Тогда ТекстОшибки = "Ошибки обработки команды РРО №12 'скидки/наценки запрещены '"; | |
ИначеЕсли Значение = 13 Тогда ТекстОшибки = "Ошибки обработки команды РРО №13 'переполнение по чеку '"; | |
ИначеЕсли Значение = 14 Тогда ТекстОшибки = "Ошибки обработки команды РРО №14 'команда запрещена '"; | |
ИначеЕсли Значение = 15 Тогда ТекстОшибки = "Ошибки обработки команды РРО №15 'кассир не зарегистрирован '"; | |
ИначеЕсли Значение = 16 Тогда ТекстОшибки = "Ошибки обработки команды РРО №16 'отрицательная сумма '"; | |
ИначеЕсли Значение = 17 Тогда ТекстОшибки = "Ошибки обработки команды РРО №17 'количество товара отрицательное '"; | |
ИначеЕсли Значение = 18 Тогда ТекстОшибки = "Ошибки обработки команды РРО №18 'время смены исчерпано '"; | |
ИначеЕсли Значение = 19 Тогда ТекстОшибки = "Ошибки обработки команды РРО №19 'неверный тип оплаты '"; | |
ИначеЕсли Значение = 20 Тогда ТекстОшибки = "Ошибки обработки команды РРО №20 'неправильная или отсутствующая цена '"; | |
ИначеЕсли Значение = 21 Тогда ТекстОшибки = "Ошибки обработки команды РРО №21 'неверный параметр на входе команды '"; | |
ИначеЕсли Значение = 22 Тогда ТекстОшибки = "Ошибки обработки команды РРО №22 'товар находится в открытом чеке, нельзя редактировать '"; | |
ИначеЕсли Значение = 23 Тогда ТекстОшибки = "Ошибки обработки команды РРО №23 'некорректно запрограммированный товар '"; | |
ИначеЕсли Значение = 24 Тогда ТекстОшибки = "Ошибки обработки команды РРО №24 'неверный или отсутствующий штрих-код товара '"; | |
ИначеЕсли Значение = 27 Тогда ТекстОшибки = "Ошибки обработки команды РРО №27 'неверный или отсутствующий код товара '"; | |
ИначеЕсли Значение = 28 Тогда ТекстОшибки = "Ошибки обработки команды РРО №28 'товар не весовой(штучный) '"; | |
ИначеЕсли Значение = 29 Тогда ТекстОшибки = "Ошибки обработки команды РРО №29 'ФП почти заполнена '"; | |
ИначеЕсли Значение = 30 Тогда ТекстОшибки = "Ошибки обработки команды РРО №30 'ФП заполнена '"; | |
ИначеЕсли Значение = 31 Тогда ТекстОшибки = "Ошибки обработки команды РРО №31 'память инициализаций заполнена '"; | |
ИначеЕсли Значение = 32 Тогда ТекстОшибки = "Ошибки обработки команды РРО №32 'есть отложенная операция, оплата запрещена '"; | |
ИначеЕсли Значение = 33 Тогда ТекстОшибки = "Ошибки обработки команды РРО №33 'карточка клиента не принята '"; | |
ИначеЕсли Значение = 34 Тогда ТекстОшибки = "Ошибки обработки команды РРО №34 'не хватает денег на сдачу '"; | |
ИначеЕсли Значение = 35 Тогда ТекстОшибки = "Ошибки обработки команды РРО №35 'запрещена комбинированная оплата '"; | |
ИначеЕсли Значение = 36 Тогда ТекстОшибки = "Ошибки обработки команды РРО №36 'неправильный номер кассира '"; | |
ИначеЕсли Значение = 37 Тогда ТекстОшибки = "Ошибки обработки команды РРО №37 'места недостаточно '"; | |
ИначеЕсли Значение = 38 Тогда ТекстОшибки = "Ошибки обработки команды РРО №38 'нет места в Журнале '"; | |
ИначеЕсли Значение = 39 Тогда ТекстОшибки = "Ошибки обработки команды РРО №39 'нет места в базе товаров '"; | |
ИначеЕсли Значение = 40 Тогда ТекстОшибки = "Ошибки обработки команды РРО №40 'нет места в Архиве '"; | |
ИначеЕсли Значение = 41 Тогда ТекстОшибки = "Ошибки обработки команды РРО №41 'запрещено, товар является комплексом '"; | |
ИначеЕсли Значение = 42 Тогда ТекстОшибки = "Ошибки обработки команды РРО №42 'код не принадлежит комплексу '"; | |
ИначеЕсли Значение = 43 Тогда ТекстОшибки = "Ошибки обработки команды РРО №43 'ЭККА занят и не может выполнить команду '"; | |
ИначеЕсли Значение = 44 Тогда ТекстОшибки = "Ошибки обработки команды РРО №44 'необходимо снять 501 отчет '"; | |
ИначеЕсли Значение = 45 Тогда ТекстОшибки = "Ошибки обработки команды РРО №45 'неправильный пароль кассира '"; | |
ИначеЕсли Значение = 46 Тогда ТекстОшибки = "Ошибки обработки команды РРО №46 'комплекс невозможно продать '"; | |
ИначеЕсли Значение = 47 Тогда ТекстОшибки = "Ошибки обработки команды РРО №47 'цена товара определена '"; | |
ИначеЕсли Значение = 48 Тогда ТекстОшибки = "Ошибки обработки команды РРО №48 'отмена запрещена '"; | |
ИначеЕсли Значение = 49 Тогда ТекстОшибки = "Ошибки обработки команды РРО №49 'продажа товара запрещена '"; | |
ИначеЕсли Значение = 50 Тогда ТекстОшибки = "Ошибки обработки команды РРО №50 'ошибка чтения ФП '"; | |
ИначеЕсли Значение = 51 Тогда ТекстОшибки = "Ошибки обработки команды РРО №51 'номер производителя неверен '"; | |
ИначеЕсли Значение = 52 Тогда ТекстОшибки = "Ошибки обработки команды РРО №52 'ошибка записи во флеш '"; | |
ИначеЕсли Значение = 54 Тогда ТекстОшибки = "Ошибки обработки команды РРО №54 'удаление товара запрещено '"; | |
ИначеЕсли Значение = 55 Тогда ТекстОшибки = "Ошибки обработки команды РРО №55 'нет данных в фискальной памяти '"; | |
ИначеЕсли Значение = 56 Тогда ТекстОшибки = "Ошибки обработки команды РРО №56 'неправильный пароль налогового инспектора '"; | |
ИначеЕсли Значение = 57 Тогда ТекстОшибки = "Ошибки обработки команды РРО №57 'не готов выполнить команду '"; | |
ИначеЕсли Значение = 58 Тогда ТекстОшибки = "Ошибки обработки команды РРО №58 'неправильный пароль администратора '"; | |
ИначеЕсли Значение = 60 Тогда ТекстОшибки = "Ошибки обработки команды РРО №60 'РРО заблокирован (72 часа не было передачи данных) '"; | |
ИначеЕсли Значение = 61 Тогда ТекстОшибки = "Ошибки обработки команды РРО №61 'РРО не персонализован '"; | |
ИначеЕсли Значение = 70 Тогда ТекстОшибки = "Ошибки обработки команды РРО №70 'отсутсвует вал термоголовки '"; | |
ИначеЕсли Значение = 79 Тогда ТекстОшибки = "Ошибки обработки команды РРО №79 'дата сервисного обслуживания превышена '"; | |
ИначеЕсли Значение = 80 Тогда ТекстОшибки = "Ошибки обработки команды РРО №80 'ошибка записи в ФП '"; | |
ИначеЕсли Значение = 81 Тогда ТекстОшибки = "Ошибки обработки команды РРО №81 'ошибка часов '"; | |
ИначеЕсли Значение = 82 Тогда ТекстОшибки = "Ошибки обработки команды РРО №82 'ошибка данных в интерфейсе '"; | |
ИначеЕсли Значение = 86 Тогда ТекстОшибки = "Ошибки обработки команды РРО №82 'отсутствует индикатор клиента '"; | |
ИначеЕсли Значение = 97 Тогда ТекстОшибки = "Ошибки обработки команды РРО №97 'отсутствует бумага '"; | |
ИначеЕсли Значение = 300 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №300 'неверная команда '"; | |
ИначеЕсли Значение = 301 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №301 'ошибка порта '"; | |
ИначеЕсли Значение = 302 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №302 'неверные параметры '"; | |
ИначеЕсли Значение = 303 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №303 'неверное количество параметров '"; | |
ИначеЕсли Значение = 304 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №304 'ошибка данных '"; | |
ИначеЕсли Значение = 305 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №305 'порт закрыт '"; | |
ИначеЕсли Значение = 306 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №306 'нет данных '"; | |
ИначеЕсли Значение = 307 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №307 'не поддерживается '"; | |
ИначеЕсли Значение = 308 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №308 'касса не доступна '"; | |
ИначеЕсли Значение = 309 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №309 'неизвестный код ошибки '"; | |
ИначеЕсли Значение = 310 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №310 'запись запрещена '"; | |
ИначеЕсли Значение = 311 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №311 'ошибка чтения '"; | |
ИначеЕсли Значение = 312 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №312 'ошибка записи '"; | |
ИначеЕсли Значение = 313 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №313 'неправильная запись НДС '"; | |
ИначеЕсли Значение = 314 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №314 'операция отменена '"; | |
ИначеЕсли Значение = 315 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №315 'неправильная модель кассового аппарата '"; | |
ИначеЕсли Значение = 316 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №316 'данные не существуют '"; | |
ИначеЕсли Значение = 317 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №317 'кассовый аппарат отключен '"; | |
ИначеЕсли Значение = 318 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №318 'файл не найден '"; | |
ИначеЕсли Значение = 319 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №319 'присутствует ошибка '"; | |
ИначеЕсли Значение = 320 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №320 'неверные данные '"; | |
ИначеЕсли Значение = 321 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №321 'команда отключена '"; | |
ИначеЕсли Значение = 322 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №322 'будет доступно в следующих версиях '"; | |
ИначеЕсли Значение = 323 Тогда ТекстОшибки = "Ошибки DLL-библиотеки №323 'принтер не готов '"; | |
Иначе ТекстОшибки = "код " + строка(Значение); | |
КонецЕсли; | |
ТекстОшибки = "Ошибка выполнения команды '" + ИмяМетода + "': " + ТекстОшибки; | |
Сообщить(ТекстОшибки, СтатусСообщения.Важное); | |
КонецПроцедуры | |
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ";") Экспорт | |
МассивСтрок = Новый Массив(); | |
Если Разделитель = " " Тогда | |
Стр = СокрЛП(Стр); | |
Пока Истина Цикл | |
Поз = Найти(Стр,Разделитель); | |
Если Поз=0 Тогда | |
МассивСтрок.Добавить(Стр); | |
Возврат МассивСтрок; | |
КонецЕсли; | |
МассивСтрок.Добавить(Лев(Стр,Поз-1)); | |
Стр = СокрЛ(Сред(Стр,Поз)); | |
КонецЦикла; | |
Иначе | |
ДлинаРазделителя = СтрДлина(Разделитель); | |
Пока Истина Цикл | |
Поз = Найти(Стр,Разделитель); | |
Если Поз=0 Тогда | |
МассивСтрок.Добавить(Стр); | |
Возврат МассивСтрок; | |
КонецЕсли; | |
МассивСтрок.Добавить(Лев(Стр,Поз-1)); | |
Стр = Сред(Стр,Поз+ДлинаРазделителя); | |
КонецЦикла; | |
КонецЕсли; | |
КонецФункции | |
Функция ОставитьТолькоЦифры(стр_) | |
Стр = "0"; | |
Для а = 1 По СтрДлина(стр_) Цикл | |
КодСимвола = КодСимвола(Сред(стр_, а, 1)); | |
Цифра = Сред(стр_, а, 1); | |
Если (КодСимвола >= 48 И КодСимвола <= 57) Тогда | |
Стр = Стр + Цифра; | |
КонецЕсли; | |
КонецЦикла; | |
Возврат Формат(Число(Стр),"ЧГ=");; | |
КонецФункции | |
Функция РазностьВремени(Время1, Время2); | |
Разность = Время1 - Время2; | |
Если Разность > 0 Тогда | |
Часов = Цел(Разность / 3600); | |
Минут = Цел((Разность - Часов * 3600) / 60); | |
Возврат Дата(1, 1, 1, Часов, Минут, 0); | |
Иначе | |
Возврат Дата(1,1,1,0,0,0); | |
КонецЕсли; | |
КонецФункции | |
функция РегистрацияКассира(объектДрайвера, Параметры) | |
Результат = ВыполнитьМетодБиблиотеки(объектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
Результат = ВыполнитьМетодБиблиотеки(объектДрайвера,"cashier_registration",Параметры); | |
Если НЕ Результат Тогда | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"cancel_receipt"); | |
Если Результат Тогда | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"cut_paper"); | |
КонецЕсли; | |
КонецЕсли; | |
КонецЕсли; | |
//-- порт открывается только в момент вызова методов | |
ВыполнитьМетодБиблиотеки(объектДрайвера,"close_port"); | |
Возврат Результат; | |
КонецФункции | |
/////////////////////////////////////////////////////////////////////////////// | |
// ПРОГРАММНЫЙ ИНТЕРФЕЙС | |
// Функция возвращает возможность работы модуля в асинхронном режиме. | |
// Стандартные команды модуля: | |
// - ПодключитьУстройство | |
// - ОтключитьУстройство | |
// - ВыполнитьКоманду | |
// Команды модуля для работы асинхронном режиме (должны быть определены): | |
// - НачатьПодключениеУстройства | |
// - НачатьОтключениеУстройства | |
// - НачатьВыполнениеКоманды | |
// | |
Функция ПоддержкаАсинхронногоРежима() Экспорт | |
Возврат Ложь; | |
КонецФункции | |
/////////////////////////////////////////////////////////////////////////////// | |
// ПРОГРАММНЫЙ ИНТЕРФЕЙС | |
// Функция осуществляет подключение устройства. | |
// | |
// Параметры: | |
// ОбъектДрайвера - <*> | |
// - ОбъектДрайвера драйвера торгового оборудования. | |
// | |
// Возвращаемое значение: | |
// <Булево> - Результат работы функции. | |
// | |
Функция ПодключитьУстройство(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) Экспорт | |
ВыходныеПараметры = Новый Массив(); | |
ПараметрыПодключения.Вставить("ИДУстройства", Неопределено); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если НЕ Результат Тогда | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
КонецЕсли; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет отключение устройства. | |
// | |
// Параметры: | |
// ОбъектДрайвера - <*> | |
// - ОбъектДрайвера драйвера торгового оборудования. | |
// | |
// Возвращаемое значение: | |
// <Булево> - Результат работы функции. | |
// | |
Функция ОтключитьУстройство(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) Экспорт | |
Результат = Истина; | |
ВыходныеПараметры = Новый Массив(); | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Возврат Результат; | |
КонецФункции | |
// Функция получает, обрабатывает и перенаправляет на исполнение команду к драйверу | |
// | |
Функция ВыполнитьКоманду(Команда, ВходныеПараметры = Неопределено, ВыходныеПараметры = Неопределено, | |
ОбъектДрайвера, Параметры, ПараметрыПодключения) Экспорт | |
Перем ТипШтрихКода; | |
Результат = Истина; | |
ВыходныеПараметры = Новый Массив(); | |
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩИЕ ДЛЯ ВСЕХ ТИПОВ ДРАЙВЕРОВ | |
// Тестирование устройства | |
Если Команда = "ТестУстройства" ИЛИ Команда = "CheckHealth" Тогда | |
Результат = ТестУстройства(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// Получение версии драйвера | |
ИначеЕсли Команда = "ПолучитьВерсиюДрайвера" ИЛИ Команда = "GetVersion" Тогда | |
Результат = ПолучитьВерсиюДрайвера(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// Получение описание драйвера | |
ИначеЕсли Команда = "ПолучитьОписаниеДрайвера" ИЛИ Команда = "GetDescription" Тогда | |
Результат = ПолучитьОписаниеДрайвера(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩИЕ ДЛЯ РАБОТЫ С ФИСКАЛЬНЫМИ РЕГИСТРАТОРАМИ | |
// Открыть смену | |
ИначеЕсли Команда = "OpenShift" ИЛИ Команда = "OpenDay" ИЛИ Команда = "ОткрытьСмену" Тогда | |
Результат = ОткрытьСмену(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
ИначеЕсли Команда = "CloseShift" ИЛИ Команда = "ЗакрытьСмену" Тогда | |
Результат = НапечататьОтчетСГашением(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// Печать отчета без гашения | |
ИначеЕсли Команда = "PrintXReport" ИЛИ Команда = "НапечататьОтчетБезГашения" Тогда | |
Результат = НапечататьОтчетБезГашения(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// Печать отчета с гашением | |
ИначеЕсли Команда = "PrintZReport" ИЛИ Команда = "НапечататьОтчетСГашением" Тогда | |
Результат = НапечататьОтчетСГашением(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// Печать чека | |
ИначеЕсли Команда = "PrintReceipt" ИЛИ Команда = "ПечатьЧека" Тогда | |
Результат = ПечатьЧека(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры); | |
// Печать слип чека | |
ИначеЕсли Команда = "PrintText" ИЛИ Команда = "ПечатьТекста" Тогда | |
СтрокаТекста = ВходныеПараметры[0]; | |
Результат = ПечатьТекста(ОбъектДрайвера, Параметры, ПараметрыПодключения, | |
СтрокаТекста, ВыходныеПараметры); | |
// Отменить открытый чек | |
ИначеЕсли Команда = "OpenCheck" ИЛИ Команда = "ОткрытьЧек" Тогда | |
ЧекВозврата = ВходныеПараметры[0]; | |
ФискальныйЧек = ВходныеПараметры[1]; | |
Результат = ОткрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ЧекВозврата, ФискальныйЧек, ВыходныеПараметры); | |
// Отменить открытый чек | |
ИначеЕсли Команда = "CancelCheck" ИЛИ Команда = "ОтменитьЧек" Тогда | |
Результат = ОтменитьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// Печать чека внесения/выемки | |
ИначеЕсли Команда = "Encash" ИЛИ Команда = "Инкассация" Тогда | |
ТипИнкассации = ?(ВходныеПараметры.Свойство("ТипИнкассации"), ВходныеПараметры.ТипИнкассации, 0); | |
Сумма = ?(ВходныеПараметры.Свойство("Сумма"), ВходныеПараметры.Сумма, 0); | |
Результат = Инкассация(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТипИнкассации, Сумма, ВыходныеПараметры); | |
ИначеЕсли Команда = "PrintBarCode" ИЛИ Команда = "ПечатьШтрихкода" Тогда | |
ТипШтрихКода = ВходныеПараметры[0]; | |
ШтрихКод = ВходныеПараметры[1]; | |
Результат = ПечатьШтрихкода(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТипШтрихКода, ШтрихКод, ВыходныеПараметры); | |
// Открытие денежного ящика | |
ИначеЕсли Команда = "OpenCashDrawer" ИЛИ Команда = "ОткрытьДенежныйЯщик" Тогда | |
Результат = ОткрытьДенежныйЯщик(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// Получение ширины строки в символах | |
ИначеЕсли Команда = "GetLineLength" ИЛИ Команда = "ПолучитьШиринуСтроки" Тогда | |
Результат = ПолучитьШиринуСтроки(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// Печать переодического отчета по датам | |
ИначеЕсли Команда = "PrintPReportDate" ИЛИ Команда = "НапечататьПериодическийОтчетПоДатам" Тогда | |
Результат = НапечататьПериодическийОтчетПоДатам(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры); | |
// Печать периодического отчета по номерам | |
ИначеЕсли Команда = "PrintPReportNumber" ИЛИ Команда = "НапечататьПериодическийОтчетПоНомерам" Тогда | |
Результат = НапечататьПериодическийОтчетПоНомерам(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры); | |
// Печать нулевого чека | |
ИначеЕсли Команда = "PrintNullReceipt" ИЛИ Команда = "НапечататьНулевойЧек" Тогда | |
Результат = НапечататьНулевойЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// Печать отчета о проданных товарах | |
ИначеЕсли Команда = "PrintSoldReport" ИЛИ Команда = "НапечататьОтчетОПроданныхТоварах" Тогда | |
Результат = НапечататьОтчетОПроданныхТоварах(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// Вывод информации на дисплей | |
ИначеЕсли Команда = "DisplayText" ИЛИ Команда = "ВывестиИнформациюНаДисплейПокупателя" Тогда | |
Результат = ВывестиИнформациюНаДисплейПокупателя(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры); | |
// Очистка дисплея | |
ИначеЕсли Команда = "ClearText" ИЛИ Команда = "ОчиститьДисплейПокупателя" Тогда | |
Результат = ОчиститьДисплейПокупателя(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// Указанная команда не поддерживается данным драйвером | |
Иначе | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Команда ""%Команда%"" не поддерживается данным драйвером.';uk='Команда ""%Команда%"" не підтримується цим драйвером.'")); | |
ВыходныеПараметры[1] = СтрЗаменить(ВыходныеПараметры[1], "%Команда%", Команда); | |
Результат = Ложь; | |
//> | |
КонецЕсли; | |
Возврат Результат; | |
КонецФункции | |
/////////////////////////////////////////////////////////////////////////////// | |
// Процедуры и функции общие для работы с фискальными регистраторами | |
// Функция осуществляет открытие смены | |
// | |
Функция ОткрытьСмену(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) | |
Результат = Истина; | |
ВыходныеПараметры.Очистить(); | |
ОписаниеОшибки = ""; | |
Результат = РегистрацияКассира(объектДрайвера, Параметры); | |
Если НЕ Результат Тогда | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
Иначе | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(ОбщегоНазначенияКлиент.ДатаСеанса()); | |
КонецЕсли; | |
Возврат Результат; | |
КонецФункции | |
// Осуществляет печать фискального чека | |
// | |
Функция ПечатьЧека(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры) | |
//Возврат МенеджерОборудованияКлиентПереопределяемый.ПечатьЧека(UnisystemФискальныйРегистратор, | |
// ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры); | |
ОбщиеПараметры = ВходныеПараметры[2]; | |
ТаблицаНоменклатуры = ВходныеПараметры[0]; | |
ТаблицаОплат = ВходныеПараметры[1]; | |
ТаблицаДопРеквизитов = Новый Массив; | |
ТаблицаДопРеквизитов.Добавить(Новый Массив); | |
//ТипРасчета = МенеджерОборудованияКлиентСервер.КодРасчетаДенежнымиСредствами(ВходныеПараметры.ТипРасчета); | |
ТипЧека = ОбщиеПараметры[0] = 1; | |
Результат = Истина; | |
// Открываем чек | |
Результат = ОткрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, | |
ТипЧека, Истина, ВыходныеПараметры); | |
// Печатаем строки чека | |
Если Результат Тогда | |
ОшибкаПриПечатиСтроки = Ложь; | |
// Печатаем строки чека | |
Для ИндексМассива = 0 По ТаблицаНоменклатуры.Количество() - 1 Цикл | |
Наименование = ТаблицаНоменклатуры[ИндексМассива][0].Значение; | |
Количество = ТаблицаНоменклатуры[ИндексМассива][5].Значение; | |
Цена = ТаблицаНоменклатуры[ИндексМассива][4].Значение; | |
ПроцентСкидки = ТаблицаНоменклатуры[ИндексМассива][8].Значение; | |
Сумма = ТаблицаНоменклатуры[ИндексМассива][9].Значение; | |
НомерСекции = ТаблицаНоменклатуры[ИндексМассива][3].Значение; | |
СтавкаНДС = ТаблицаНоменклатуры[ИндексМассива][12].Значение; | |
ТаблицаДопРеквизитов[0].Очистить(); | |
ТаблицаДопРеквизитов[0].Добавить(ТаблицаНоменклатуры[ИндексМассива][17].Значение); | |
ТаблицаДопРеквизитов[0].Добавить(ТаблицаНоменклатуры[ИндексМассива][18].Значение); | |
ДопРеквизиты = МенеджерОборудованияВызовСервера.СформироватьТаблицуДопРеквизитов(ТаблицаДопРеквизитов); | |
Если НЕ НапечататьФискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения, | |
Наименование, Количество, Цена, ПроцентСкидки, Сумма, | |
НомерСекции, СтавкаНДС, ДопРеквизиты, ВыходныеПараметры) Тогда | |
ОшибкаПриПечатиСтроки = Истина; | |
Прервать; | |
КонецЕсли; | |
КонецЦикла; | |
Если НЕ ОшибкаПриПечатиСтроки Тогда | |
// Закрываем чек | |
Результат = ЗакрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТаблицаОплат, ВыходныеПараметры, Истина); | |
Иначе | |
Результат = Ложь; | |
КонецЕсли; | |
КонецЕсли; | |
Возврат Результат; | |
КонецФункции | |
// Осуществляет печать текста | |
// | |
Функция ПечатьТекста(ОбъектДрайвера, Параметры, ПараметрыПодключения, | |
СтрокаТекста, ВыходныеПараметры) | |
Результат = Истина; | |
// | |
//// Открываем чек | |
//Результат = ОткрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, Ложь, Ложь, ВыходныеПараметры); | |
// | |
//// Печатаем строки чека | |
//Если Результат Тогда | |
// Для НомерСтроки = 1 По СтрЧислоСтрок(СтрокаТекста) Цикл | |
// ВыделеннаяСтрока = СтрПолучитьСтроку(СтрокаТекста, НомерСтроки); | |
// | |
// Если (Найти(ВыделеннаяСтрока, "[отрезка]") > 0) | |
// Или (Найти(ВыделеннаяСтрока, "[cut]") > 0) Тогда | |
// ТаблицаОплат = Новый Массив(); | |
// Результат = ЗакрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТаблицаОплат, ВыходныеПараметры, Ложь); | |
// Результат = ОткрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, Ложь, Ложь, ВыходныеПараметры); | |
// Иначе | |
// Если НЕ НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения, | |
// ВыделеннаяСтрока, ВыходныеПараметры, Ложь) Тогда | |
// Прервать; | |
// КонецЕсли; | |
// КонецЕсли; | |
// | |
// КонецЦикла; | |
//КонецЕсли; | |
// | |
//// Закрываем чек | |
//Если Результат Тогда | |
// ТаблицаОплат = Новый Массив(); | |
// Результат = ЗакрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТаблицаОплат, ВыходныеПараметры, Ложь); | |
//КонецЕсли; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет открытие нового чека | |
// | |
Функция ОткрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ЧекВозврата, ФискальныйЧек, ВыходныеПараметры) Экспорт | |
Результат = Истина; | |
НомерСмены = 0; | |
НомерЧека = 0; | |
Результат = РегистрацияКассира(объектДрайвера, Параметры); | |
Попытка | |
//--- порт закроется только после закрытия чека | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
стрПараметров = новый структура("открытьЧекПродажиВозврата", ?(ЧекВозврата, 1, 0)); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_receipt", стрПараметров); | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
Иначе | |
// Заполнение выходных параметров | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(НомерСмены); | |
ВыходныеПараметры.Добавить(НомерЧека); | |
ВыходныеПараметры.Добавить(0); // Номер документа | |
ВыходныеПараметры.Добавить(ОбщегоНазначенияКлиент.ДатаСеанса()); | |
КонецЕсли; | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.ОткрытьЧек>:';uk='Помилка виклику методу <ОбъектДрайвера.ОткрытьЧек>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет закрытие ранее открытого чека | |
// | |
Функция ЗакрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТаблицаОплат, ВыходныеПараметры, ФискальныйЧек = Истина) Экспорт | |
Результат = Истина; | |
СуммаНаличнойОплаты = 0; | |
СуммаБезналичнойОплаты = 0; | |
Для ИндексОплаты = 0 По ТаблицаОплат.Количество() - 1 Цикл | |
Если ТаблицаОплат[ИндексОплаты][0].Значение = 0 Тогда | |
СуммаНаличнойОплаты = СуммаНаличнойОплаты + ТаблицаОплат[ИндексОплаты][1].Значение; | |
ИначеЕсли ТаблицаОплат[ИндексОплаты][0].Значение = 1 Тогда | |
СуммаБезналичнойОплаты = СуммаБезналичнойОплаты + ТаблицаОплат[ИндексОплаты][1].Значение; | |
ИначеЕсли ТаблицаОплат[ИндексОплаты][0].Значение = 2 Тогда | |
СуммаБезналичнойОплаты = СуммаБезналичнойОплаты + ТаблицаОплат[ИндексОплаты][1].Значение; | |
Иначе | |
СуммаБезналичнойОплаты = СуммаБезналичнойОплаты + ТаблицаОплат[ИндексОплаты][1].Значение; | |
КонецЕсли; | |
КонецЦикла; | |
Попытка | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port", Параметры); | |
Если СуммаНаличнойОплаты <> 0 И Результат Тогда | |
стрПараметров = новый структура("ТипОплаты,СуммаОплаты",0,СокрЛП(Формат(число(СуммаНаличнойОплаты),"ЧГ=0;ЧН=0"))); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"pay", стрПараметров); | |
КонецЕсли; | |
Если СуммаБезналичнойОплаты <> 0 И Результат Тогда | |
стрПараметров = новый структура("ТипОплаты,СуммаОплаты",2,СокрЛП(Формат(число(СуммаБезналичнойОплаты),"ЧГ=0;ЧН=0"))); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"pay", стрПараметров); | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
ОтменитьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
КонецЕсли | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.ЗакрытьЧек>:';uk='Помилка виклику методу <ОбъектДрайвера.ЗакрытьЧек>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет отмену ранее открытого чека. | |
// | |
Функция ОтменитьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) Экспорт | |
Результат = Истина; | |
Попытка | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"cancel_receipt"); | |
Если Результат Тогда | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"cut_paper"); | |
КонецЕсли; | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.ОтменитьЧек>:';uk='Помилка виклику методу <ОбъектДрайвера.ОтменитьЧек>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет снятие отчета без гашения | |
// | |
Функция НапечататьОтчетБезГашения(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) | |
Результат = Истина; | |
РегистрацияКассира(объектДрайвера, Параметры); | |
Попытка | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"execute_X_report"); | |
//Если Результат Тогда | |
// //---- для того чтоб увидеть когда передавался в налоговую отчет | |
// стрПараметров = новый структура("айди,Двойка","id",2); | |
// Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"execute_report",стрПараметров); | |
// //--- команда распечатать после Х отчета данны об отправке в ДПС --- | |
// стрПараметров = новый структура("ТипОперации",3); | |
// ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"dps",стрПараметров); | |
// ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"cut_paper"); | |
//КонецЕсли; | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
Иначе | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(ОбщегоНазначенияКлиент.ДатаСеанса()); | |
КонецЕсли; | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.НапечататьОтчетБезГашения>:';uk='Помилка виклику методу <ОбъектДрайвера.НапечататьОтчетБезГашения>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет снятие отчета с гашением | |
// | |
Функция НапечататьОтчетСГашением(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) | |
Результат = Истина; | |
РегистрацияКассира(объектДрайвера, Параметры); | |
Попытка | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"execute_Z_report"); | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
Иначе | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(ОбщегоНазначенияКлиент.ДатаСеанса()); | |
КонецЕсли; | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.НапечататьОтчетСГашением>:';uk='Помилка виклику методу <ОбъектДрайвера.НапечататьОтчетСГашением>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет печать фискальной строки | |
// | |
Функция НапечататьФискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения, | |
Наименование, Количество, Цена, ПроцентСкидки, Сумма, | |
НомерСекции, СтавкаНДС, ДопРеквизиты, ВыходныеПараметры) Экспорт | |
Результат = Истина; | |
ТаблицаСоответствий = Новый Массив; | |
Отдел = "1"; | |
КодТовара = ТекущаяДата()-НачалоДня(ТекущаяДата()); | |
Если Параметры.Свойство("КодТовара") ТОгда | |
КодТовара = Параметры.КодТовара + 1; | |
КонецЕсли; | |
Параметры.Вставить("КодТовара",КодТовара); | |
//КодТовара = UnisystemФискальныйРегистраторВызовСервера.ПолучитьКодНоменклатурыПоНаименованию(Наименование) ; | |
Наименование = СтрЗаменить(Наименование,";"," "); | |
СуммоваяСкидка = Окр(Количество*Цена - Сумма, 2); | |
// вычисление значений Налоговой группы для продажи товара | |
НалоговаяГруппа = 0; | |
ДопРеквизиты = МенеджерОборудованияВызовСервера.ПолучитьТаблицуДопРеквизитов(ДопРеквизиты); | |
Параметры.Свойство("ТаблицаСоответствийНалоговыхГрупп", ТаблицаСоответствий); | |
Для каждого Строка из ТаблицаСоответствий Цикл | |
Если Строка[1] = ДопРеквизиты[0] И Строка[2] = ДопРеквизиты[1] Тогда | |
НалоговаяГруппа = Строка[0]; | |
Прервать; | |
КонецЕсли; | |
КонецЦикла; | |
ПОПЫТКА | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
//---- продажа товара | |
стрПараметров = новый структура("КодТовара,НалСтав,ШтучВес,РазрЗапрПрод,РазрЗапрПодсчет,ОдинПродЗапрет,Отдел,Цена,Штрихкод,Наименование,КоличествоОстаток", | |
Формат(КодТовара,"ЧГ=0;"), НалоговаяГруппа,0,0,1,0,Отдел,0,0,Наименование,0); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"add_plu",стрПараметров); | |
Если Результат Тогда | |
стрПараметров = новый структура("ДобавОтмена,ПродКодШтрихкод,ПродПоОткрытЦене,Количество,кодТовара,ЦенаТовара", | |
0,0,1,СокрЛП(Формат(число(Количество),"ЧГ=0;ЧН=0")),Формат(КодТовара,"ЧГ=0;"),СокрЛП(Формат(число(Цена),"ЧГ=0;ЧН=0"))); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"sale_plu",стрПараметров); | |
Если Результат И СуммоваяСкидка>0 Тогда | |
стрПараметров = новый структура("ТипОперации,ВидОперации,ЗнакОперации,ЗначениеСкидки",0,0,1,Формат(СуммоваяСкидка,"ЧГ=0;ЧН=0")); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"discount_surcharge",стрПараметров); | |
КонецЕсли; | |
Если НЕ Результат Тогда | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"cancel_receipt"); | |
КонецЕсли; | |
КонецЕсли; | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
ПолучитьОшибку(ОбъектДрайвера, ВыходныеПараметры[1]); | |
ОтменитьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
КонецЕсли; | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.НапечататьФискСтроку>:';uk='Помилка виклику методу <ОбъектДрайвера.НапечататьФискСтроку>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет печать нефискальной строки | |
// | |
Функция НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения, СтрокаТекста, ВыходныеПараметры, ФискальныйЧек = Ложь) Экспорт | |
Результат = Истина; | |
//Попытка | |
// Ответ = ПодключаемоеОборудованиеАртСофтФискальныйРегистраторИнтерфейсВК.НапечататьНефискСтроку(ОбъектДрайвера, СтрокаТекста, ФискальныйЧек); | |
// Если НЕ Ответ Тогда | |
// Результат = Ложь; | |
// ВыходныеПараметры.Очистить(); | |
// ВыходныеПараметры.Добавить(999); | |
// ВыходныеПараметры.Добавить(""); | |
// ПодключаемоеОборудованиеАртСофтФискальныйРегистраторИнтерфейсВК.ПолучитьОшибку(ОбъектДрайвера, ВыходныеПараметры[1]); | |
// ОтменитьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
// КонецЕсли; | |
//Исключение | |
// Результат = Ложь; | |
// ВыходныеПараметры.Очистить(); | |
// ВыходныеПараметры.Добавить(999); | |
// ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.НапечататьНефискСтроку>:';uk='Помилка виклику методу <ОбъектДрайвера.НапечататьНефискСтроку>:'") + ОписаниеОшибки()); | |
//КонецПопытки; | |
// | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет внесение или выемку суммы | |
// | |
Функция Инкассация(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТипИнкассации, Сумма, ВыходныеПараметры) | |
Результат = Истина; | |
РегистрацияКассира(объектДрайвера, Параметры); | |
Попытка | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
стрПараметров = новый структура("ТипОплаты,ФлагЗаменыТекстаСообщения,ФлагКомментария,СлужебныйвносВынос,Сумма, Комментарий,СтрокаОписания",0,0,0,ТипИнкассации,СокрЛП(Формат(число(Сумма),"ЧГ=0;ЧН=0")),""); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"in_out",стрПараметров); | |
Если Результат Тогда | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"cut_paper"); | |
КонецЕсли; | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
Иначе | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(ОбщегоНазначенияКлиент.ДатаСеанса()); | |
КонецЕсли; | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.НапечататьЧекВнесенияВыемки>:';uk='Помилка виклику методу <ОбъектДрайвера.НапечататьЧекВнесенияВыемки>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет печать штрихкода | |
// | |
Функция ПечатьШтрихкода(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТипШтрихКода, ШтрихКод, ВыходныеПараметры) | |
Результат = Истина; | |
//Попытка | |
// Ответ = ПодключаемоеОборудованиеАртСофтФискальныйРегистраторИнтерфейсВК.НапечататьШтрихКод(ОбъектДрайвера, ТипШтрихКода, ШтрихКод); | |
// Если НЕ Ответ Тогда | |
// Результат = Ложь; | |
// ВыходныеПараметры.Очистить(); | |
// ВыходныеПараметры.Добавить(999); | |
// ВыходныеПараметры.Добавить(""); | |
// ПодключаемоеОборудованиеАртСофтФискальныйРегистраторИнтерфейсВК.ПолучитьОшибку(ОбъектДрайвера, ВыходныеПараметры[1]); | |
// КонецЕсли; | |
//Исключение | |
// Результат = Ложь; | |
// ВыходныеПараметры.Очистить(); | |
// ВыходныеПараметры.Добавить(999); | |
// ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.НапечататьШтрихКод>:';uk='Помилка виклику методу <ОбъектДрайвера.НапечататьШтрихКод>:'") + ОписаниеОшибки()); | |
//КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет открытие денежного ящика | |
// | |
Функция ОткрытьДенежныйЯщик(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) | |
Результат = Истина; | |
Попытка | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"Результат"); | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
КонецЕсли; | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.ОткрытьДенежныйЯщик>:';uk='Помилка виклику методу <ОбъектДрайвера.ОткрытьДенежныйЯщик>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция получает ширину строки в символах | |
// | |
Функция ПолучитьШиринуСтроки(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) | |
Результат = Истина; | |
ШиринаСтроки = 34; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(ШиринаСтроки); | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет печать периодического отчёта по датам. | |
// | |
Функция НапечататьПериодическийОтчетПоДатам(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры) | |
Результат = Истина; | |
РегистрацияКассира(объектДрайвера, Параметры); | |
Попытка | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
стрПараметров = новый структура("КодОтчета,ПарольСтКассира, ДатаНачала, ДатаОкончания", | |
"702","36963", | |
Формат(ВходныеПараметры[0], "ДФ=dd/MM/yyyy"), | |
Формат(ВходныеПараметры[1], "ДФ=dd/MM/yyyy")); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"execute_report",стрПараметров); | |
Если Результат Тогда | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"cut_paper"); | |
КонецЕсли; | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
Иначе | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(ОбщегоНазначенияКлиент.ДатаСеанса()); | |
КонецЕсли; | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.НапечататьОтчетСГашением>:';uk='Помилка виклику методу <ОбъектДрайвера.НапечататьОтчетСГашением>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет печать периодического отчёта по номерам дневных отчетов. | |
// | |
Функция НапечататьПериодическийОтчетПоНомерам(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры) | |
Результат = Истина; | |
РегистрацияКассира(объектДрайвера, Параметры); | |
Попытка | |
//Ответ = ПодключаемоеОборудованиеАртСофтФискальныйРегистраторИнтерфейсВК.НапечататьПериодическийОтчетПоНомерам(ОбъектДрайвера, ВходныеПараметры[0], ВходныеПараметры[1], Ложь); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
стрПараметров = новый структура("КодОтчета,ПарольСтКассира, НачНомер, КонНомер", | |
"704","36963", | |
Формат(ВходныеПараметры[0], "ЧН=0; ЧГ=0"), | |
Формат(ВходныеПараметры[1], "ЧН=0; ЧГ=0")); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"execute_report",стрПараметров); | |
Если Результат Тогда | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"cut_paper"); | |
КонецЕсли; | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
ПолучитьОшибку(ОбъектДрайвера, ВыходныеПараметры[1]); | |
Иначе | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(ОбщегоНазначенияКлиент.ДатаСеанса()); | |
КонецЕсли; | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.НапечататьОтчетСГашением>:';uk='Помилка виклику методу <ОбъектДрайвера.НапечататьОтчетСГашением>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет печать нулевого чека. | |
// | |
Функция НапечататьНулевойЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) | |
Результат = Истина; | |
РегистрацияКассира(объектДрайвера, Параметры); | |
Попытка | |
//Ответ = ПодключаемоеОборудованиеАртСофтФискальныйРегистраторИнтерфейсВК.НапечататьНулевойЧек(ОбъектДрайвера); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"print_empty_receipt"); | |
Если Результат Тогда | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"cut_paper"); | |
КонецЕсли; | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
Иначе | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(ОбщегоНазначенияКлиент.ДатаСеанса()); | |
КонецЕсли; | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.НапечататьОтчетСГашением>:';uk='Помилка виклику методу <ОбъектДрайвера.НапечататьОтчетСГашением>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет печать отчёта о проданных товарах. | |
// | |
Функция НапечататьОтчетОПроданныхТоварах(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) | |
Результат = Истина; | |
РегистрацияКассира(объектДрайвера, Параметры); | |
Попытка | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
стрПараметров = новый структура("КодОтчета,ПарольСтКассира,НачКод,КонКод", | |
"Z3","36963","1", "999999"); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"execute_report",стрПараметров); | |
Если Результат Тогда | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"cut_paper"); | |
КонецЕсли; | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
Иначе | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(ОбщегоНазначенияКлиент.ДатаСеанса()); | |
КонецЕсли; | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.НапечататьОтчетСГашением>:';uk='Помилка виклику методу <ОбъектДрайвера.НапечататьОтчетСГашением>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет вывод информации на дисплей покупателя. | |
// | |
Функция ВывестиИнформациюНаДисплейПокупателя(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры) | |
Результат = Истина; | |
ДлинаПоля = ?(Параметры.Модель="501",16,20); // 16 для модели МІНІ-ФП54.01 | |
СтрокаТекста = ВходныеПараметры[0]; | |
//СтрокаСуммы = ?(ВходныеПараметры.Количество() >= 2, ВходныеПараметры[1], "0"); | |
МассивСтрок = Новый Массив(); | |
МассивСтрок.Добавить(МенеджерОборудованияКлиентСервер.ПостроитьПоле(СтрПолучитьСтроку(СтрокаТекста, 1), ДлинаПоля)); | |
МассивСтрок.Добавить(МенеджерОборудованияКлиентСервер.ПостроитьПоле(СтрПолучитьСтроку(СтрокаТекста, 2), ДлинаПоля)); | |
Попытка | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
стрПараметров = новый структура("Строка1,Строка2",МассивСтрок[0], МассивСтрок[1]); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"indicate",стрПараметров); | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если НЕ Результат Тогда | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(""); | |
ПолучитьОшибку(ОбъектДрайвера, ВыходныеПараметры[1]); | |
Иначе | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(0); | |
ВыходныеПараметры.Добавить(ОбщегоНазначенияКлиент.ДатаСеанса()); | |
КонецЕсли; | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.ВывестиСтрокуНаДисплейПокупателя>:';uk='Помилка виклику методу <ОбъектДрайвера.ВывестиСтрокуНаДисплейПокупателя>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция осуществляет очистку дисплея покупателя. | |
// | |
Функция ОчиститьДисплейПокупателя(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) | |
Результат = Истина; | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"open_port",Параметры); | |
Если Результат Тогда | |
стрПараметров = новый структура("Строка1,Строка2","", ""); | |
Результат = ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"indicate",стрПараметров); | |
КонецЕсли; | |
ВыполнитьМетодБиблиотеки(ОбъектДрайвера,"close_port"); | |
Если Не Результат Тогда | |
Результат = Ложь; | |
ОбъектДрайвера.ПолучитьОшибку(ОбъектДрайвера.ОписаниеОшибки); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(ОбъектДрайвера.ОписаниеОшибки); | |
КонецЕсли; | |
Возврат Результат; | |
КонецФункции | |
////////////////////////////////////////////////////////////////////////////// | |
// Процедуры и функции общие для всех типов драйверов | |
// Функция осуществляет тестирование устройства. | |
// | |
Функция ТестУстройства(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) | |
Результат = Истина; | |
РезультатТеста = ""; | |
АктивированДемоРежим = ""; | |
Попытка | |
Результат = ПодключитьУстройство(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры); | |
Если Результат Тогда | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(0); | |
Иначе | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
КонецЕсли; | |
ВыходныеПараметры.Добавить(РезультатТеста); | |
ВыходныеПараметры.Добавить(АктивированДемоРежим); | |
Исключение | |
Результат = Ложь; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(999); | |
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.ТестУстройства>:';uk='Помилка виклику методу <ОбъектДрайвера.ТестУстройства>:'") + ОписаниеОшибки()); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция возвращает версию установленного драйвера | |
// | |
Функция ПолучитьВерсиюДрайвера(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) | |
Результат = Истина; | |
ВыходныеПараметры.Добавить(НСтр("ru='Установлен';uk='Встановлений'")); | |
ВыходныеПараметры.Добавить(НСтр("ru='Не определена';uk='Не визначена'")); | |
Попытка | |
ВыходныеПараметры[1] = "0.1"; | |
Исключение | |
Результат = Ложь; | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
// Функция возвращает описание установленного драйвера | |
// | |
Функция ПолучитьОписаниеДрайвера(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры) | |
Результат = Истина; | |
ВыходныеПараметры.Очистить(); | |
ВыходныеПараметры.Добавить(НСтр("ru='Установлен';uk='Встановлений'")); | |
ВыходныеПараметры.Добавить(НСтр("ru='Не определена';uk='Не визначена'")); | |
ВыходныеПараметры.Добавить(НСтр("ru='Не определено';uk='Не визначено'")); | |
ВыходныеПараметры.Добавить(НСтр("ru='Не определено';uk='Не визначено'")); | |
ВыходныеПараметры.Добавить(НСтр("ru='Не определено';uk='Не визначено'")); | |
ВыходныеПараметры.Добавить(Неопределено); | |
ВыходныеПараметры.Добавить(Неопределено); | |
ВыходныеПараметры.Добавить(Неопределено); | |
ВыходныеПараметры.Добавить(Неопределено); | |
ВыходныеПараметры.Добавить(Неопределено); | |
ВыходныеПараметры.Добавить(Неопределено); | |
НаименованиеДрайвера = ""; | |
ОписаниеДрайвера = ""; | |
ТипОборудования = ""; | |
ИнтеграционнаяБиблиотека = ""; | |
ОсновнойДрайверУстановлен = ""; | |
РевизияИнтерфейса = ""; | |
URLЗагрузкиДрайвера = ""; | |
ПараметрыДрайвера = ""; | |
ДополнительныеДействия = ""; | |
Попытка | |
// Получаем версию драйвера | |
ВерсияДрайвера = "0.1"; | |
ВыходныеПараметры[1] = ВерсияДрайвера; | |
// Получаем описание драйвера | |
ПолучитьОписание(ОбъектДрайвера, | |
НаименованиеДрайвера, | |
ОписаниеДрайвера, | |
ТипОборудования, | |
РевизияИнтерфейса, | |
ИнтеграционнаяБиблиотека, | |
ОсновнойДрайверУстановлен, | |
URLЗагрузкиДрайвера); | |
ВыходныеПараметры[2] = НаименованиеДрайвера; | |
ВыходныеПараметры[3] = ОписаниеДрайвера; | |
ВыходныеПараметры[4] = ТипОборудования; | |
ВыходныеПараметры[5] = РевизияИнтерфейса; | |
ВыходныеПараметры[6] = ИнтеграционнаяБиблиотека; | |
ВыходныеПараметры[7] = ОсновнойДрайверУстановлен; | |
ВыходныеПараметры[8] = URLЗагрузкиДрайвера; | |
// Получаем описание драйвера | |
ВыходныеПараметры[9] = ""; | |
// Получаем дополнительные действия | |
ВыходныеПараметры[10] = ""; | |
Исключение | |
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru='Ошибка получения описания драйвера';uk='Помилка отримання опису драйвера'")); | |
КонецПопытки; | |
Возврат Результат; | |
КонецФункции | |
Функция ПолучитьОписание(ОбъектДрайвера, Наименование, Описание, ТипОборудования, РевизияИнтерфейса, ИнтеграционнаяБиблиотека, ОсновнойДрайверУстановлен, ПолучитьURLCкачивания) Экспорт | |
Наименование = "Unisystem: Универсальный драйвер фискальных регистраторов"; | |
Описание = "OLE-сервер Unisystem Универсальный драйвер РРО – предназначена для работы прикладных программ с украинскими фискальными регистраторами в операционных системах MS Windows"; | |
ТипОборудования = "ФискальныйРегистратор"; | |
ИнтеграционнаяБиблиотека = "ecrT400.dll"; | |
РевизияИнтерфейса = "1.0"; | |
ОсновнойДрайверУстановлен = Истина; | |
ПолучитьURLCкачивания = "http://unisystem.ua/wp-content/uploads/2016/11/OLE_ecrT400_dll_v1_3_24_720.zip"; | |
КонецФункции | |
Функция ПолучитьОшибку(ОбъектДрайвера, ОписаниеОшибки) | |
ОписаниеОшибки = ""; | |
Возврат ОбъектДрайвера.get_last_error; | |
КонецФункции |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment