Вопрос о загрузке номенклатуры из внешнего файла

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

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

Вопрос, как указать "ключ" поиск на совпадение только по цифрам, не обращая внимание на другие символы.
Т.е. к примеру у нас артикул 1234-5678-90, а прислали артикул в списке заказа 1234567890,
ну и наоборот у нас одним массивом цифр забит, а клиент разбил на группы.
 
Алексей Токарев, добрый день, уточните, пожалуйста, о какой конфигурации идет речь?
 
Добрый день. Альфа Авто Проф 5.1.27.04
 
Алексей Токарев, проверьте, пожалуйста, колонку "№ для поиска" в справочнике "номенклатура", здесь как раз "очищенный" от дополнительных символов № по каталогу.  
 
Добрый день.

Произвел загрузку табличной части из файла (эксель) в документе "Заказ поставщику", указав в настройках загрузки в колонке номенклатура "№ для поиска".
Загружены не все позиции, хотя цифры загружаемых артикулов есть в артикулах номенклатуры базы данных. Отличаются они символами разделения между цифрами "-" или ".". При этом, если открыть подбор и скопировать туда загружаемый артикул, то 1С находит его среди номенклатуры, не обращая внимания на символы разделения (позиция в списке загружаемых №5).

Скриншоты в приложении.
Изменено: Алексей Токарев - 16.09.2021 08:40:19
 
Алексей Токарев, а Вы проверили справочник номенклатуры? у Вас "№ для поиска" очищен от дополнительных символов?
 
Не нашел в карточке номенклатуры поле "№ для поиска" или это "№ по каталогу".

Не совсем понял, что означает "очищен", т.е. в поле "№ по каталогу", должен быть артикул очищенный от других символов?

Тогда почему в подборе это не имеет значения и находит независимо от того, очищенный артикул в номенклатуре или нет?
Я думал, что логика механизма поиска по артикулу одна в конфигурации.
 
Цитата
Светлана Сулименко написал:
проверьте, пожалуйста, колонку "№ для поиска" в справочнике "номенклатура",
нужно включить в справочнике "номенклатура" через настройку списка.
 
Включил, нашел. В этом поле только цифры.
Но как это мне поможет при загрузке в табличную часть документа из файла (эксель). Там указываю поиск по "№ по каталогу (для поиска)" и 1С совпадений не находит.
В справочнике номенклатура забивают этот же артикул и карточка находится, не обращая внимания не несовпадение по нецифровым символам.

Скриншот в приложении.
 
Алексей Токарев, наверно мы друг друга не поняли изначально, если поставщик присылает Вам артикулы без дополнительных символов, а у Вас в Альфа-Авто дополнительные символы присутствуют, то указанный мной вариант подходит. Если у Вас артикулы различаются с поставщиком полностью (т.е. присутствуют дополнительные символы и там и там разные), то поиска не произойдет.  
 
Правильно ли я понял, что механизм поиска номенклатуры на совпадение в самом справочнике номенклатура и при загрузке из файла работает по разному алгоритму.
И добиться универсальности поиска при загрузке из файла у меня не получится. Только если ручным перебором через подбор номенклатуры в документе.

Просто пришел заказ от клиента на 650 позиций в виде эксель файла из их базы данных с их артикулами (каждый контрагент ведет артикулы по своему, со своими ошибками и особенностями). При подгрузке через "заполнить из файла" у меня процентов 30% максимум заполняются, а ручным подбором почти все находятся.
Времени теряется при этом очень и очень много.
 
Алексей Токарев, указанный Вами вопрос носит частный характер, необходимо смотреть Вашу базу и файл загружаемых данных. Вышлите, пожалуйста, на почту alfa@rarus.ru ссылку для скачивания копии базы, а также укажите регистрационный номер от Альфа-Авто с активной техподдержкой и данную ветку форума.
 
Цитата
Алексей Токарев написал:
Правильно ли я понял, что механизм поиска номенклатуры на совпадение в самом справочнике номенклатура и при загрузке из файла работает по разному алгоритму.
И добиться универсальности поиска при загрузке из файла у меня не получится. Только если ручным перебором через подбор номенклатуры в документе.

Просто пришел заказ от клиента на 650 позиций в виде эксель файла из их базы данных с их артикулами (каждый контрагент ведет артикулы по своему, со своими ошибками и особенностями). При подгрузке через "заполнить из файла" у меня процентов 30% максимум заполняются, а ручным подбором почти все находятся.
Времени теряется при этом очень и очень много.
Добрый день. В правилах загрузки для поля номенклатура используйте следующий алгоритм:
Код
АртикулДляПоиска = Справочник.Номенклатура.ПреобразоватьВАртикулДляПоиска(ТекстЯчейки);
МассивНайденныхПозиций = Справочник.Номенклатура.НайтиНоменклатуру(АртикулДляПоиска,,,,, Истина);
Если МассивНайденныхПозиций.Количество() Тогда
   Результат = МассивНайденныхПозиций[0];
   Если МассивНайденныхПозиций.Количество() > 1 Тогда
      Сообщить("По артикулу " + ТекстЯчейки + " не найдено несколько позиций в номенклатуре");
   КонецЕсли;
Иначе
   Сообщить("По артикулу " + ТекстЯчейки + " не найдена номенклатура");
КонецЕсли;
 
Цитата
Код
 АртикулДляПоиска = Справочник.Номенклатура.ПреобразоватьВАртикулДляПоиска(ТекстЯчейки);
МассивНайденныхПозиций = Справочник.Номенклатура.НайтиНоменклатуру(АртикулДляПоиска,,,,, Истина);
Если МассивНайденныхПозиций.Количество() Тогда
   Результат = МассивНайденныхПозиций[0];
   Если МассивНайденныхПозиций.Количество() > 1 Тогда
      Сообщить("По артикулу " + ТекстЯчейки + " не найдено несколько позиций в номенклатуре");
   КонецЕсли;
Иначе
   Сообщить("По артикулу " + ТекстЯчейки + " не найдена номенклатура");
КонецЕсли;
 

Добрый день. Попробовал использовать данный запрос через "вычислять" номенклатуру. 1С ругнулась ошибкой.

"Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,20)}: Переменная не определена (Справочник)"

соответственно не нашла ни одной позиции.
Изменено: Алексей Токарев - 20.09.2021 11:48:54
 
Цитата
Алексей Токарев написал:
Цитата
Код
  АртикулДляПоиска = Справочник.Номенклатура.ПреобразоватьВАртикулДляПоиска(ТекстЯчейки);
МассивНайденныхПозиций = Справочник.Номенклатура.НайтиНоменклатуру(АртикулДляПоиска,,,,, Истина);
Если МассивНайденныхПозиций.Количество() Тогда
   Результат = МассивНайденныхПозиций[0];
   Если МассивНайденныхПозиций.Количество() > 1 Тогда
      Сообщить("По артикулу " + ТекстЯчейки + " не найдено несколько позиций в номенклатуре");
   КонецЕсли;
Иначе
   Сообщить("По артикулу " + ТекстЯчейки + " не найдена номенклатура");
КонецЕсли;
  
 
Добрый день. Попробовал использовать данный запрос через "вычислять" номенклатуру. 1С ругнулась ошибкой.

"Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,20)}: Переменная не определена (Справочник)"

соответственно не нашла ни одной позиции.

Вместо "Справочник.Номенклатура" должно быть "Справочники.Номенклатура"
 
Большое спасибо всем, кто помогал! Проблема решена.  
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С