Как добавить штрихкод товара в Универсальный отчет "Реализация товаров и услуг" в 1С:УТ 11?

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

Когда мы работаем с 1С:Управление торговлей 11 (УТ 11), часто возникает потребность в детализированных отчетах, которые содержат всю необходимую информацию о товарах. Один из распространенных запросов — это включение штрихкода товара в Универсальный отчет, построенный, например, на основании документа "Реализация товаров и услуг". Однако, как выяснилось в ходе обсуждения на форуме, эта задача не так проста, как кажется на первый взгляд. Давайте разберем, почему штрихкод не удается просто добавить в стандартные настройки отчета и какие у нас есть эффективные пути решения.

Почему штрихкод не отображается в Универсальном отчете?

Давайте выясним основную причину, по которой стандартный Универсальный отчет не позволяет нам просто добавить штрихкод товара. Ключевая причина заключается в том, как устроена структура хранения данных о штрихкодах в 1С:УТ 11. В отличие от таких полей, как Артикул, Наименование или Единица измерения, которые являются прямыми реквизитами справочника Номенклатура, штрихкоды не хранятся непосредственно в самой карточке номенклатуры.

Вместо этого, штрихкоды содержатся в отдельном объекте конфигурации — Регистре сведений "Штрихкоды номенклатуры". Этот регистр позволяет хранить несколько штрихкодов для одной и той же номенклатурной позиции, с учетом таких параметров, как Характеристика и Упаковка.

Таким образом, когда мы формируем Универсальный отчет на основании документа "Реализация товаров и услуг" и его табличной части "Товары", отчет оперирует только теми реквизитами, которые непосредственно связаны с документом и его строками (например, Номенклатура, Количество, Цена). Он "не видит" данные из Регистра сведений "Штрихкоды номенклатуры", поскольку они не являются прямыми реквизитами табличной части документа или справочника Номенклатура в рамках данного запроса.

На форуме справедливо отмечалось, что в карточке номенклатуры мы видим "Штрихкоды" не как прямое поле для вывода, а как гиперссылку. Эта гиперссылка ведет нас в тот самый Регистр сведений "Штрихкоды номенклатуры", где мы можем управлять штрихкодами. Но Универсальный отчет не умеет "ходить по гиперссылкам" для извлечения данных в свою структуру.

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

Решение 1: Создание или доработка отчета на Системе Компоновки Данных (СКД)

Наиболее мощным, гибким и правильным с точки зрения архитектуры 1С способом для вывода штрихкодов в отчетах является создание собственного отчета или доработка существующего с использованием Системы Компоновки Данных (СКД). Этот подход позволяет нам явно указать, откуда брать данные и как их связывать.

Что такое СКД? Система Компоновки Данных — это основной инструмент 1С:Предприятия 8 для построения сложных аналитических отчетов. Она позволяет не только описывать запросы к базе данных, но и гибко настраивать структуру отчета, его внешний вид, параметры, отборы и группировки без необходимости прямого программирования на каждом этапе.

Рассмотрим подробнее шаги для создания такого отчета:

  1. Шаг 1: Определение источников данных.

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

    • Табличная часть документа Документ.РеализацияТоваровУслуг.Товары (где хранится список товаров в реализации).
    • Регистр сведений РегистрСведений.ШтрихкодыНоменклатуры (где хранятся сами штрихкоды).

    Мы должны будем получить данные из обеих этих таблиц.

  2. Шаг 2: Настройка соединения (JOIN) таблиц.

    Ключевым моментом для извлечения штрихкода является правильное соединение этих двух источников данных. Соединение будет выполняться по полю Номенклатура, которое присутствует как в табличной части документа, так и в регистре сведений. Мы будем использовать ЛЕВОЕ СОЕДИНЕНИЕ, чтобы гарантировать, что все строки из табличной части документа "Реализация товаров и услуг" будут выведены, даже если для какой-то номенклатуры штрихкод не найден.

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

    Посмотрим на пример концептуального запроса, который ляжет в основу схемы СКД:

    
    ВЫБРАТЬ
        ТоварыРеализации.Ссылка КАК ДокументРеализации,
        ТоварыРеализации.НомерСтроки КАК НомерСтроки,
        ТоварыРеализации.Номенклатура КАК Номенклатура,
        ТоварыРеализации.Количество КАК Количество,
        ТоварыРеализации.Сумма КАК Сумма,
        Штрихкоды.Штрихкод КАК Штрихкод,
        Штрихкоды.Характеристика КАК ХарактеристикаНоменклатуры,
        Штрихкоды.Упаковка КАК УпаковкаНоменклатуры
    ИЗ
        Документ.РеализацияТоваровУслуг.Товары КАК ТоварыРеализации
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК Штрихкоды
            ПО ТоварыРеализации.Номенклатура = Штрихкоды.Номенклатура
               // Опционально можно добавить условия для характеристики и упаковки,
               // если штрихкод зависит от этих параметров
               // И ТоварыРеализации.Характеристика = Штрихкоды.Характеристика
               // И ТоварыРеализации.Упаковка = Штрихкоды.Упаковка
    

    В этом запросе мы выбираем все необходимые поля из табличной части документа и добавляем к ним Штрихкод, ХарактеристикуНоменклатуры и УпаковкуНоменклатуры из регистра сведений.

  3. Шаг 3: Выбор и настройка полей.

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

  4. Шаг 4: Настройка структуры отчета.

    В СКД предоставляется широкий спектр возможностей для настройки структуры отчета. Мы можем определить:

    • Группировки: Например, сгруппировать строки по документам, номенклатуре или другим критериям.
    • Сортировки: Упорядочить данные по любому из выбранных полей.
    • Условное форматирование: Выделить цветом или шрифтом определенные строки или ячейки, чтобы привлечь внимание к важной информации.
    • Макеты: Настроить внешний вид таблиц и полей.
    • Параметры и отборы: Добавить возможность фильтрации данных по периоду, документу, номенклатуре и, конечно же, по наличию/значению штрихкода.

Преимущества подхода с СКД:

  1. Полный контроль: Мы получаем полный контроль над тем, какие данные будут отображены и как они будут представлены.
  2. Гибкость: Отчет становится максимально гибким и настраиваемым, его можно адаптировать под различные аналитические задачи.
  3. Интегрированность: Отчет будет частью системы 1С, его можно сохранять, делиться им, запускать из меню программы.

Для реализации этого решения потребуются определенные навыки работы с конфигуратором 1С, понимание языка запросов 1С и принципов работы СКД. Если таких навыков нет, рекомендуется привлечь специалиста-программиста.

Решение 2: Обходной путь с использованием нескольких универсальных отчетов и Excel

Если нет возможности или желания углубляться в программирование на СКД, или задача является разовой и не требует постоянного интегрированного решения, можно воспользоваться обходным вариантом, который был предложен на форуме. Этот метод предполагает ручное объединение данных из двух разных Универсальных отчетов с последующей обработкой в Excel.

Давайте рассмотрим этот процесс по шагам:

  1. Шаг 1: Формируем первый Универсальный отчет со списком товаров из реализации.

    Открываем стандартный Универсальный отчет и настраиваем его на основании документа Реализация товаров и услуг. В настройках отчета выбираем поля, которые нам необходимы из табличной части документа, например:

    • Ссылка (ссылка на документ реализации)
    • Номенклатура (самое важное поле, которое будет служить ключом для объединения)
    • Количество
    • Цена
    • Сумма
    • Характеристика (если используется)
    • Упаковка (если используется)

    Обязательно убедитесь, что поле Номенклатура присутствует в выводимых полях. Формируем отчет и сохраняем его в формате таблицы (например, .xlsx) на ваш компьютер.

  2. Шаг 2: Формируем второй Универсальный отчет со штрихкодами.

    Снова открываем Универсальный отчет, но на этот раз настраиваем его на основании Регистра сведений "Штрихкоды номенклатуры". В настройках отчета выбираем следующие поля:

    • Номенклатура (снова ключевое поле для объединения)
    • Штрихкод
    • Характеристика (если используется и есть в регистре)
    • Упаковка (если используется и есть в регистре)

    Формируем этот отчет и также сохраняем его в формате .xlsx в отдельный файл.

  3. Шаг 3: Объединяем данные в Excel.

    Теперь, когда у нас есть два файла Excel, открываем их. Мы можем использовать функции Excel для объединения данных:

    • ВПР (VLOOKUP) или ПРОСМОТРХ (XLOOKUP): В файле с данными из реализации добавляем новый столбец "Штрихкод". В этот столбец вводим формулу ВПР, которая будет искать соответствующий штрихкод во втором файле (со штрихкодами), используя Номенклатуру как критерий поиска. Если у одной номенклатуры несколько штрихкодов, ВПР найдет только первый.
    • Сводные таблицы: Для более сложного объединения, особенно если нужно учесть несколько штрихкодов или агрегировать данные, можно использовать сводные таблицы. Это потребует некоторого предварительного структурирования данных.

Недостатки данного подхода:

  1. Ручные действия: Требует ручных операций каждый раз, когда вам нужен обновленный отчет.
  2. Нет интеграции: Результат находится вне 1С и не является частью общей отчетности системы.
  3. Сложность при множественных штрихкодах: Если к одной номенклатурной позиции привязано несколько штрихкодов (например, для разных характеристик или упаковок), простое использование ВПР может быть недостаточным, и потребуется более сложная логика в Excel.
  4. Времязатратность: При большом объеме данных процесс может быть трудоемким.

Этот метод может быть полезен как временное решение или для выполнения разовых аналитических задач, когда нет времени или ресурсов на полноценную доработку.

Решение 3: Использование готовых внешних отчетов и расширений

Как золотая середина между полным программированием и ручными обходными путями, существуют готовые внешние отчеты и расширения, разработанные сообществом 1С или специализированными компаниями. Многие из них уже включают функционал вывода штрихкодов в различных отчетах, включая отчеты по продажам, прайс-листы или списки номенклатуры.

Как мы можем использовать такие решения:

  1. Поиск и приобретение: Такие готовые решения часто доступны на специализированных ресурсах для 1С-разработчиков и пользователей (например, Infostart, партнерские сайты). Некоторые из них могут быть бесплатными, другие требуют приобретения лицензии.
  2. Подключение: Внешние отчеты в 1С:УТ 11 обычно подключаются без необходимости изменения конфигурации. Мы можем открыть их через меню Файл -> Открыть или, что более удобно для регулярного использования, зарегистрировать их в системе через раздел Администрирование -> Печатные формы, отчеты и обработки. После регистрации они становятся доступны для использования как обычные отчеты 1С.
  3. Преимущества: Позволяют нам быстро получить требуемый функционал без каких-либо навыков программирования. Часто такие отчеты уже содержат готовые поля, такие как Штрихкод, Номенклатура, Артикул, Характеристика и Упаковка, с заранее настроенными связями.
  4. Недостатки: Могут не всегда идеально подходить под ваши уникальные требования или особенности учета. Также может потребоваться покупка такого решения.

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

Дополнительная информация и смежные вопросы

Давайте также рассмотрим некоторые важные детали, которые помогут нам лучше понять работу со штрихкодами в 1С:УТ 11.

Работа со штрихкодами в карточке номенклатуры:

Для добавления или просмотра штрихкодов конкретной позиции номенклатуры, мы должны перейти в справочник Номенклатура и открыть нужную карточку товара. Внутри карточки вы увидите гиперссылку Штрихкоды. Нажав на нее, мы получим доступ к записи в Регистре сведений "Штрихкоды номенклатуры", связанной с данной позицией. Здесь мы можем вручную ввести штрихкод, отсканировать его с помощью сканера или сгенерировать новый. Система 1С:УТ 11 позволяет привязать несколько штрихкодов к одной позиции номенклатуры, детализируя их по характеристикам и упаковкам, что является очень важной и гибкой возможностью для ведения учета.

Печать штрихкодов на документах:

1С:УТ 11 также имеет встроенную возможность печати штрихкодов непосредственно на печатных формах документов. Эта опция часто используется для ускорения операционного учета, например, для быстрого поиска документов по штрихкоду на складе или в офисе. Мы можем настроить эту функцию в разделе НСИ и администрирование -> Продажи -> Печать документов, установив соответствующий флажок Штрихкодирование печатных форм документов. Однако важно не путать эту опцию с задачей включения штрихкода как поля в аналитические отчеты. Печать штрихкода на форме документа — это визуальный элемент для идентификации самого документа, а не вывод штрихкода конкретного товара из табличной части в качестве аналитического поля.

В заключение мы видим, что хотя прямой путь добавления штрихкода в Универсальный отчет в 1С:УТ 11 затруднен из-за архитектуры хранения данных, у нас есть несколько эффективных решений. Выбор конкретного подхода зависит от наших навыков, доступных ресурсов и регулярности потребности в таком отчете. Наиболее полное и гибкое решение предоставляет Система Компоновки Данных, позволяющая создавать сложные и настраиваемые отчеты. Временные же задачи можно решать с помощью обходного пути через Excel или использовать готовые внешние отчеты, чтобы сэкономить время и усилия.

← На главную