При оформлении документа «Поступление товаров и услуг» часто возникает ситуация: поставщик периодически меняет артикулы или наименования одного и того же физического товара (например, из-за смены фабрики или партии), либо на предприятии решено объединить несколько позиций поставщика в одну внутреннюю карточку номенклатуры. При попытке зафиксировать все соответствия в типовом регистре Номенклатура контрагентов пользователи сталкиваются с невозможностью ввести вторую запись для одного и того же контрагента и товара.
Проанализируем архитектурную причину этой проблемы и рассмотрим подробнее практические варианты решения как типовыми средствами без изменения конфигурации, так и с помощью точечной доработки.
В конфигурации «Управление торговлей» редакции 10.3 механизм сопоставления товаров построен на регистре сведений Номенклатура контрагентов. Выясним, почему программа не позволяет добавить вторую строку:
Контрагент, Номенклатура и Характеристика номенклатуры.АртикулНоменклатурыКонтрагента, НаименованиеНоменклатурыКонтрагента, КодНоменклатурыКонтрагента и ШтрихкодНоменклатурыКонтрагента являются ресурсами.Платформа 1С контролирует уникальность записей строго по комбинации измерений. Если для определенного контрагента и карточки номенклатуры без характеристик уже создана запись, повторно записать строку с другим артикулом или наименованием нельзя — система выдаст ошибку о неуникальности ключевых полей.
Самый простой и удобный способ решить задачу штатными средствами без доработки конфигурации — задействовать регистр сведений Штрихкоды.
В этом регистре поле Штрихкод является измерением, а Номенклатура — реквизитом. Это значит, что к одной позиции внутренней номенклатуры можно привязать неограниченное количество различных кодов.
Разберем по шагам, как настроить данный вариант:
Номенклатура.Code 128 или Code 39 (в отличие от формата EAN-13, эти форматы поддерживают произвольные буквенно-цифровые строки любой длины).Как выполнять поиск в документах: при заполнении табличной части документа Поступление товаров и услуг используем стандартный поиск по штрихкоду (горячая клавиша F7 или поле ввода штрихкода). Вводим артикул поставщика из накладной — программа моментально находит и подставляет нужную внутреннюю номенклатуру.
Поскольку поле Характеристика номенклатуры входит в состав измерений регистра Номенклатура контрагентов, уникальность записей можно обойти через характеристики.
Номенклатура контрагентов создадим записи под каждую характеристику с соответствующим артикулом и наименованием поставщика.Ограничение метода: использование характеристик накладывает обязательство указывать их во всех дальнейших складских и торговых операциях (перемещения, реализация, инвентаризация), что не всегда удобно для простого учета.
Если конфигурация снята с полной поддержки или находится на сопровождении у программиста, наиболее корректным системным решением будет изменение структуры метаданных регистра Номенклатура контрагентов.
Разберем порядок доработки в конфигураторе:
РегистрыСведений → НоменклатураКонтрагентов.АртикулНоменклатурыКонтрагента (или КодНоменклатурыКонтрагента) из раздела Ресурсы в раздел Измерения.После переноса артикула в измерения ключевой парой станет комбинация Контрагент + Номенклатура + Артикул поставщика. Это снимет ограничение уникальности и позволит заносить для одного поставщика и одного внутреннего товара сколько угодно различных артикулов и наименований через штатный диалог подбора номенклатуры контрагентов.
Если доработка конфигурации нежелательна, а ввод поступлений осуществляется из электронных документов (Excel, XML, табличные документы), удобнее подключить внешнюю обработку табличной части для документа Поступление товаров и услуг.
Внешняя обработка может хранить собственную матрицу соответствий связей «многие к одному» в дополнительном файле или настраиваться оператором на лету: при совпадении неизвестного артикула поставщика оператор вручную выбирает внутреннюю номенклатуру, а обработка автоматически сопоставляет строку и заполняет документ поступления.