УТ 10.3 Найти номенклатуру по полному наименованию.
Есть таблица, в которой в качестве наименования указано ПОЛНОЕ наименование номенклатуры. Как сделать поиск по полному наименованию. Если пишу где ААА полное наименование из таблицы, то вылетает по ошибке
Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("НаименованиеПолное",СокрЛП(Лев(ААА,100)));
Ошибка при вызове метода контекста (НайтиПоРеквизиту)
{ВнешняяОбработка.ПрочитатьМакет.Форма.Форма.Форма(12)}: Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("НаименованиеПолное",СокрЛП(Лев(ААА,100)));
по причине:
Неверно указан реквизит
{ВнешняяОбработка.ПрочитатьМакет.Форма.Форма.Форма(12)}: Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("НаименованиеПолное",СокрЛП(Лев(ААА,100)));
по причине:
Неверно указан реквизит
По теме из базы знаний
- СТАБИЛЬНАЯ Загрузка справочника номенклатуры в 1С:Управление торговлей 8 из прайс-листа в Excel (код открыт скачать можно бесплатно)
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Загрузка документов из Excel в 1С: УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Распознавание и загрузка сканов в 1С "одним нажатием". УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Если делаю поиск о артикулу, то никаких ошибок. Проблема в том, что артикул не у всей номенклатуры указан. Отличие в том, что "НаименованиеПолное" - строка неограниченной длины. Другого отличия не вижу.
Указать верно - не вариант?
Не понятно что в этом случае должно считаться "верно"? Есть реквизит "НаименованиеПолное", есть его значение - ААА (беру первые 100 символов).
Если делаю поиск о артикулу, то никаких ошибок. Проблема в том, что артикул не у всей номенклатуры указан. Отличие в том, что "НаименованиеПолное" - строка неограниченной длины. Другого отличия не вижу.
(4)
А если запросом?
Нет поиска по По полному наименованию. Костыль нужен. Выгрузить справочник в ТЗ, в строке добавить колонку,заполнить по строке эту колонку значением Полного наименования. Далее уже искать по значению.
Мудрено. Уж если выгрузить в ТЗ, то и дополнительную колонку не надо делать. Или я не прав? И странно, что по полному наименованию нет поиска, хотя это просто реквизит справочника. Только это строка неограниченной длины.
А если запросом?
(5)
А если запросом?
ВЫБРАТЬ
Т.НаименованиеПолное КАК ПолноеНаименование,
Т.Ссылка КАК Ссылка
ИЗ
Справочник.Номенклатура КАК Т
ГДЕ
Истина
И Выразить(Т.НаименованиеПолное КАК Строка(100))=&ПолноеНаименование
//И Т.НаименованиеПолное ПОДОБНО &ПолноеНаименование + "%"
//И Т.НаименованиеПолное ПОДОБНО "%" + &ПолноеНаименование + "%"
Показать Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТЗ", ТЗ);
Запрос.Текст =
"ВЫБРАТЬ
| Таблица.НомерСтроки КАК НомерСтроки,
| Таблица.НаименованиеПолное КАК НаименованиеПолное
|ПОМЕСТИТЬ ТЗ
|ИЗ
| &ТЗ КАК Таблица
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Таблица.НомерСтроки КАК НомерСтроки,
| МАКСИМУМ(СправочникНоменклатура.Ссылка) КАК Ссылка
|ИЗ
| ТЗ КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
| ПО ((ВЫРАЗИТЬ(Таблица.НаименованиеПолное КАК СТРОКА(1000))) = (ВЫРАЗИТЬ(СправочникНоменклатура.НаименованиеПолное КАК СТРОКА(1000))))
|
|СГРУППИРОВАТЬ ПО
| Таблица.НомерСтроки";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ТЗ[Выборка.НомерСтроки - 1].Номенклатура = Выборка.Ссылка;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот