Как вывести параметр «Поставщик» на печать этикетки в Mobile SMARTS «Склад 15»

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

При работе с системой Mobile SMARTS: Склад 15 часто возникает необходимость кастомизации стандартных процессов. Одной из типичных задач является вывод на печатную форму этикетки дополнительных данных, которые не предусмотрены типовой конфигурацией «из коробки». Например, если в вашей базе 1С один и тот же товар от разных поставщиков заведен как разные номенклатурные позиции (или разделен по папкам-родителям), вам может потребоваться видеть имя поставщика прямо на ТСД и на распечатанной этикетке.

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

Анализ архитектуры обмена данными

Прежде всего, проанализируем, почему данные могут отображаться в одной операции (например, «Приемка») и отсутствовать в другой (например, «Сбор штрихкодов»). В системе «Клеверенс» существует два принципиально разных способа получения данных:

  1. Документный подход: В операциях типа «Приемка» ТСД работает с конкретным документом (Заказ поставщику, Поступление). Поле «Поставщик» здесь берется из шапки документа 1С.
  2. Справочный подход: В операции «Сбор штрихкодов» ТСД обращается к локальному справочнику номенклатуры, хранящемуся на устройстве. Если при выгрузке справочника из 1С поле «Поставщик» не было явно передано в карточку товара, ТСД его просто «не знает».

Следовательно, наша задача — принудительно добавить это поле в структуру выгрузки справочника номенклатуры.

Шаг 1. Модификация запроса в интеграционной обработке 1С

Для начала нам необходимо изменить логику формирования данных в самой 1С. В современных версиях «Склада 15» обмен строится на базе интеграционной обработки, которая использует схемы компоновки данных (СКД) или программные запросы.

Выясним причину, по которой данные могут приходить в неверном формате. Часто разработчики пытаются передать объект Родитель напрямую. Однако в Mobile SMARTS это приведет к тому, что на экране ТСД вместо названия отобразится внутренний уникальный идентификатор (GUID) ссылки. Чтобы этого избежать, нам нужно обращаться к Наименованию объекта.

Рассмотрим пример кода, который необходимо прописать в тексте запроса или в обработчике формирования временной таблицы номенклатуры (ВТ_Номенклатура) в 1С:


// В тексте запроса интеграционной обработки добавляем выборку наименования родителя
ВТ_Номенклатура.Родитель.Наименование КАК Родитель, 
ВТ_Номенклатура.Родитель КАК Product_Родитель,

Здесь Product_Родитель может использоваться для внутренних связей, а поле Родитель (в формате строки) будет служить нам для вывода текста на экран и печать.

Шаг 2. Расширение структуры данных в Mobile SMARTS

Просто передать данные из 1С недостаточно — сервер Mobile SMARTS должен знать, куда их записывать. Проанализируем настройки сервера через «Панель управления Mobile SMARTS»:

  1. Откроем панель управления на компьютере, где установлен сервер Клеверенс.
  2. Перейдем в раздел Конфигурация — Типы сущностей.
  3. Найдем сущность Изделие (или Номенклатура).
  4. Добавим новое поле, например, с идентификатором Supplier и типом данных Строка.

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

Шаг 3. Сопоставление полей в 1С

Теперь вернемся в 1С в настройки интеграционной обработки. Нам нужно связать наше новое поле из запроса 1С с полем Supplier, которое мы создали на сервере Mobile SMARTS.

Разберем, как это сделать:

Шаг 4. Редактирование шаблона этикетки

После того как данные успешно выгружаются на ТСД, их нужно вывести на печать. Для этого воспользуемся встроенным визуальным редактором этикеток Клеверенс.

Посмотрим на алгоритм действий в редакторе:

  1. Выберем нужную операцию (например, «Сбор штрихкодов») и найдем действие печати.
  2. Откроем используемый шаблон этикетки.
  3. Добавим новый текстовый элемент на форму этикетки.
  4. В свойствах элемента в поле «Значение» (Value) нужно прописать путь к нашему полю. Обычно это выглядит так: {SelectedProduct.Supplier}.

Если вы делаете доработку в операции, где товар выбирается из списка текущих строк (например, при просмотре набранного документа), путь может быть иным: {CurrentItem.Product.Supplier}. Проанализируем контекст выполнения действия, чтобы выбрать правильный объект-источник.

Устранение типичных ошибок

Ошибка: Вместо имени поставщика печатаются цифры и буквы (GUID).
Это происходит, когда в Mobile SMARTS передается ссылка на объект 1С, а не его текстовое представление. Убедитесь, что в запросе 1С вы используете точку и реквизит Наименование: Номенклатура.Родитель.Наименование.

Ошибка: Поле пустое, хотя в 1С данные есть.
Проверьте, была ли выполнена полная выгрузка справочника номенклатуры после внесения изменений. Также убедитесь, что идентификатор поля в Панели управления Mobile SMARTS и в настройках сопоставления в 1С совпадает до символа (регистр имеет значение).

Заключение

Мы рассмотрели процесс сквозной передачи данных от запроса в 1С до термоголовки принтера этикеток. Несмотря на то, что «Склад 15» позиционируется как готовое решение, гибкость его платформы позволяет реализовывать подобные задачи даже без глубоких знаний C#, используя лишь стандартные инструменты интеграции 1С и визуальные редакторы Mobile SMARTS.

Помните, что ключевой успех здесь заключается в правильной подготовке данных на стороне 1С: Mobile SMARTS — это «зеркало» вашей учетной системы, и если данные в 1С структурированы специфическим образом (как в примере с гайками от разных поставщиков), именно правильный запрос к базе обеспечит корректную работу складского персонала.

← На главную