При переходе на 1С:Управление торговлей версии 11.4 многие пользователи и разработчики задаются вопросом: достаточно ли стандартного функционала для полноценной работы оптового звена с ЕГАИС? Часто смущает тот факт, что основные настройки учета алкоголя сгруппированы в разделе «Розница». Разберемся подробно, как устроена эта подсистема, с какими сложностями можно столкнуться и как оптимизировать процессы программно.
Первое, что бросается в глаза — расположение настроек. Включение учета алкогольной продукции действительно находится в блоке розничных продаж. Однако это не означает, что функционал ограничен только розницей. Рассмотрим, почему это так. Подсистема обмена с государственными информационными системами (ИС) в УТ 11.4 является сквозной. Активация опций «Учет алкогольной продукции» и «Интеграция с ЕГАИС» открывает доступ к универсальным объектам:
ТТНВходящаяЕГАИС — для приемки продукции от поставщиков;ТТНИсходящаяЕГАИС — для оптовых отгрузок покупателям;АктПостановкиНаБалансЕГАИС и АктСписанияЕГАИС — для инвентаризации остатков.Для оптовика работа в программе строится на взаимодействии с Регистром №1 (Склад) и Регистром №3 (Помарочный учет). В отличие от розницы, опту практически не требуется Регистр №2 (Торговый зал), так как отгрузки происходят в разрезе справок 2 (партий).
Проанализируем ситуацию с производительностью, которую на форумах часто называют «лагвордом». Основная проблема типовой УТ 11.4 заключается в работе «Рабочего места проверки и подбора алкогольной продукции». Когда в одной накладной количество марок превышает 500–1000 штук, штатные механизмы начинают работать крайне медленно. Выясним причину этого поведения:
При каждом сканировании марки или изменении строки система выполняет пересчет дерева упаковок, проверку статусов в регистрах и обновление динамических форм. Для крупного опта, где отгрузки идут паллетами, это становится критическим фактором. Программа потребляет огромный объем оперативной памяти, что может привести к зависанию сеанса.
Важный момент: Если ваша организация занимается импортом или производством, типовой УТ 11.4 будет недостаточно. В ней отсутствуют документы ОтчетОбИмпортеЕГАИС и ОтчетОПроизводствеЕГАИС. В этом случае придется либо дописывать функционал самостоятельно, либо использовать отраслевые решения (например, на базе КТ-2000).
Для автоматизации процесса и обхода некоторых ограничений интерфейса часто требуется программная загрузка марок в документы ЕГАИС. Рассмотрим пример функции, которая позволяет загружать данные из таблицы результатов сканирования непосредственно в ТТНИсходящаяЕГАИС или другие связанные документы.
Функция ЗагрузитьАкцизныеМаркиВДокумент(ДокументСМарками, ТаблицаРезультатаСканирования)
СтруктураВозврата = Новый Структура("Результат, ОписаниеОшибки", Истина, "");
// Получаем объект документа для редактирования
Если АСФОбщегоНазначения.ЭтоСсылка(ДокументСМарками) Тогда
ДокументДвиженияМарок = ДокументСМарками.ПолучитьОбъект();
Иначе
ДокументДвиженияМарок = ДокументСМарками;
КонецЕсли;
// Определяем источник марок: для учетных документов это часто РС,
// для документов ЕГАИС - табличная часть АкцизныеМарки
ИсточникМарок = ДокументДвиженияМарок.АкцизныеМарки;
ИсточникМарок.Очистить();
Для Каждого СтрокаМарок Из ТаблицаРезультатаСканирования Цикл
// Поиск строки товара в документе для привязки марки
ИмяКолонкиПоиска = "ИдентификаторСтроки";
СтрокаТоваров = ДокументДвиженияМарок.Товары.Найти(СтрокаМарок.НомерСтрокиДокумента, ИмяКолонкиПоиска);
Если СтрокаТоваров = Неопределено Тогда
СтруктураВозврата.Результат = Ложь;
СтруктураВозврата.ОписаниеОшибки = "Не найдена строка товаров для ID: " + Строка(СтрокаМарок.НомерСтрокиДокумента);
Возврат СтруктураВозврата;
КонецЕсли;
// Добавление марки в коллекцию
НоваяСтрока = ИсточникМарок.Добавить();
НоваяСтрока.АкцизнаяМарка = СтрокаМарок.МаркаPDF417Ссылка;
НоваяСтрока.ШтрихкодУпаковки = СтрокаМарок.УпаковкаСсылка;
НоваяСтрока.ИдентификаторСтроки = СтрокаТоваров.ИдентификаторСтроки;
НоваяСтрока.Количество = 1;
НоваяСтрока.Справка2 = СтрокаТоваров.Справка2;
КонецЦикла;
// Попытка записи объекта
Попытка
ДокументДвиженияМарок.Записать(РежимЗаписиДокумента.Запись);
Исключение
СтруктураВозврата.Результат = Ложь;
СтруктураВозврата.ОписаниеОшибки = ОписаниеОшибки();
КонецПопытки;
Возврат СтруктураВозврата;
КонецФункции
В данном коде мы проанализируем важный нюанс: связь между физической маркой и остатками на Регистре №3 осуществляется через Справка2. Если при отгрузке не указать верную справку, ЕГАИС вернет ошибку о необеспеченном остатке, даже если марка фактически есть на складе.
В оптовой торговле критически важно своевременно выявлять расхождения между данными 1С и ЕГАИС. Для этого проанализируем отчет «Остатки алкогольной продукции ЕГАИС». Он позволяет сравнить данные регистра ОстаткиАлкогольнойПродукцииЕГАИС с результатами запроса остатков из системы УТМ.
Рассмотрим по шагам процесс отработки расхождений при приемке:
ТТНВходящаяЕГАИС.Если типовой функционал перестает справляться с объемами, рассмотрим альтернативные пути развития системы:
1. Оптимизация поиска марок. Как было замечено опытными разработчиками, поиск по строковому представлению марки — операция дорогая. Некоторые специалисты используют преобразование марки в GUID для ускорения индексации, однако стоит помнить, что при этом может теряться уникальность из-за «криптохвоста». Оптимальнее всего использовать типовой справочник ШтрихкодыУпаковокТоваров.
2. Внешние модули подбора. Существуют расширения (например, «Алкосфера»), которые заменяют стандартное окно подбора марок на более производительное. Они используют прямые запросы к базе данных и кэширование, что позволяет обрабатывать десятки тысяч строк без деградации скорости.
3. Использование ТСД. Для опта работа напрямую в интерфейсе 1С практически невозможна. Проанализируем схему с терминалом сбора данных: данные сканирования накапливаются в ТСД, а затем одной операцией загружаются в документ через ДанныеПроверкиИПодбора (хранилище значения в документе). Это минимизирует количество обращений к серверу 1С во время самого процесса сканирования.
Подводя итог, можно сказать, что 1С:УТ 11.4 вполне пригодна для оптового ЕГАИС, если ваши объемы не превышают средних показателей. Для крупного бизнеса потребуется либо серьезная доработка типовых механизмов проверки марок, либо интеграция со специализированными внешними модулями.