Загрузка приходных накладных из Excel с использованием нечеткого поиска и Open Office





Внешняя обработка для загрузки табличной части "Товары" приходной накладной

Очередная обработка загрузки накладных из Excel. Не раз здесь выкладывались обработки, которые используют нечеткий поиск, а именно компоненту StrMatch. Но мне нужна была обработка, которая подключается как внешняя форма (т.е. вообще без вмешательства в базу) и чтобы для доступа к таблицам Excel использовался Open Office (у большинства клиентов — нет денег на MS Office).

По кратинкам должно быть понятно:
— подключается как внешнаяя обработка заполнения табличных частей
— смотрим структуру екселевского файла, запоминаем номера колонок данных и диапазон строк с данными
— прописываем настройки в обработке (можно сохранять эти профили для разных поставщиков)
— запускаем загрузку
а вот тут самое главное: 
— — обработка в цикле перебирает каждую строчку таблицы с данными и показывает пользователю несколько найденных похожих вариантов из справочника номенклатуры
— — далее пользователь или выбирает что-то из найденных вариентов, или жмет Esc (Закрыть)
— — если нажат Esc (Закрыть), т.е. подходящего вариант найдено не было, то обработка предлагает выбрать группу где будет создана новое наименование.
— — на всякий случай есть еще кнопки «пропустить» и «прервать»

Небольшая особенность:
Функцию доступа к данным Excel  с помощью Open Office я использую чужую, найденную тут же на infostart.ru (ссылка на автора не сохранилась, к сожалению). Иногда срабатывает некорректно, особено если длинный путь к файлу Excel. Бывает достаточно перезапустить обработку, иногда нужно кинуть файл в папку с простым коротким именем.

16 Comments

  1. gull22

    Неплохо бы для удобства работы пользователя сделать просмотр файла Open прямо из обработки (чтобы определиться с номерами ячеек и полей).

    Reply
  2. FSerg

    (1) gull22, Точно, как-то сразу не подумал

    Reply
  3. gull22

    Вот для того и существует раздел «Комментарии». Рад помочь автору в совершенствовании его творения (для себя любимого :))

    Reply
  4. ZLENKO

    А каким механизмом реализуется нечеткий поиск ?

    Reply
  5. FSerg

    (4) розница.net, используется очень популярная здесь компонента StrMatch

    Reply
  6. dr_dom

    Подскажите, как с этим быть?

    Не выбран ни один из вариантов, будет созданно новое наименование. Выберите группу!

    Перед записью в элементе справочника «Номенклатура» необходимо заполнить «базовая единица»!

    Перед записью в элементе справочника «Номенклатура» необходимо заполнить «вид номенклатуры»!
    Reply
  7. FSerg

    (6) dr_dom, Скорее всего не создан пользователь или ему не прописаны значения по умолчанию.

    Можно было бы «Вид номенклатуры» и «Базовую единицу» вывести на форму обработки, но мне кажется это лишним, как правило, эти прописываются один раз в настройках пользователя.

    Reply
  8. dr_dom

    (7)Спасибо.

    Еще позволю себе посоветовать Вам реализовать возможность выбора между OpenOffice Calc и MS Office Excel для обработки файла. Уж очень не стабильно работает загрузка через OpenOffice Calc.

    Reply
  9. baronzelan4
    Еще позволю себе посоветовать Вам реализовать возможность выбора между OpenOffice Calc и MS Office Excel для обработки файла. Уж очень не стабильно работает загрузка через OpenOffice

    Поддерживаю.

    Reply
  10. FSerg

    (8) dr_dom, да меня самого подбешивает нестабильность с Open Office’ом

    Надо сделать под ексель.

    Reply
  11. dr_dom

    (10)FSerg, срочно нужна была Ваша обработка со стабильной загрузкой через Excel, так что немного подпилил сам. Спасибо за удобный инструмент.

    Reply
  12. FSerg

    (11) dr_dom, клево, спасибо, качну себе чтоб екселем тоже пользоваться, опен офис ну как-то совсем непредсказуемо себя ведет

    Reply
  13. proger1c81

    Супер! спасибо! мне как раз сегодня такую задачу поставили — импортировать накладные поставщика в ексель-формате в УТ. А то велосипед как-то не очень хочется изобретать. Придется конечно от ОпенОфиса отказаться, раз уж она такая нестабильная.

    Reply
  14. FSerg

    Лучше взять вот эту: http://infostart.ru/public/128443/ доработанную версию, там уже и ексель и другие плюшки 🙂

    Reply
  15. vstsoy

    после Выполнить выдает Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту) {Форма.Форма.Форма(115)}: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту)

    ЗагрузитьВнешнююКомпоненту(«StrMatch.dll»);

    по причине:

    Ошибка при загрузке внешней компоненты

    как это победить?

    Reply
  16. FSerg

    (17) vstsoy, Я думаю, что нужно закинуть файлик «StrMatch.dll» в папку с соответствующей версией платформы 1С.

    Хотя проблема может быть и из-за 64-битной версии ОС, под x64 не уверен, что компонента будет работать.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *