При автоматизации информационных киосков (терминалов) в торговых залах и на складах перед разработчиком часто возникает задача: предоставить покупателю или сотруднику возможность поиска товара с визуальным подсвечиванием его местоположения на схеме помещения. Разберем основные архитектурные подходы и технические способы реализации этой задачи в среде 1С:Предприятие 8.
Вариант 1. Использование табличного документа 1С
Самый быстрый и нативный способ реализации графической схемы в платформе 1С — использование объекта ТабличныйДокумент. Разберем основные техники построения карты этим методом:
Матричный метод (сетка ячеек): Создается макет табличного документа большой размерности (например, 100х100 ячеек с одинаковой шириной и высотой). Проходы заливаются фоновым цветом напольного покрытия, а ячейкам стеллажей или торговых отделов присваиваются адреса (номер зоны, стеллажа или секции). При поиске номенклатуры 1С определяет привязанную к товару зону и закрашивает соответствующие ячейки ярким акцентным цветом.
Использование графических фигур: В макет табличного документа можно выводить встроенные графические объекты типа «Овал», «Прямоугольник» или «Текст». Это позволяет отображать зоны произвольной формы без привязки к квадратной сетке ячеек.
Подложка с фоновым рисунком: В табличный документ загружается растровое изображение плана помещения в качестве фона, а поверх него накладываются прозрачные ячейки или графические элементы. Метод прост в реализации, однако требует точной подгонки макета под конкретное разрешение экрана терминала.
Вариант 2. Интерактивная карта на базе Поля HTML документа (SVG и JavaScript)
Если к навигации предъявляются высокие требования по дизайну, плавности работы, поддержке масштабирования и нестандартной геометрии (круглой, овальной или многоугольной), рассмотрим вариант с интеграцией веб-технологий через элемент формы ПолеHTMLДокумента.
Проанализируем алгоритм работы этого решения по шагам:
Подготовка SVG-схемы: План магазина или склада чертится в векторном редакторе и сохраняется в формате SVG. Каждому стеллажу, полке или отделу присваивается уникальный идентификатор в свойствах объекта (например, id="zone_12" или data-id="A-101").
Загрузка в 1С: Векторная карта вместе со скриптами отображения загружается в элемент формы ПолеHTMLДокумента.
Взаимодействие 1С с JavaScript: Когда пользователь ищет номенклатуру в интерфейсе 1С, платформа вызывает JavaScript-функцию веб-страницы через обращение к окну браузера в поле HTML:
// Пример вызова JS-функции подсветки зоны из кода 1С
ОкноБраузера = Элементы.ПолеСхемы.Документ.defaultView;
ОкноБраузера.ПодсветитьЗону("A-101");
Изменение стилей на карте: Вызванный скрипт находит на SVG-карте нужный тег (например, <path> или <rect>) и меняет его CSS-класс, заставляя выбранную зону пульсировать или закрашиваться ярким цветом.
Организация данных топологии и адресного хранения в базе
Для корректной работы любой схемы необходимо правильно связать товары с географией помещения. Рассмотрим, как организовать хранение этих данных в справочниках 1С:
Иерархическая структура зон: Создается иерархический справочник топологии: Помещение -> Секция -> Линия -> Стеллаж -> Полка/Ячейка.
Привязка к номенклатуре: В реквизитах справочника Номенклатура или в отдельном регистре сведений фиксируется текущее адресное место хранения товара.
Координаты для схемы: В элементе справочника топологии хранится код зоны, который совпадает с номером ячейки в табличном документе или с идентификатором id в SVG-файле схемы.
Вариант 3. Разделение системы на Backend (1С) и Frontend (Веб-киоск)
Проанализируем еще одну архитектуру, удобную для больших торговых сетей: интерфейс инфокиоска разрабатывается как отдельное веб-приложение, а 1С выступает исключительно в роли бэкенда.
В этом случае информационный терминал обращается к 1С через HTTP-сервисы или REST API (OData), отправляя поисковые запросы по остаткам и номенклатуре. 1С возвращает наименование товара, цену и идентификатор зоны на карте, а браузер киоска мгновенно отрисовывает маршрут. Это обеспечивает высокую скорость отклика UI даже на слабых сенсорных терминалах.