gifts2017

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

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

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

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

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

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

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

1. юрий гулидов (gull22) 18.07.12 09:38
Неплохо бы для удобства работы пользователя сделать просмотр файла Open прямо из обработки (чтобы определиться с номерами ячеек и полей).
2. Сергей Филькин (FSerg) 18.07.12 09:54
(1) gull22, Точно, как-то сразу не подумал
3. юрий гулидов (gull22) 18.07.12 11:09
Вот для того и существует раздел "Комментарии". Рад помочь автору в совершенствовании его творения (для себя любимого :))
4. розница.net (ZLENKO) 18.07.12 11:39
А каким механизмом реализуется нечеткий поиск ?
5. Сергей Филькин (FSerg) 18.07.12 11:43
(4) розница.net, используется очень популярная здесь компонента StrMatch
6. (dr_dom) 18.07.12 18:22
Подскажите, как с этим быть?
Не выбран ни один из вариантов, будет созданно новое наименование. Выберите группу!
Перед записью в элементе справочника "Номенклатура" необходимо заполнить "базовая единица"!
Перед записью в элементе справочника "Номенклатура" необходимо заполнить "вид номенклатуры"!
7. Сергей Филькин (FSerg) 19.07.12 10:57
(6) dr_dom, Скорее всего не создан пользователь или ему не прописаны значения по умолчанию.
Можно было бы "Вид номенклатуры" и "Базовую единицу" вывести на форму обработки, но мне кажется это лишним, как правило, эти прописываются один раз в настройках пользователя.
8. (dr_dom) 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) 19.07.12 14:31
(8) dr_dom, да меня самого подбешивает нестабильность с Open Office'ом
Надо сделать под ексель.
11. (dr_dom) 24.07.12 16:59
(10)FSerg, срочно нужна была Ваша обработка со стабильной загрузкой через Excel, так что немного подпилил сам. Спасибо за удобный инструмент.
12. Сергей Филькин (FSerg) 26.07.12 16:02
(11) dr_dom, клево, спасибо, качну себе чтоб екселем тоже пользоваться, опен офис ну как-то совсем непредсказуемо себя ведет
13. Александр Омельянов (proger1c81) 26.10.12 00:07
Супер! спасибо! мне как раз сегодня такую задачу поставили - импортировать накладные поставщика в ексель-формате в УТ. А то велосипед как-то не очень хочется изобретать. Придется конечно от ОпенОфиса отказаться, раз уж она такая нестабильная.
14. Сергей Филькин (FSerg) 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) 14.10.14 04:57
(17) vstsoy, Я думаю, что нужно закинуть файлик "StrMatch.dll" в папку с соответствующей версией платформы 1С.
Хотя проблема может быть и из-за 64-битной версии ОС, под x64 не уверен, что компонента будет работать.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа