При переходе на требования 54-ФЗ и подключении современных фискальных регистраторов (например, АТОЛ 11Ф) к конфигурации 1С:Розница 2.2 пользователи нередко сталкиваются с ошибкой при попытке открыть смену. Тест устройства в обработке подключения оборудования проходит без нареканий, однако при выполнении операции открытия смены в режиме РМК система выдает исключение вида ОбъектДрайвера.ОткрытьСмену: недостаточно фактических параметров в общем модуле ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.
Разберем детально, почему возникает данная коллизия, как устроено взаимодействие конфигурации с драйверами торгового оборудования и какими способами можно устранить возникшую неполадку.
Проанализируем архитектуру вызова драйвера в 1С. Основная причина кроется в несоответствии стандартов Библиотеки подключаемого оборудования (БПО) и версий внешних компонент драйвера АТОЛ (ДТО):
ОткрытьСмену ожидал только один аргумент — идентификатор устройства. В новых версиях драйверов АТОЛ (под 54-ФЗ и требования БПО 2.x) сигнатура метода была расширена до трех параметров: идентификатор устройства, номер смены и номер документа. При вызове обновленной внешней компоненты старым программным кодом возникает системная ошибка несоответствия количества параметров.Посмотрим на проблемный участок типового кода, где происходит прерывание:
// Ветка на новый стандарт 1.4. Поддержка команды драйвера "ОткрытьСмену".
Если ПараметрыПодключения.Свойство("РевизияИнтерфейса") И ПараметрыПодключения.РевизияИнтерфейса > 1004 Тогда
Попытка
Ответ = ОбъектДрайвера.ОткрытьСмену(ПараметрыПодключения.ИДУстройства);
Если НЕ Ответ Тогда
Результат = Ложь;
ВыходныеПараметры.Очистить();
ВыходныеПараметры.Добавить(999);
ВыходныеПараметры.Добавить("");
ОбъектДрайвера.ПолучитьОшибку(ВыходныеПараметры[1]);
КонецЕсли
Исключение
Результат = Ложь;
ВыходныеПараметры.Очистить();
ВыходныеПараметры.Добавить(999);
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.ОткрытьСмену>.'") + Символы.ПС + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Наиболее правильным и долгосрочным решением является обновление конфигурации до релиза 2.2.5 или выше. Начиная с этой версии разработчики 1С:
После обновления достаточно удалить старое устройство из списка фискальных регистраторов, создать новое оборудование с типом «ККТ с передачей данных», выбрать актуальный драйвер АТОЛ и заново выполнить настройку параметров связи.
Если конфигурация уже снята с поддержки или оперативное обновление всей базы невозможно, скорректируем код вызова метода вручную. Разберем по шагам, как исправить сигнатуру метода в конфигураторе:
ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.Посмотрим на пример правильной передачи параметров в метод:
НомерСмены = 0;
НомерДокумента = 0;
Ответ = ОбъектДрайвера.ОткрытьСмену(ПараметрыПодключения.ИДУстройства, НомерСмены, НомерДокумента);
При такой передаче драйвер АТОЛ корректно принимает три аргумента, выполняет команду на фискальном накопителе и возвращает заполненные значения номера смены и фискального документа.
Если изменения в конфигурацию вносить нельзя, а обновление базы отложено, можно установить ту версию драйвера АТОЛ, которая поставлялась в макетах конфигурации версии 2.2.4. Для этого используем встроенные макеты драйверов из состава конфигурации, не устанавливая внешние дистрибутивы новых версий ДТО с сайта производителя до момента общего обновления платформы и прикладного решения.
При попытке обновить старую базу до релиза 2.2.5 можно столкнуться со следующей ошибкой валидации схемы XDTO:
Ошибка отображения типов: Отображение типа 'Строка' в тип '{http://v8.1c.ru/8.1/data/ui}Color' (Значение: {http://v8.1c.ru/8.1/data/ui/style}ПросроченнаяЗадача)
Выясним причину: в одной из схем компоновки данных (СКД) или динамических списков конфигурации элемент условного оформления ПросроченнаяЗадача был сериализован в XML-структуре как строковый литерал вместо типа Цвет.
Для успешного обновления применим следующие рекомендации:
.cfu), а через полный файл поставки нужного релиза (.cf).ПросроченнаяЗадача в условном оформлении, сбрасываем и повторно выбираем цвет оформления, после чего сохраняем конфигурацию базы данных.Часто в розничных точках возникает задача совмещения фискализации (например, разделение продаж алкогольной и продуктовой продукции на разные организации или аппараты). В конфигурации «1С:Розница 2» эта задача решается штатными средствами без необходимости дублирования рабочих мест пользователей.
Для корректной работы используем механизм «Распределение продаж по кассам ККМ». В настройках задаем правила распределения товаров по складам, организациям и кассовым аппаратам. В этом случае при закрытии чека в едином окне РМК система автоматически сформирует и фискализирует отдельные чеки на соответствующих кассовых устройствах.