Сопоставь несопоставленное - пример работы с сопоставлением номенклатуры контрагентов

16.12.21

Функциональные - Документооборот и делопроизводство (СЭД)

Пример использования встроенных типовых конфигураций 1С, в которых есть механизмы сопоставления номенклатуры контрагентов из ЭДО с номенклатурой самой базы 1С.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Внешняя обработка-пример по работе с сопоставлением номенклатуры
.epf 10,84Kb ver:1.0
34
34 Скачать (1 SM) Купить за 1 850 руб.

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

И когда появилась задача сопоставлять номенклатуру из чеков ФНС (для обработок по загрузке чеков: здесь и здесь), то пришлось разбираться как этот механизм можно использовать для решения прикладных задач, несвязанных с ЭДО.
На форму выносим кнопку с командой:
 

&НаКлиенте
Процедура СопоставитьНоменклатуру(Команда)

    ПоказатьСопоставлениеНоменклатуры();

КонецПроцедуры

И добавляем отредактированную (относительно исходной) процедуру:
 

&НаКлиенте
Процедура ПоказатьСопоставлениеНоменклатуры()

    НоменклатураДляСопоставления = Новый Массив;

    Владельцы = Новый Массив;
    НоменклатураКонтрагентовМассив = Новый Массив;
    НоменклатураДляСопоставления = НоменклатураПоВладельцам(Владельцы,НоменклатураКонтрагентовМассив);
    
    Если Не ЗначениеЗаполнено(НоменклатураДляСопоставления) Тогда
        ТекстСообщения = НСтр("ru = 'Сопоставление номенклатуры не требуется.'");
        ПоказатьПредупреждение(, ТекстСообщения);
        Возврат;
    КонецЕсли;

    ДополнительныеПараметры = Новый Структура("НоменклатураДляСопоставления", НоменклатураДляСопоставления);
    ОбработкаЗавершения = Новый ОписаниеОповещения("ОбработатьСопоставлениеНоменклатуры", ЭтотОбъект, ДополнительныеПараметры);
    
    СопоставлениеНоменклатурыКонтрагентовКлиент.ОткрытьСопоставлениеНоменклатуры(НоменклатураДляСопоставления, , ОбработкаЗавершения);
    
КонецПроцедуры


Вставляем две функции по предварительному заполнению массивам, который будет передан для сопоставления. Запрос в функции «НоменклатураКонтрагентовНаКонтроле» изменён относительно первоначального.
 

&НаСервере
Функция НоменклатураПоВладельцам(Владельцы, НоменклатураКонтрагентовМассив)

    Возврат НоменклатураКонтрагентовНаКонтроле(Владельцы, НоменклатураКонтрагентовМассив);

КонецФункции

&НаСервере
Функция НоменклатураКонтрагентовНаКонтроле(Владельцы, НоменклатураКонтрагентовМассив)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ТЗПокупки.НазваниеТовара КАК Наименование,
    |    ТЗПокупки.Контрагент КАК Владелец,
    |    ТЗПокупки.НомерСтроки КАК НомерСтроки
    |ПОМЕСТИТЬ ВТ
    |ИЗ
    |    &ТЗПокупки КАК ТЗПокупки
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВТ.Наименование КАК Наименование,
    |    ВТ.Владелец КАК Владелец,
    |    ВТ.НомерСтроки КАК Идентификатор,
    |    ВТ.НомерСтроки КАК ИдентификаторНоменклатуры,
    |    ВТ.НомерСтроки КАК НомерСтроки
    |ИЗ
    |    ВТ КАК ВТ";

    НаборНоменклатурыКонтрагентов = Новый Массив;
        
    ТЗПокупки = Объект.Покупки.Выгрузить();
    Запрос.УстановитьПараметр("ТЗПокупки",ТЗПокупки);
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
        
        НоменклатураКонтрагента = СопоставлениеНоменклатурыКонтрагентовКлиентСервер.НоваяНоменклатураКонтрагента();
        
        НоменклатураКонтрагента.Вставить("НомерСтроки","");
        
        ЗаполнитьЗначенияСвойств(НоменклатураКонтрагента, Выборка);
        
        ИдентификаторНоменклатуры = СтрЗаменить(НоменклатураКонтрагента.Наименование," ","");
        НоменклатураКонтрагента.Идентификатор = ИдентификаторНоменклатуры + "##";
        НоменклатураКонтрагента.ИдентификаторНоменклатуры = ИдентификаторНоменклатуры;
        
        НаборНоменклатурыКонтрагентов.Добавить(НоменклатураКонтрагента);
        
    КонецЦикла;
    
    Возврат НаборНоменклатурыКонтрагентов;
    
КонецФункции

 
Добавляем процедуру завершения (в которой добавлен небольшой цикл обработки полученного в результате сопоставления массива «Результат»):
 

&НаКлиенте
Процедура ОбработатьСопоставлениеНоменклатуры(Результат, ДополнительныеПараметры) Экспорт
    
    Если Не Результат = Неопределено Тогда
		Для Итератор = 0 По Результат.Количество()-1 Цикл
			
			НоменклатураИзЧека = Результат[Итератор].НоменклатураКонтрагента.Наименование;
			НоменклатураИзБазы = Результат[Итератор].НоменклатураКонтрагента.НоменклатураИБ;
			
			ПараметрыОтбора = Новый Структура;
			ПараметрыОтбора.Вставить("НазваниеТовара", НоменклатураИзЧека);
			НайденныеСтроки = Объект.Покупки.НайтиСтроки(ПараметрыОтбора);
			
			Для каждого НайденнаяСтрока из НайденныеСтроки Цикл
				НайденнаяСтрока.Номенклатура = НоменклатураИзБазы;								
			КонецЦикла;
            
		КонецЦикла;
	КонецЕсли;
    
КонецПроцедуры

Представленный код можно взять и применить в своём решении. Если нет времени на самостоятельную разработку, то можно воспользоваться уже готовым решением.

Пример использования (на основании приложенной к публикации обработки). Имеется три названия товара, принадлежащие двум контрагентам. Следует сопоставить эти названия с номенклатурой из типовой «1С:Бухгалтерия предприятия, редакция 3.0». Убеждаемся, что во всех строках есть названия товара и указаны контрагенты и вызываем команду «Сопоставить номенклатуру».


 

Открывается типовая форма «Сопоставление номенклатуры», где программа отражает уже имеющиеся элементы номенклатуры.


 

Или предлагает варианты сопоставления номенклатуры из базы.


 

При изменении точности поиска будут изменяться возможные варианты для сопоставления.


 

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


 

В результате в столбце «Номенклатура» отразится сопоставленная номенклатура.


 

Разработка и тестирование осуществлялись на типовой конфигурации «Бухгалтерия предприятия, редакция 3.0» (3.0.93.20) и платформе 1С:Предприятие 8.3 (8.3.18.1289).

Сопоставление номенклатуры СопоставлениеНоменклатурыБЭД

См. также

Документооборот и делопроизводство (СЭД) Типовые Бухгалтер Пользователь Руководитель проекта Платформа 1С v8.3 Управленческий учет Платные (руб)

Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:ДО!

48500 руб.

19.02.2016    108546    121    5    

96

Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

89900 руб.

09.06.2020    38666    28    59    

64

SALE! 10%

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

55778 50200 руб.

24.04.2015    194948    150    243    

280

Логистика, склад и ТМЦ Платформа 1С v8.3 Россия Платные (руб)

Подсистема автоматизированного управления складом AS WMS для конфигураций на платформе 1С 8. AS WMS – готовое решение для эффективного управления, хранения и учета на адресном складе. Внедрение системы AS WMS способствует быстрому отбору товара, ускорению инвентаризации, снижению зависимости от персонала, исключению пересорта. AS WMS встраивается в любую конфигурацию на платформе 1С 8 и работает как единая система без обменов. В учетной системе нет необходимости менять процессы под AS WMS (например, вводить ордерную схему), AS WMS использует стандартные документы по товародвижению вашей учетной системы.

40000 руб.

26.07.2023    6059    21    0    

12

SALE! 30%

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Бухгалтер Пользователь Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания сканов или фото товарных документов в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    106882    313    173    

326

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 10.10.2024, версия 9.8 - 9.13)

15600 руб.

20.11.2015    156033    378    378    

513

Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 Сельское хозяйство и рыболовство Строительство Горнодобывающая промышленность Розничная и сетевая торговля (FMCG) Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Лесное и деревообрабатывающее хозяйство Управленческий учет Платные (руб)

Позволяет автоматизировать процесс взвешивания ТМЦ в организациях, осуществляющих приемку и отгрузку различным транспортом, для ведения складского учета и контроля остатков на складах. Конфигурация позволяет фиксировать вес вручную, напрямую с весов, а также управлять дополнительным оборудованием и контролировать движение транспорта.

35000 руб.

24.03.2015    125643    300    114    

136
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1747 24.05.21 08:07 Сейчас в теме
(0) плюс за идею! до такого еще надо додуматься! в реализацию не вникал, но ход мысли вроде как понятен.
2. baldorc 4 29.12.21 10:19 Сейчас в теме
В УТ11 в таблице покупки нужно поправить тип реквизита товары на ОпределяемыйТип.ВладелецНоменклатурыБЭД. Иначе будет ошибка типов при попытке сохранить сопоставление.
3. user1534170 07.05.22 07:12 Сейчас в теме
В УТ 11 (11.4.14.105) "Сопоставление номенклатуры" не находит даже номенклатуру скопированную из нашей же базы. То есть не сопоставляет вообще ничего...
d4rkmesa; Scroudge; PanNataly; +3 Ответить
4. mixqn 17.06.22 16:45 Сейчас в теме
(3) а как выполнялось копирование? в режиме ОбменДанными.Загрузка = Истина?
6. Scroudge 4 21.06.23 15:15 Сейчас в теме
(4) я чё-то этот коммент не понял. в примере ТЧ заполняется руками, а потом инициируется запуск автомата сопоставления.
5. Scroudge 4 21.06.23 14:43 Сейчас в теме
(3) такая же история. не сопоставляет, при этом наименование, полностью идентичное есть в справочнике номенклатуры. конфиг УНФ 3.0.2
9. Scroudge 4 23.06.23 14:11 Сейчас в теме
(3) да, у меня помогло:
1. установка константы Использовать словарь сопоставления номенклатуры БЭД
2. в форме Сопоставление номенклатуры меню Ещё выбрать Перезаполнить словарь сопоставления

после этого заработало (это в УНФ 3,0,2)
11. aleksanders 01.11.23 11:06 Сейчас в теме
(9) Автору плюсанул, отличная идея! В УТ11 и УНФ константы и словарь одинаковые, работает все без проблем. Минусуют те, кто не разобрался. Номенклатуру контрагентов можно использовать для разных целей. С этой идеей кода для сопоставления номенклатур в разы меньше.
12. delta 694 01.11.23 11:20 Сейчас в теме
(11) Доброго дня!
Спасибо за плюс.
Тут вскрылся один интересный момент по сопоставлению номенклатуры в 1С:Бухгалтерии, по которому задали вопрос напрямую в 1С и получили следующий ответ:
Встроенный в конфигурацию 1С:Бухгалтерия (ред.3.0) механизм сопоставления номенклатуры поставщиков (используется для сервиса 1С:ЭДО при сопоставлении номенклатуры), производит сопоставление номенклатуры только по двум видам номенклатуры: ‘Товары’ и ‘Услуги’.
Интересно, а в УТ11 и УНФ тоже есть такие ограничения?
13. aleksanders 16.11.23 18:05 Сейчас в теме
(12)
Встроенный в конфигурацию 1С:Бухгалтерия (ред.3.0) механизм сопоставления номенклатуры поставщиков (используется для сервиса 1С:ЭДО при сопоставлении номенклатуры), производит сопоставление ...

А не знаю и смотреть некогда . У меня все - товар
7. Scroudge 4 21.06.23 15:18 Сейчас в теме
в общем, обработка интересная, но сопоставление совсем не работает.
если б работало, - следующий шаг - загрузка данных из ексель в тч и была бы бомба.
8. Scroudge 4 21.06.23 15:46 Сейчас в теме
нарыл такую штуку как словарь сопоставления и соответствующую константу.
может без них не работает.
на днях попробую - отпишу.
10. Scroudge 4 23.06.23 14:13 Сейчас в теме
для нормальной работы в УНФ 3,0,2 потребовалось
1. установка константы Использовать словарь сопоставления номенклатуры БЭД (через функции специалиста)
2. в форме Сопоставление номенклатуры меню Ещё выбрать Перезаполнить словарь сопоставления
(так заполняется регистр сопоставления)
Оставьте свое сообщение