Коллеги, довольно часто мы сталкиваемся с ситуацией, когда в системе 1С:Предприятие, в частности в конфигурации «Управление торговлей», некоторые позиции номенклатуры имеют незаполненный реквизит «Наименование для печати» или «Полное наименование». Это может привести к тому, что в печатных формах документов, таких как счета, накладные или акты, вместо ожидаемого названия товара выводится пустая строка или некорректная информация. В конечном итоге, это создает неудобства как для внутренних пользователей, так и для контрагентов.
Наша задача — разобраться, как можно оперативно и эффективно заполнить эти поля, используя данные из «Рабочего наименования» (или просто «Наименование»), а также как настроить систему для автоматического заполнения новых позиций номенклатуры. Мы рассмотрим несколько подходов: от быстрого массового обновления с помощью произвольного кода до использования типовых механизмов конфигурации.
Прежде чем перейти к решениям, давайте кратко проанализируем, в чем заключается функциональное различие между этими двумя реквизитами:
Наименование): Это внутреннее, краткое название позиции номенклатуры, которое используется для быстрого поиска, идентификации и работы с элементами в списках внутри программы. Оно должно быть максимально лаконичным и, желательно, уникальным для удобства пользователей. Например, «Монитор 27 ASUS» или «Мышь Logitech беспроводная».НаименованиеДляПечати или НаименованиеПолное): Это официальное, полное название товара или услуги, которое будет отображаться во всех исходящих печатных документах. Оно может быть более подробным и соответствовать требованиям стандартов, внутренних регламентов или специфическим условиям контрагентов. Иногда это наименование может отличаться от рабочего, например, для соответствия наименованиям поставщиков или для работы с крупными торговыми сетями. Например, «Монитор LCD ASUS VG27AQ1A 27", VA, 2560x1440, 170Гц, 1мс, HDMI, DP» или «Мышь компьютерная беспроводная Logitech M185 (красный)».Как мы увидим далее, в некоторых версиях конфигурации 1С:УТ, если реквизит «Наименование для печати» не заполнен, система может выводить пустую строку в печатных формах, что подтверждает необходимость его заполнения.
Это один из самых быстрых и гибких способов для обновления уже существующей номенклатуры, где поле «Наименование для печати» оказалось незаполненным. Мы будем использовать типовую универсальную обработку, позволяющую выполнять произвольный код.
Сервис (или Администрирование) -> Универсальная обработка справочников и документов.Настройки -> Параметры -> Режим технического специалиста) и затем используйте Функции технического специалиста -> Стандартные -> Универсальная обработка справочников, документов и регистров (или Групповое изменение реквизитов, о котором поговорим ниже).Справочник Номенклатура. Это укажет обработке, с каким видом объектов мы будем работать.Обработка -> Произвольный код. Это позволит нам вставить и выполнить свой собственный скрипт на языке 1С.Теперь мы можем использовать код для проверки и заполнения реквизита. Важно помнить, что название реквизита для печати может отличаться в разных версиях конфигурации (например, НаименованиеДляПечати или НаименованиеПолное). Рассмотрим оба варианта.
Вариант 1: Для конфигураций, где используется реквизит НаименованиеДляПечати (например, УТ 11.1.9ххх, как упоминалось в форуме):
Если НЕ ЗначениеЗаполнено(Объект.НаименованиеДляПечати) Тогда
Объект.НаименованиеДляПечати = Объект.Наименование;
Объект.Записать;
КонецЕсли;
Пояснение к коду:
ЗначениеЗаполнено(Объект.НаименованиеДляПечати) для того, чтобы проверить, имеет ли реквизит НаименованиеДляПечати какое-либо значение. Если он пуст (или содержит неопределенное значение), функция возвращает Ложь.НЕ инвертирует результат, то есть Если НЕ ЗначениеЗаполнено(...) Тогда означает «Если значение не заполнено, то...».Объект.НаименованиеДляПечати значение из реквизита Объект.Наименование.Объект.Записать; критически важна, так как она сохраняет внесенные изменения в информационной базе. Без этой строки изменения не будут применены.Вариант 2: Для более новых конфигураций, где реквизит может называться НаименованиеПолное (как было уточнено в форуме):
В процессе работы с различными версиями 1С, пользователи часто сталкиваются с тем, что имена реквизитов могут меняться. Это подтвердил один из участников форума, получивший ошибку «Поле объекта не обнаружено (НаименованиеДляПечати)». В таких случаях, наиболее вероятным кандидатом на полное наименование является реквизит НаименованиеПолное.
Если НЕ ЗначениеЗаполнено(Объект.НаименованиеПолное) Тогда
Объект.НаименованиеПолное = Объект.Наименование;
Объект.Записать;
КонецЕсли;
Важно: Перед выполнением кода, всегда проверяйте актуальное имя реквизита в вашей конкретной конфигурации. Вы можете сделать это через конфигуратор, открыв справочник «Номенклатура» и просмотрев его реквизиты, либо используя режим отладки в 1С:Предприятии.
Выполнить в обработке. Система начнет перебирать все элементы справочника «Номенклатура» и применять к ним указанный код.Мы видим, что этот метод реально работает. Один из участников форума подтвердил его эффективность, применив аналогичный подход для контрагентов, где нужно было изменить порядок слов в наименовании, что говорит о гибкости и универсальности данного решения.
Для новых позиций номенклатуры или для обеспечения единообразия при создании элементов в будущем, наиболее предпочтительным и типовым способом является использование шаблонов наименований. Этот механизм позволяет автоматически генерировать как рабочее наименование, так и наименование для печати на основе значений других реквизитов номенклатуры.
НСИ и администрирование -> НСИ -> Классификаторы номенклатуры -> Виды номенклатуры.Использовать шаблон. В поле шаблона можно указать, из каких реквизитов будет формироваться наименование. Например, если вы хотите, чтобы рабочее наименование состояло из краткого наименования и артикула, можно указать [Наименование] ([Артикул]).Использовать шаблон и создайте более детальный шаблон. Например: [Наименование], цвет: [Цвет], размер: [Размер], производитель: [Производитель]. В редакторе формул можно использовать операторы, текстовые значения в кавычках и значения других реквизитов, характеристик или дополнительных свойств (таких как «Цвет», «Мощность», «Вес» и т.д.).Использовать шаблон установлен, наименование будет переформировываться по шаблону при каждой записи номенклатуры, и его нельзя будет редактировать вручную. Это обеспечивает строгий контроль и единообразие.Заполнить рабочее наименование по шаблону или Заполнить наименование для печати по шаблону) в карточке номенклатуры или характеристики, но затем его можно произвольно редактировать.Использование шаблонов — это наиболее предпочтительный и типовой способ для долгосрочного поддержания порядка в номенклатуре, так как он автоматизирует процесс и минимизирует ошибки при ручном вводе.
Для массового обновления существующих элементов номенклатуры, у которых не заполнено «Наименование для печати», мы также можем использовать типовую обработку «Групповое изменение реквизитов», которая не требует написания произвольного кода.
Настройки -> Параметры -> Режим технического специалиста).Функции технического специалиста -> Стандартные -> Групповое изменение реквизитов.Изменять выберите Справочники -> Номенклатура.Добавить элемент, чтобы настроить отбор. Например, чтобы изменить только те позиции, у которых «Наименование для печати» не заполнено, добавьте отбор: Наименование для печати -> Не заполнено.Изменяемые реквизиты, найдите реквизит Наименование для печати (или НаименованиеПолное в зависимости от вашей конфигурации).Новое значение выберите опцию <Заполнить по данным другого реквизита> (или аналогичную, если она доступна) и укажите, что новое значение должно быть равно значению реквизита Наименование.Изменить реквизиты. Обработка проанализирует выбранные элементы и применит изменения.Этот способ удобен тем, что не требует знаний языка 1С и позволяет выполнить массовое обновление через графический интерфейс.
При выполнении любых массовых изменений в базе данных 1С, особенно связанных с номенклатурой, необходимо учитывать ряд важных моментов:
Мы видим, что проблема незаполненного реквизита «Наименование для печати» в справочнике «Номенклатура» 1С:Управление торговлей имеет несколько эффективных решений. Выбор конкретного метода зависит от вашей ситуации:
В любом случае, важно всегда помнить о необходимости резервного копирования и тщательного тестирования всех изменений. Используя предложенные методы, вы сможете обеспечить корректное отображение наименований ваших товаров и услуг во всех печатных документах, улучшив качество учетных данных и взаимодействия с контрагентами.