Как подключить одну кассу Атол 30Ф к двум рабочим местам 1С

Системный администратор 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Ситуация, когда необходимо использовать одну фискальную технику на два отдела или два рабочих места, встречается довольно часто. Основная сложность с моделью Атол 30Ф заключается в том, что это бюджетное устройство, лишенное встроенного порта Ethernet. Оно подключается по USB, что по умолчанию подразумевает работу только с одним компьютером. Однако, проанализировав технические возможности современных драйверов и механизмы 1С, мы можем реализовать схему одновременной работы двух баз «1С:Розница» с одним устройством — для решения этой задачи есть готовое решение для печати чеков из нескольких баз 1С на одну кассу.

В данной статье мы разберем несколько проверенных способов решения этой задачи: от настройки встроенных служб драйвера Атол до программных правок логики работы со сменами.

Способ 1. Использование «Сервера удаленного подключения» в ДТО 10

Начиная с версии драйверов 10.8, компания Атол внедрила механизм, который позволяет превратить обычную USB-кассу в сетевое устройство. Это самый современный и стабильный способ — альтернативно для этой задачи подойдёт программа Сервер ККМ для сетевого подключения касс. Рассмотрим алгоритм настройки:

  1. Настройка «Сервера» (ПК, к которому касса подключена физически):
    1. Установим драйвер ККТ версии 10.8 или выше.
    2. Запустим «Тест драйвера ККТ» и перейдем в раздел «Свойства».
    3. В настройках связи выберем USB и убедимся, что касса видна.
    4. Включим опцию «Разрешить удаленные подключения» (или запустим службу Atol Remote Server). По умолчанию сервер использует порт 6220.
    5. Важно: в брандмауэре Windows необходимо создать разрешающее правило для входящих подключений по порту 6220.
  2. Настройка «Клиента» (второй ноутбук):
    1. Установим аналогичную версию драйвера ККТ.
    2. В настройках подключаемого оборудования 1С выберем драйвер Атол 10.
    3. В параметрах подключения укажем «Способ связи» — TCP/IP — для настройки связи подойдёт утилита для подключения касс Атол через TCP/IP и RDP.
    4. В поле «IP-адрес» введем сетевой адрес первого компьютера, а в поле «Порт» — 6220.

Проанализируем главный нюанс этого метода: чтобы обе базы не конфликтовали за порт, в настройках 1С (на обоих рабочих местах) обязательно должен быть установлен флаг «Отключаться от ККТ после каждой операции». Это позволяет драйверу захватывать кассу только на доли секунды в момент печати чека и сразу освобождать её для другого пользователя.

Способ 2. Работа через RDP (Служба терминалов)

Если базы 1С находятся на одном сервере или один из ноутбуков выступает в роли сервера, можно использовать терминальный доступ. Выясним, как избежать конфликтов в этом случае.

При работе через RDP порт ККТ пробрасывается в сессию. Однако, если обе сессии попытаются захватить COM-порт одновременно, возникнет ошибка. Решение заключается в том же механизме освобождения порта. Мы должны убедиться, что 1С не держит связь с кассой постоянно. В коде 1С за это отвечает параметр ПараметрыПодключения.УстройствоЗанято. В новых версиях «Розницы» это регулируется настройкой оборудования в интерфейсе пользователя («Освобождать порт»).

Способ 3. Программная корректировка управления сменами

Когда мы работаем с двумя разными базами 1С на одном фискальном устройстве, возникает логическая коллизия: смена на кассе одна, а документов «Выемка», «Открытие смены» и «Z-отчет» в базах должно быть по два. Рассмотрим, как программно обойти эту проблему. В качестве альтернативы доработкам можно использовать обработку для принудительного закрытия кассовой смены.

Если в первой базе смена уже открыта, то при попытке открыть её во второй базе ККТ выдаст ошибку «Смена уже открыта». Нам необходимо доработать логику так, чтобы 1С просто создавала документ КассоваяСмена, не отправляя команду на кассу. Посмотрим на пример функции открытия смены:


&НаСервереБезКонтекста
Функция ОткрытьКассовуюСменуНаСервереБезКонтекста(КассаККМ, КассоваяСмена, ОписаниеОшибки = "")
    // Сначала пытаемся открыть смену штатно
    ИнфоВозврат = РозничныеПродажиСервер.ОткрытьКассовуюСмену(КассаККМ, ОписаниеОшибки);
    
    // Если ККТ говорит, что смена уже открыта, игнорируем ошибку для 1С
    // и создаем документ открытия смены программно
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("КассаККМ", КассаККМ);
    Запрос.УстановитьПараметр("Дата", ТекущаяДата());
    Запрос.УстановитьПараметр("СменаОткрыта", Перечисления.СтатусыКассовойСмены.Открыта);
    
    Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.КассоваяСмена 
                   ГДЕ КассаККМ = &КассаККМ И Статус = &СменаОткрыта";
                   
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        КассоваяСмена = Выборка.Ссылка;
        Возврат Истина; // Смена уже есть в базе
    КонецЕсли;
    Возврат ИнфоВозврат;
КонецФункции

Аналогично обстоит дело с закрытием. Чтобы не печатать Z-отчет дважды (что физически невозможно за одну смену), на втором рабочем месте можно использовать вызов формы закрытия смены с параметром ЗакрытьБезZОтчета. Разберем этот пример:


ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("КассаККМ", КассаККМ);
Форма = ОткрытьФорму("Обработка.ЗакрытиеКассовойСмены.Форма.Форма", ПараметрыФормы, ЭтаФорма);
// Устанавливаем флаг, чтобы 1С просто закрыла смену в базе данных
Форма.ЗакрытьБезZОтчета = Истина;

Особенности работы с разными версиями «Розницы» (2.2 и 2.3)

Поскольку в задаче фигурируют разные версии конфигурации, важно учитывать используемую Библиотеку подключаемого оборудования (БПО). Розница 2.2 может использовать старый драйвер Атол 9-й версии, тогда как Розница 2.3 ориентирована на 10-ю версию. Для стабильной работы по сети через «Сервер удаленного подключения» крайне рекомендуется привести обе базы к использованию ДТО 10. В версии 2.2 это может потребовать обновления внешней компоненты драйвера в справочнике «Драйверы оборудования».

Также стоит помнить о ФФД (Формате фискальных данных). Если вы используете ФФД 1.2, убедитесь, что обе версии 1С корректно поддерживают работу с маркировкой через выбранный драйвер, иначе при печати чеков с маркированным товаром со второго рабочего места могут возникнуть ошибки валидации тегов.

Подводя итог, наиболее жизнеспособным решением для Атол 30Ф является использование Atol Remote Server в связке с настройкой 1С на освобождение порта. Это позволит избежать затрат на стороннее ПО и обеспечит прозрачную работу обоих кассиров.

← На главную