Небольшая доработка УТ 10.3 для открытия денежного ящика из 1С для онлайн ККТ (ШТРИХ-М-01-Ф, ШТРИХ-М-02-Ф)

Актуально для релиза: 10.3.41.1.
Доработка УТ 10.3 для открытия денежного ящика из 1С для онлайн ККТ (ШТРИХ-М-01-Ф, ШТРИХ-М-02-Ф) + немного доработанная обработка обслуживания с функцией открытия денежного ящика.

Для открытия денежного ящика на форму чека ККМ "ФормаРегистрацииПродаж" нужно добавить кнопку, в обработчике прописать:

Процедура ДействияФормыОткрытьДенежныйЯщик(Кнопка)

Если мФУ <> Неопределено Тогда
Результат = ПолучитьСерверТО().ОткрытьДенежныйЯщик(мФУ);
Если ЗначениеЗаполнено(Результат) Тогда
ТекстОшибки = ПолучитьСерверТО().ПолучитьТекстОшибкиФРТО(Результат);
Предупреждение(ТекстОшибки);
КонецЕсли;
КонецЕсли;

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

В переменной мФУ должен быть идентификатор ККТ.

В модуль объекта обработки "ТОСервер" добавить функцию:

Функция ОткрытьДенежныйЯщик(Идентификатор) Экспорт

Обработка = Неопределено;
Объект    = Неопределено;
Результат = ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект);

Если Не ЗначениеЗаполнено(Результат) Тогда
Результат = Обработка.ОткрытьДенежныйЯщик(Объект);
мОписаниеОшибки = Объект.ОписаниеОшибки;
Иначе
мОписаниеОшибки = ПолучитьТекстОшибкиПодключенияТО("ФР");
КонецЕсли;

Возврат Результат;

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

В обработке обслуживания ShtrihMkkt.epf уже есть готовая функция ОткрытьДенежныйЯщик.

1 Comment

  1. heroinepta

    И для открытия через форму документа ЧекККМ нужно на ней дополнительно добавить:

    //Для открытия денежного ящика
    Перем мФУ;
    Перем мВидФУ;
    
    Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    
    //Для открытия денежного ящика
    ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);
    
    Запрос = Новый Запрос(»
    |ВЫБРАТЬ
    | НастройкиПользователей.Значение
    |ИЗ
    | РегистрСведений.НастройкиПользователей КАК НастройкиПользователей
    |ГДЕ
    | НастройкиПользователей.Пользователь = &Пользователь
    | И НастройкиПользователей.Настройка  = &Настройка
    |»);
    
    Запрос.УстановитьПараметр(«Пользователь», ПараметрыСеанса.ТекущийПользователь);
    Запрос.УстановитьПараметр(«Настройка»   , ПланыВидовХарактеристик.НастройкиПользователей.ОсновнаяКассаККМ);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    КассаККМ = Выборка.Значение;
    КонецЕсли;
    
    МассивФР  = ПолучитьСерверТО().ПолучитьСписокУстройств(
    Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор,
    КассаККМ);
    МассивККТ = ПолучитьСерверТО().ПолучитьСписокУстройств(
    Перечисления.ВидыТорговогоОборудования.ККТ,
    КассаККМ);
    МассивФУ = Новый Массив();
    ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивФУ, МассивФР);
    ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивФУ, МассивККТ);
    КоличествоФУ = МассивФУ.Количество();
    
    Если КоличествоФУ = 0
    И Не КассаККМ.ФормироватьНефискальныеЧеки Тогда
    Предупреждение(«Фискальный регистратор не подключен!»);
    Отказ = Истина;
    Возврат;
    ИначеЕсли КоличествоФУ = 1 Тогда
    мФУ = МассивФУ[0];
    ИначеЕсли КоличествоФУ > 1 Тогда
    СписокФУ = РаботаСТорговымОборудованием.ПолучитьСписокУстройствТОДляВыбора(МассивФУ);
    
    мФУ = СписокФУ.ВыбратьЭлемент(«Необходимо выбрать фискальный регистратор:»);
    Если мФУ = Неопределено Тогда
    Предупреждение(«Выбор фискального регистратора не был осуществлен.
    |Продолжение работы невозможно.»);
    Отказ = Истина;
    Возврат;
    КонецЕсли;
    мФУ = мФУ.Значение;
    КонецЕсли;
    
    мВидФУ = ПолучитьСерверТО().ПолучитьВид(мФУ);
    
    Если УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной(«глТекущийПользователь»), «ПарольАдминистратораФискальногоРегистратора») <> 0 Тогда
    ЭлементыФормы.НадписьТекущийПользователь.Заголовок = «Администратор: » + глЗначениеПеременной(«глТекущийПользователь»);
    ИначеЕсли УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной(«глТекущийПользователь»), «ПарольКассираФискальногоРегистратора») <> 0 Тогда
    ЭлементыФормы.НадписьТекущийПользователь.Заголовок = «Кассир: » + глЗначениеПеременной(«глТекущийПользователь»);
    КонецЕсли;
    
    КонецПроцедуры // ПередОткрытием()

    Показать

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *