Доработка подбора в заказ поставщику УТ 11
Когда оператор выбирает номенклатуру в подбор, подсталяется номенклатура поставщика, а из нее артикул.

Если номенклатуры поставщика несколько, она подставляется случайным образом, а поставщику нужен правильный артикул.
Ранее я уже делал, чтобы номенклатура поставщика с пустым артикулом была менее приоритетна, чем с артикулом.
Далее у клиента появилось ЭДО и оно начало плодить дубли номенклатуры поставщика. Номенлатуру из ЭДО можно отобрать по строке «, шт» в наименовании. Ее сделал менее приоритетной.
В итоге код в форме подбора такой:
&Вместо("ЗаполнитьНоменклатуруПартнераПоНоменклатуре") Процедура дор_ЗаполнитьНоменклатуруПартнераПоНоменклатуре(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения) ДанныеПоСтроке = ДанныеДляОбработкиСтроки("ЗаполнитьНоменклатуруПартнераПоНоменклатуре", КэшированныеЗначения); Если ДанныеПоСтроке <> Неопределено Тогда //Если есть артикул, берем эту номенклатуру и не продолжаем вызов Для Каждого Строка ИЗ ДанныеПоСтроке Цикл ТекущаяСтрока.НоменклатураПартнера = АналогСАртикулом(Строка.НоменклатураПартнера); Возврат; //не продолжаем КонецЦикла; КонецЕсли; ПродолжитьВызов(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения); КонецПроцедуры Функция АналогСАртикулом(НоменклатураПартнера) Экспорт //Если нет артикула, берем с артикулом //Но в первую очередь сама исходная номенклатура партнера, которую подобрала 1с (приоритет 0) //во вторую очередь подгруженные из ЭДО (где есть запятая шт) З = Новый Запрос( "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | НоменклатураКонтрагентов.Ссылка КАК Ссылка, | ВЫБОР | КОГДА НоменклатураКонтрагентов.Ссылка.Артикул <> """" | ТОГДА ВЫБОР | КОГДА НоменклатураКонтрагентов.Наименование ПОДОБНО ""%, шт%"" | ТОГДА 2 | КОГДА НоменклатураКонтрагентов.Ссылка = &НоменклатураПартнера | ТОГДА 0 | ИНАЧЕ 1 | КОНЕЦ | ИНАЧЕ 3 | КОНЕЦ КАК Приоритет |ИЗ | Справочник.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов |ГДЕ | НоменклатураКонтрагентов.Владелец = ВЫРАЗИТЬ(&НоменклатураПартнера КАК Справочник.НоменклатураКонтрагентов).Владелец | И НоменклатураКонтрагентов.Номенклатура = ВЫРАЗИТЬ(&НоменклатураПартнера КАК Справочник.НоменклатураКонтрагентов).Номенклатура | |УПОРЯДОЧИТЬ ПО | Приоритет"); З.УстановитьПараметр("НоменклатураПартнера", НоменклатураПартнера); Выборка = З.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.Ссылка; КонецЕсли; КонецФункции
Среда: УТ 11.6.1.70 Объем: 0.6 час




Как выяснилось, что гарантии «100% как в банке» — оказались ложью. Чего и следовало ожидать.
З. Ы. Комментарии из поста по ссылке в тексте