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

Опубликовал Сергей Филькин (FSerg) в раздел Обработки - Обработка документов

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

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

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

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

Скачать файлы

Наименование Файл Версия Размер
Обработка загрузки накладных
.epf 21,50Kb
17.07.12
158
.epf 21,50Kb 158 Скачать
Внешняя компонента, используемая для нечеткого поиска
.zip 543,03Kb
17.07.12
75
.zip 543,03Kb 75 Скачать

См. также

Добавить вознаграждение
Комментарии
1. юрий гулидов (gull22) 80 18.07.12 09:38 Сейчас в теме
Неплохо бы для удобства работы пользователя сделать просмотр файла Open прямо из обработки (чтобы определиться с номерами ячеек и полей).
2. Сергей Филькин (FSerg) 62 18.07.12 09:54 Сейчас в теме
(1) gull22, Точно, как-то сразу не подумал
3. юрий гулидов (gull22) 80 18.07.12 11:09 Сейчас в теме
Вот для того и существует раздел "Комментарии". Рад помочь автору в совершенствовании его творения (для себя любимого :))
4. розница.net (ZLENKO) 18.07.12 11:39 Сейчас в теме
А каким механизмом реализуется нечеткий поиск ?
5. Сергей Филькин (FSerg) 62 18.07.12 11:43 Сейчас в теме
(4) розница.net, используется очень популярная здесь компонента StrMatch
6. (dr_dom) 66 18.07.12 18:22 Сейчас в теме
Подскажите, как с этим быть?
Не выбран ни один из вариантов, будет созданно новое наименование. Выберите группу!
Перед записью в элементе справочника "Номенклатура" необходимо заполнить "базовая единица"!
Перед записью в элементе справочника "Номенклатура" необходимо заполнить "вид номенклатуры"!
7. Сергей Филькин (FSerg) 62 19.07.12 10:57 Сейчас в теме
(6) dr_dom, Скорее всего не создан пользователь или ему не прописаны значения по умолчанию.
Можно было бы "Вид номенклатуры" и "Базовую единицу" вывести на форму обработки, но мне кажется это лишним, как правило, эти прописываются один раз в настройках пользователя.
8. (dr_dom) 66 19.07.12 11:54 Сейчас в теме
(7)Спасибо.

Еще позволю себе посоветовать Вам реализовать возможность выбора между OpenOffice Calc и MS Office Excel для обработки файла. Уж очень не стабильно работает загрузка через OpenOffice Calc.
9. jim nil (baronzelan4) 19.07.12 12:23 Сейчас в теме
Еще позволю себе посоветовать Вам реализовать возможность выбора между OpenOffice Calc и MS Office Excel для обработки файла. Уж очень не стабильно работает загрузка через OpenOffice
Поддерживаю.
10. Сергей Филькин (FSerg) 62 19.07.12 14:31 Сейчас в теме
(8) dr_dom, да меня самого подбешивает нестабильность с Open Office'ом
Надо сделать под ексель.
11. (dr_dom) 66 24.07.12 16:59 Сейчас в теме
(10)FSerg, срочно нужна была Ваша обработка со стабильной загрузкой через Excel, так что немного подпилил сам. Спасибо за удобный инструмент.
12. Сергей Филькин (FSerg) 62 26.07.12 16:02 Сейчас в теме
(11) dr_dom, клево, спасибо, качну себе чтоб екселем тоже пользоваться, опен офис ну как-то совсем непредсказуемо себя ведет
13. Александр Омельянов (proger1c81) 26.10.12 00:07 Сейчас в теме
Супер! спасибо! мне как раз сегодня такую задачу поставили - импортировать накладные поставщика в ексель-формате в УТ. А то велосипед как-то не очень хочется изобретать. Придется конечно от ОпенОфиса отказаться, раз уж она такая нестабильная.
14. Сергей Филькин (FSerg) 62 26.10.12 00:17 Сейчас в теме
Лучше взять вот эту: http://infostart.ru/public/128443/ доработанную версию, там уже и ексель и другие плюшки :)
15. Eugeneer (Eugeneer) 26.10.12 08:25 Сейчас в теме
Правильнее было бы написать не "(у большинства клиентов - нет денег на MS Office)", а нет желания покупать ПО
16. Eugeneer (Eugeneer) 26.10.12 08:28 Сейчас в теме
Вриантов решений загрузки без экселя очень много. Тк как считать экселевский файл можно множеством видов процедур, под опенофис - тут валом решений, и кода всего то на 100 строк.
17. Цой Вячеслав (vstsoy) 14.10.14 04:05 Сейчас в теме
после Выполнить выдает Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту) {Форма.Форма.Форма(115)}: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту)
ЗагрузитьВнешнююКомпоненту("StrMatch.dll");
по причине:
Ошибка при загрузке внешней компоненты
как это победить?
18. Сергей Филькин (FSerg) 62 14.10.14 04:57 Сейчас в теме
(17) vstsoy, Я думаю, что нужно закинуть файлик "StrMatch.dll" в папку с соответствующей версией платформы 1С.
Хотя проблема может быть и из-за 64-битной версии ОС, под x64 не уверен, что компонента будет работать.