Как в 1С:Управление торговлей заполнить реквизит «Наименование для печати» из рабочего наименования номенклатуры?

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

Коллеги, довольно часто мы сталкиваемся с ситуацией, когда в системе 1С:Предприятие, в частности в конфигурации «Управление торговлей», некоторые позиции номенклатуры имеют незаполненный реквизит «Наименование для печати» или «Полное наименование». Это может привести к тому, что в печатных формах документов, таких как счета, накладные или акты, вместо ожидаемого названия товара выводится пустая строка или некорректная информация. В конечном итоге, это создает неудобства как для внутренних пользователей, так и для контрагентов.

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

Различие между «Рабочим наименованием» и «Наименованием для печати»

Прежде чем перейти к решениям, давайте кратко проанализируем, в чем заключается функциональное различие между этими двумя реквизитами:

  1. Рабочее наименование (Наименование): Это внутреннее, краткое название позиции номенклатуры, которое используется для быстрого поиска, идентификации и работы с элементами в списках внутри программы. Оно должно быть максимально лаконичным и, желательно, уникальным для удобства пользователей. Например, «Монитор 27 ASUS» или «Мышь Logitech беспроводная».
  2. Наименование для печати (НаименованиеДляПечати или НаименованиеПолное): Это официальное, полное название товара или услуги, которое будет отображаться во всех исходящих печатных документах. Оно может быть более подробным и соответствовать требованиям стандартов, внутренних регламентов или специфическим условиям контрагентов. Иногда это наименование может отличаться от рабочего, например, для соответствия наименованиям поставщиков или для работы с крупными торговыми сетями. Например, «Монитор LCD ASUS VG27AQ1A 27", VA, 2560x1440, 170Гц, 1мс, HDMI, DP» или «Мышь компьютерная беспроводная Logitech M185 (красный)».

Как мы увидим далее, в некоторых версиях конфигурации 1С:УТ, если реквизит «Наименование для печати» не заполнен, система может выводить пустую строку в печатных формах, что подтверждает необходимость его заполнения.

Решение 1: Массовое заполнение с использованием универсальной обработки произвольным кодом

Это один из самых быстрых и гибких способов для обновления уже существующей номенклатуры, где поле «Наименование для печати» оказалось незаполненным. Мы будем использовать типовую универсальную обработку, позволяющую выполнять произвольный код.

Пошаговая инструкция:

  1. Запустите универсальную обработку:
    • В большинстве конфигураций 1С v8.3 (управляемые формы) вы можете найти ее через меню Сервис (или Администрирование) -> Универсальная обработка справочников и документов.
    • Если такой пункт отсутствует, активируйте режим технического специалиста (Настройки -> Параметры -> Режим технического специалиста) и затем используйте Функции технического специалиста -> Стандартные -> Универсальная обработка справочников, документов и регистров (или Групповое изменение реквизитов, о котором поговорим ниже).
  2. Настройте параметры обработки:
    • В поле «Объект» выберите Справочник Номенклатура. Это укажет обработке, с каким видом объектов мы будем работать.
    • В секции «Действия» выберите Обработка -> Произвольный код. Это позволит нам вставить и выполнить свой собственный скрипт на языке 1С.
  3. Вставьте и выполните код:

    Теперь мы можем использовать код для проверки и заполнения реквизита. Важно помнить, что название реквизита для печати может отличаться в разных версиях конфигурации (например, НаименованиеДляПечати или НаименованиеПолное). Рассмотрим оба варианта.

    Вариант 1: Для конфигураций, где используется реквизит НаименованиеДляПечати (например, УТ 11.1.9ххх, как упоминалось в форуме):

    
    Если НЕ ЗначениеЗаполнено(Объект.НаименованиеДляПечати) Тогда
        Объект.НаименованиеДляПечати = Объект.Наименование;
        Объект.Записать;
    КонецЕсли;
    

    Пояснение к коду:

    • Мы используем функцию ЗначениеЗаполнено(Объект.НаименованиеДляПечати) для того, чтобы проверить, имеет ли реквизит НаименованиеДляПечати какое-либо значение. Если он пуст (или содержит неопределенное значение), функция возвращает Ложь.
    • Оператор НЕ инвертирует результат, то есть Если НЕ ЗначениеЗаполнено(...) Тогда означает «Если значение не заполнено, то...».
    • Внутри условного блока мы присваиваем реквизиту Объект.НаименованиеДляПечати значение из реквизита Объект.Наименование.
    • Строка Объект.Записать; критически важна, так как она сохраняет внесенные изменения в информационной базе. Без этой строки изменения не будут применены.

    Вариант 2: Для более новых конфигураций, где реквизит может называться НаименованиеПолное (как было уточнено в форуме):

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

    
    Если НЕ ЗначениеЗаполнено(Объект.НаименованиеПолное) Тогда
        Объект.НаименованиеПолное = Объект.Наименование;
        Объект.Записать;
    КонецЕсли;
    

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

  4. Выполните обработку: После вставки кода нажмите кнопку Выполнить в обработке. Система начнет перебирать все элементы справочника «Номенклатура» и применять к ним указанный код.

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

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

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

Пошаговая настройка шаблонов:

  1. Перейдите к видам номенклатуры: Откройте раздел НСИ и администрирование -> НСИ -> Классификаторы номенклатуры -> Виды номенклатуры.
  2. Выберите или создайте вид номенклатуры: Для каждого вида номенклатуры (например, «Товары», «Услуги», «Сырье» и т.д.) мы можем настроить свои шаблоны. Откройте нужный вид номенклатуры.
  3. Перейдите на вкладку «Шаблоны наименований»: Здесь вы найдете настройки для автоматического формирования наименований.
  4. Настройте шаблоны:
    • Для Рабочего наименования: Установите флажок Использовать шаблон. В поле шаблона можно указать, из каких реквизитов будет формироваться наименование. Например, если вы хотите, чтобы рабочее наименование состояло из краткого наименования и артикула, можно указать [Наименование] ([Артикул]).
    • Для Наименования для печати (или Полного наименования): Аналогично установите флажок Использовать шаблон и создайте более детальный шаблон. Например: [Наименование], цвет: [Цвет], размер: [Размер], производитель: [Производитель]. В редакторе формул можно использовать операторы, текстовые значения в кавычках и значения других реквизитов, характеристик или дополнительных свойств (таких как «Цвет», «Мощность», «Вес» и т.д.).
  5. Применение шаблонов:
    • Если флажок Использовать шаблон установлен, наименование будет переформировываться по шаблону при каждой записи номенклатуры, и его нельзя будет редактировать вручную. Это обеспечивает строгий контроль и единообразие.
    • Если флажок не установлен, наименование можно заполнить по шаблону с помощью специальной команды (например, кнопка Заполнить рабочее наименование по шаблону или Заполнить наименование для печати по шаблону) в карточке номенклатуры или характеристики, но затем его можно произвольно редактировать.

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

Решение 3: Групповое изменение реквизитов (без кода)

Для массового обновления существующих элементов номенклатуры, у которых не заполнено «Наименование для печати», мы также можем использовать типовую обработку «Групповое изменение реквизитов», которая не требует написания произвольного кода.

Пошаговая инструкция:

  1. Откройте обработку:
    • Включите режим технического специалиста (Настройки -> Параметры -> Режим технического специалиста).
    • Перейдите в Функции технического специалиста -> Стандартные -> Групповое изменение реквизитов.
  2. Выберите объекты для изменения:
    • В поле Изменять выберите Справочники -> Номенклатура.
    • Нажмите кнопку Добавить элемент, чтобы настроить отбор. Например, чтобы изменить только те позиции, у которых «Наименование для печати» не заполнено, добавьте отбор: Наименование для печати -> Не заполнено.
  3. Укажите изменяемый реквизит и новое значение:
    • В нижней части окна, в списке Изменяемые реквизиты, найдите реквизит Наименование для печати (или НаименованиеПолное в зависимости от вашей конфигурации).
    • Установите флажок напротив него.
    • В колонке Новое значение выберите опцию <Заполнить по данным другого реквизита> (или аналогичную, если она доступна) и укажите, что новое значение должно быть равно значению реквизита Наименование.
  4. Выполните изменение: Нажмите кнопку Изменить реквизиты. Обработка проанализирует выбранные элементы и применит изменения.

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

Важные аспекты и рекомендации

При выполнении любых массовых изменений в базе данных 1С, особенно связанных с номенклатурой, необходимо учитывать ряд важных моментов:

  1. Резервное копирование: Критически важно всегда создавать резервную копию информационной базы перед выполнением массовых изменений или запуском произвольного кода. Это позволит восстановить данные в случае непредвиденных ошибок или некорректных изменений. Если обслуживание выполняется регулярно, администратор может настроить автоматическое архивирование баз 1С по расписанию.
  2. Уникальность рабочего наименования: Старайтесь поддерживать уникальность рабочего наименования. Хотя система может не требовать этого жестко, уникальные наименования значительно упрощают поиск и предотвращают путаницу в учете.
  3. Контроль обязательности заполнения: В 1С можно настроить контроль обязательности заполнения реквизитов при создании новой номенклатуры. Это поможет избежать появления незаполненных полей в будущем. Данная настройка обычно находится в свойствах реквизита в конфигураторе или через настройки формы элемента.
  4. Влияние на учет и проведенные документы: Прямое переименование или массовое изменение номенклатуры (даже таких реквизитов, как «Наименование для печати») может потенциально повлиять на ранее проведенные документы. Например, если в какой-то печатной форме наименование берется напрямую из реквизита без фиксации в документе, то исторические документы могут изменить свое представление. Рекомендуется осторожно подходить к массовым изменениям и, по возможности, сначала тестировать их на копии базы.
  5. Тестирование на тестовой базе: Перед применением изменений на рабочей базе, всегда проводите их на тестовой копии. Это позволит убедиться в корректности работы кода или настроек и избежать негативных последствий.
  6. Использование дополнительных реквизитов: Для более сложных случаев, когда наименование для печати должно сильно отличаться или зависеть от специфических условий (например, для разных контрагентов или для специфических требований маркетинга), можно использовать дополнительные реквизиты номенклатуры. На их основе можно затем формировать наименование для печати с помощью более сложных шаблонов или программного кода.
  7. Внешние обработки и сервисы: Существуют готовые внешние обработки и специализированные сервисы для 1С, предназначенные для массового изменения наименований по шаблонам или автоматического заполнения реквизитов печати. Некоторые из них могут предлагать более широкий функционал, например, загрузку значений из Excel, добавление изображений и т.д. Если стандартные возможности не полностью удовлетворяют ваши потребности, рассмотрите эти варианты.

Заключение

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

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

← На главную