В розничной торговле критически важно постоянно владеть актуальной информацией об остатках товаров на складах и в торговых залах. При использовании связки товароучетной системы 1С:Управление торговлей 11.4 и кассового терминала Вики Мини (Viki Mini) пользователи часто сталкиваются с необходимостью видеть реальные остатки в течение рабочего дня, не дожидаясь вечернего закрытия смены.
Первой мыслью многих администраторов и товароведов становится автоматизация выгрузки так называемого X-отчета (отчета без гашения). Однако, как справедливо отмечают специалисты на форумах, данный подход ошибочен. Давайте детально разберем, почему X-отчет не решает задачу контроля остатков и какими альтернативными, гораздо более эффективными способами можно автоматизировать этот процесс.
Для начала проанализируем структуру и назначение кассовых отчетов. Кассовый аппарат (в данном случае Вики Мини под управлением ПО «Дримкас Старт» или «Set Start») работает в соответствии с требованиями фискального законодательства.
X-отчет — это исключительно финансовый документ. Он показывает:
В X-отчете отсутствует детализация по проданной номенклатуре в разрезе кодов товаров, штрихкодов или артикулов. Касса не хранит внутри себя полноценный складской учет — она лишь фиксирует факты продаж. Следовательно, даже если автоматизировать выгрузку этого отчета, 1С:УТ 11.4 не сможет понять, какие именно позиции списать со склада. Нам нужен не финансовый итог, а непрерывный поток транзакций (чеков), совершенных покупателями.
Ниже мы подробно рассмотрим три рабочих сценария автоматизации получения актуальных остатков товаров в течение дня.
---
Если ваша касса Вики Мини подключена к интернету и зарегистрирована в личном кабинете Дримкас, обмен данными можно полностью автоматизировать. В этом сценарии кассовый терминал отправляет каждый пробитый чек в облако Дримкас практически мгновенно, а 1С забирает их оттуда в фоновом режиме по заданному нами расписанию.
Разберем по шагам, как настроить этот процесс в 1С:УТ 11.4:
Дримкас Обмен, введите учетные данные (логин, пароль или API-токен) от вашего Личного кабинета Дримкас. Программа выполнит сопоставление касс и магазинов.Мониторинг обмена.Сценарии синхронизации.Загрузка (получение данных о продажах из облака в 1С).Автоматически по расписанию.Нажмите на гиперссылку настройки расписания. Во вкладке Дневное укажите параметр Повторять через — например, 900 секунд (15 минут) или 1800 секунд (30 минут). Это означает, что каждые полчаса фоновое РегламентноеЗадание будет незаметно для пользователей обращаться к API Дримкас.
ЧекККМ на основе загруженных чеков. Эти документы сразу же списывают товары со склада в режиме реального времени, обеспечивая менеджеров актуальной картиной остатков. При вечернем закрытии смены эти чеки автоматически архивируются и сворачиваются в стандартный ОтчетОРозничныхПродажах.---
Если касса Вики Мини работает автономно в локальной сети и обмен настроен через общую сетевую папку (например, по пути \\IP_кассы\exchange\), то стандартный обмен выгружает продажи только в момент Z-отчета (закрытия смены), формируя файл report.txt. Но мы можем заставить кассу отдавать текущие продажи в течение дня с помощью специального механизма файлов-флагов.
Кассовое ПО Дримкас поддерживает протокол обмена АТОЛ. В рамках этого протокола мы можем принудительно запросить транзакции без закрытия смены. Рассмотрим подробнее этот алгоритм.
Для реализации этого сценария в 1С пишется небольшая доработка на встроенном языке (или создается внешняя обработка), которая запускается по расписанию через РегламентныеЗадания.
Разберем пример кода, который создает специальный файл-запрос sales_flag.txt (или файл с аналогичным именем, требуемым вашей версией ПО) для принудительной выгрузки продаж:
// Процедура формирует файл-запрос для выгрузки текущих продаж
Процедура ИнициироватьВыгрузкуПродажНаКассе(ПутьККаталогуОбмена) Экспорт
// Определяем имя файла запроса согласно протоколу вашей кассы
ИмяФайлаФлага = ПутьККаталогуОбмена + "sales_flag.txt";
// Создаем новый текстовый файл
ТекстФлага = Новый ТекстовыйДокумент;
// Записываем управляющую команду (если требуется ПО кассы)
// Для некоторых касс достаточно просто факта наличия пустого файла
ТекстФлага.ДобавитьСтроку("GET_CURRENT_TRANSACTIONS");
Попытка
ТекстФлага.Записать(ИмяФайлаФлага, КодировкаТекста.ANSI);
ЗаписьЖурналаРегистрации("Обмен_ВикиМини", УровеньЖурналаРегистрации.Информация, , , "Создан файл-запрос продаж.");
Исключение
ЗаписьЖурналаРегистрации("Обмен_ВикиМини", УровеньЖурналаРегистрации.Ошибка, , , "Ошибка записи файла-флага: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Касса Вики Мини, обнаружив этот файл в папке обмена, автоматически выгружает все накопленные за день чеки в файл ответов (например, sales.txt) и удаляет созданный нами файл-флаг.
Вторая часть нашего регламентного задания в 1С должна считать этот файл ответов и провести документы продажи:
// Процедура считывания промежуточных продаж
Процедура ЗагрузитьПромежуточныеПродажи(ПутьККаталогуОбмена) Экспорт
ИмяФайлаПродаж = ПутьККаталогуОбмена + "sales.txt";
ФайлНаДиске = Новый Файл(ИмяФайлаПродаж);
Если Не ФайлНаДиске.Существует() Тогда
Возврат; // Касса еще не успела сформировать ответ
КонецЕсли;
ТекстПродаж = Новый ТекстовыйДокумент;
Попытка
ТекстПродаж.Прочитать(ИмяФайлаПродаж, КодировкаТекста.ANSI);
// Разбираем строки файла транзакций
Для НомерСтроки = 1 По ТекстПродаж.КоличествоСтрок() Цикл
ТекущаяСтрока = ТекстПродаж.ПолучитьСтроку(НомерСтроки);
// Здесь реализуется алгоритм парсинга строки формата АТОЛ
// и создание документов "Чек ККМ" в 1С:УТ
ОбработатьСтрокуТранзакции(ТекущаяСтрока);
КонецЦикла;
// После успешного разбора обязательно удаляем файл,
// чтобы не импортировать данные повторно при следующем запуске
УдалитьФайлы(ИмяФайлаПродаж);
Исключение
ЗаписьЖурналаРегистрации("Обмен_ВикиМини", УровеньЖурналаРегистрации.Ошибка, , , "Ошибка обработки файла продаж: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Такой подход позволяет актуализировать базу данных 1С с заданной вами периодичностью (например, каждый час), избегая при этом прерывания работы кассира и не требуя физического закрытия кассовой смены.
---
Рассмотрим ситуацию, когда кассовый терминал Вики Мини физически располагается рядом с рабочим местом, где запущена 1С:Управление торговлей. Работа в режиме ККМ Offline (выгрузка-загрузка файлов) изначально проектировалась для отдаленных торговых точек со слабыми каналами связи. Если у вас стабильное подключение, лучшим решением будет полный отказ от автономного режима.
Мы можем перевести Вики Мини в режим работы фискального регистратора (принтера чеков):
Viki Driver от Дримкас), переводящая устройство в режим приема команд извне.Администрирование -> Подключаемое оборудование.Фискальные регистраторы (ККТ с передачей данных), выбрав драйвер ККТ «Дримкас:Фискальные регистраторы Вики».Почему это гарантирует 100% точные остатки?
При такой схеме кассир оформляет продажи непосредственно в интерфейсе 1С:УТ 11.4 (через встроенное Рабочее место кассира — РМК). В момент нажатия кнопки «Оплатить» программа 1С сама мгновенно списывает товар со склада, фиксирует транзакцию в своей базе данных и посылает команду на Вики Мини для физической печати чека. Остатки в вашей товароучетной системе всегда будут абсолютно актуальными, до секунды.
---
Выяснив истинные технические возможности кассы, мы понимаем, что пытаться выгружать X-отчет бессмысленно. Выбирайте наиболее подходящий под вашу инфраструктуру метод:
sales_flag.txt.