Как вывести разные наименования одной номенклатуры для разных документов в 1С 7.7?

Программист 1С v7.7 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В торговой деятельности часто возникает ситуация, когда одно и то же наименование товара должно отображаться по-разному в зависимости от адресата документа. Для покупателей в накладных и счетах-фактурах указывается понятное и «красивое» полное наименование товара. Однако поставщики часто требуют, чтобы в заказе на поставку товары указывались в строгом соответствии с их собственным прайс-листом (включая специфические аббревиатуры, рекламные пометки и сервисные символы).

Разберем основные архитектурные варианты решения этой задачи в конфигурации 1С:Торговля и Склад 7.7 (ТиС 9.2), а также оценим их плюсы и минусы с точки зрения удобства поддержки базы данных.

Вариант 1. Использование подчиненного справочника номенклатуры поставщиков

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

Проанализируем порядок действий для реализации этого способа:

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

Для получения наименования товара по конкретному контрагенту в модуле печатной формы опишем глобальную или локальную функцию:


Функция глНаименованиеПоставщика(ВыбНоменклатура, ВыбКонтрагент)
    Перем Спр;
    Спр = СоздатьОбъект("Справочник.НоменклатураПоставщиков");
    
    // В случае подчинения справочнику Номенклатура:
    Спр.ИспользоватьВладельца(ВыбНоменклатура);
    Если Спр.НайтиПоРеквизиту("Контрагент", ВыбКонтрагент, 0) > 0 Тогда
        Возврат Спр.НаименованиеПоставщика;
    Иначе
        // Если специальное наименование не задано, выводим стандартное
        Возврат ВыбНоменклатура.Наименование;
    КонецЕсли;
КонецФункции

Преимущества: при смене поставщика или закупке товара у нескольких контрагентов система работает корректно без необходимости плодить дубликаты в основном справочнике номенклатуры.

Вариант 2. Использование штатного механизма свойств номенклатуры

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

Рассмотрим пошагово настройку этого механизма в режиме пользователя:

  1. Открываем меню Справочники — Прочие — Виды свойств.
  2. Создаем новое свойство, например, Наименование для поставщика.
  3. Указываем настройку, что свойство не может принимать множество значений (если товар закупается строго у одного поставщика).
  4. В форме номенклатуры на вкладке свойств задаем текстовое значение, полностью повторяющее наименование из прайса поставщика.
  5. Создаем внешнюю печатную форму (ВПФ) для документа заказа, которая при формировании печатного печатного листа считывает значение данного свойства номенклатуры.

Ограничения: длинные наименования поставщика могут не поместиться в стандартную длину значения свойства (часто ограничена 100 символами). При увеличении количества поставщиков придется заводить отдельное свойство под каждого контрагента.

Вариант 3. Использование типового справочника «Аналоги»

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

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

Резюме и рекомендации

Выясним, какой метод выбрать в зависимости от условий задачи:

← На главную