В торговой деятельности часто возникает ситуация, когда одно и то же наименование товара должно отображаться по-разному в зависимости от адресата документа. Для покупателей в накладных и счетах-фактурах указывается понятное и «красивое» полное наименование товара. Однако поставщики часто требуют, чтобы в заказе на поставку товары указывались в строгом соответствии с их собственным прайс-листом (включая специфические аббревиатуры, рекламные пометки и сервисные символы).
Разберем основные архитектурные варианты решения этой задачи в конфигурации 1С:Торговля и Склад 7.7 (ТиС 9.2), а также оценим их плюсы и минусы с точки зрения удобства поддержки базы данных.
Данный вариант является наиболее универсальным и правильным с точки зрения проектирования структуры данных. Он позволяет привязать к одной карточке вашей номенклатуры неограниченное количество наименований и артикулов различных поставщиков.
Проанализируем порядок действий для реализации этого способа:
НоменклатураПоставщиков).Номенклатура: внутри справочника создается реквизит Контрагент с включенными флагами «Отбор» и «Сортировка».Контрагенты: внутри справочника создается реквизит Номенклатура с включенными флагами «Отбор» и «Сортировка». Этот способ удобнее при частой загрузке прайс-листов конкретных контрагентов.НаименованиеПоставщика со строковым типом достаточной длины).Для получения наименования товара по конкретному контрагенту в модуле печатной формы опишем глобальную или локальную функцию:
Функция глНаименованиеПоставщика(ВыбНоменклатура, ВыбКонтрагент)
Перем Спр;
Спр = СоздатьОбъект("Справочник.НоменклатураПоставщиков");
// В случае подчинения справочнику Номенклатура:
Спр.ИспользоватьВладельца(ВыбНоменклатура);
Если Спр.НайтиПоРеквизиту("Контрагент", ВыбКонтрагент, 0) > 0 Тогда
Возврат Спр.НаименованиеПоставщика;
Иначе
// Если специальное наименование не задано, выводим стандартное
Возврат ВыбНоменклатура.Наименование;
КонецЕсли;
КонецФункции
Преимущества: при смене поставщика или закупке товара у нескольких контрагентов система работает корректно без необходимости плодить дубликаты в основном справочнике номенклатуры.
Если вносить изменения в структуру конфигуратора нежелательно (например, чтобы минимизировать сложности при регулярных обновлениях), можно использовать встроенный механизм категорий и свойств.
Рассмотрим пошагово настройку этого механизма в режиме пользователя:
Наименование для поставщика.Ограничения: длинные наименования поставщика могут не поместиться в стандартную длину значения свойства (часто ограничена 100 символами). При увеличении количества поставщиков придется заводить отдельное свойство под каждого контрагента.
В типовой конфигурации 1С:Торговля и Склад 7.7 предусмотрен встроенный справочник Аналоги. Данный механизм позволяет связывать позиции между собой и сопоставлять товары с владельцами каталогов.
При использовании этого механизма к карточке товара привязывается аналог, содержащий специфические атрибуты и наименования. Однако получение данных из этого справочника в коде печатной формы требует более сложной логики выборки с учетом владельцев каталогов, что делает этот путь менее популярным среди начинающих разработчиков по сравнению с отдельным подчиненным справочником.
Выясним, какой метод выбрать в зависимости от условий задачи:
НоменклатураПоставщиков). Это наиболее масштабируемое решение, устойчивое к изменениям бизнес-процессов.