gifts2017

Выгрузка и загрузка данных из файла Excel с поиском по любым полям (есть поиск по ссылке, всего три итерации поиска. Управляемые формы или "Такси")

Опубликовал Пафнутий Чебышев (primat) в раздел Обработки - Обработка документов

Обработка позволяет загружать данные с поиском по ссылке как для загружаемого объекта, так и его свойств. Загружает справочники, документы, планы видов характеристик. Будет полезна как замена использования конвертации данных для задач переноса, а также как классическая загрузка из табличного документа (Excel). Поиск объекта при загрузке выполняется до трех раз с разными полями поиска (поля поиска настраиваются). Также реализована выгрузка в Excel по ссылкам. У обработки удобный интерфейс, в котором разберется даже начинающий пользователь. Загрузка накладных из файлов xls реализована с интеллектуальным поиском колонок с данными. В интеллектуальном поиске поддерживаются все основные типовые печатные формы.

Была поставлена задача обновления справочника в одной базе по данным из другой. Причем база-источник УТ 10.2, и не поддерживает работу через универсальный обмен в формате XML, а база-приемник самописная, хоть и на БСП и справочники в них похожей структуры. На Инфостарте есть множество обработок загрузки данных из файла Excel. Открываю одну, другую. Ни в одной обработке нет возможности указать колонку, в которой у меня поле Ссылка.

Обработка была создана для решения задачи загрузки данных между базами 1С, между которыми соблюдалась ссылочная целостность справочника (одна из баз когда-то была создана загрузкой из первой). Также для универсальности разработана удобная загрузка из типовых печатных форм (ТОРГ-12 и прочие) в табличные части документа. При этом обработка разбирает любую печатную форму, сама находит на ней пригодные для загрузки данные.

Есть большое количество планов по развитию выгрузки и загрузки данных. Они описаны ниже по тексту публикации. Выполняться они будут в порядке приоритета просьб пользователей - что будут больше просить, то будем раньше делать. Поэтому все свои пожелания пишите в комментариях к публикации.

Поиск по ссылке является самым надежным и удобным способом поиска элементов при загрузке данных, если элементы справочника создаются только в одной из баз. Именно так происходит поиск объектов у большинства справочников во всех обменах между конфигурациями фирмы 1С, в том числе и в "новомодном" обмене через формат Enterprise Data.

Но так как все-таки поиск по ссылке подходит не для всех ситуаций, в обработке реализован поиск в три итерации. Можно вообще не указывать поиск по ссылке, а указать любой список полей поиска для каждой из итераций. Если элемент найден по комбинации значений полей поиска, то поиск прекращается, на следующую итерацию алгоритм не переходит.

В каких случаях будет полезна обработка? (Сценарии использования)

 Можно рассмотреть два основных сценария использования обработки:

1) Перенос данных между базами 1С в ситуациях, когда новые элементы справочника создаются только в одной из баз, а также любых других ситуациях. Если нет совпадения ссылок элементов, то возможна настройка поиска по другим полям.

2) Загрузка табличных частей документов из файлов Excel из печатных форм любого формата. Потребуется указание имен колонок. При загрузке работает интеллектуальный поиск только значащих колонок и строк для загрузки в табличную часть.

3) Групповое изменение реквизитов объектов через файл Excel (с последующей загрузкой обратно в ту же базу).

4) Обмен данными между похожими конфигурациями для объединения справочников.

Преимущества обработки

  • Удобный интуитивно понятный интерфейс;
  • Возможность загрузки с гарантией отсутствия дублей при совпадении ссылок в источнике и базе, в которую производится загрузка;
  • Поиск элементов при загрузке в три итерации. Можно настроить разные комбинации полей поиска;
  • Настройки обработки сохраняются при следующем открытии.
  • Ведутся работы по оптимизиации производительности проведения загрузки данных (хотя загрузка через СОМ сама по себе работает медленно, лучше сначала способ подключения к файлу оптимизировать мне).

Особенности работы с обработкой

  • 1) Загрузка в табличную часть объекта или выгрузка из табличных частей в настоящее время не реализованы. Если Вам это необходимо, сообщите, разработаем в первую очередь именно этот функционал.
  • 2) Алгоритм поиска таблицы с данными в загружаемых файлах Excel следующий. Касается он типовых форм (ТОРГ-12, Счет-фактура, акт об оказании услуг и прочие). Так как при выгрузке с помощью обработки из этой публикации выгружаются сразу колонки с данными, а в первой строке располагаются имена колонок.
  • Алгоритм поиска следующий: сначала ищется ячейка со значением "№". Это означает колонку с нумерацией строк. Если находится, то далее остаются только строки этой таблицы, остальное все удаляется.
  • Если такой ячейки не находится, то срабатывает алгоритм поиска строки с номерами колонок. Колонки нумеруются в таких типовых печатных формах как ТОРГ-12, Счет-фактура и многих других. Если такая строка находится, то загружаются строки согласно номерам колонок, остальные данные очищаются.
  • Также для определения таблицы с данными используется алгоритм подсчета заполненных ячеек. Все крайние строки с малым числом заполненных ячеек удаляются из таблицы при загрузке.

Планы развития

  • Разработать обработку выгрузки по ссылке (Основной объект выгружается вместе со всеми реквизитами. Реквизиты ссылочного типа выгружаются только в виде ссылки (строка с глобальным уникальным идентификатором).
  • Разработать несколько способов загрузки данных, кроме СОМ-подключения (ADO, Yoksel).
  • Сделать при создании новых объектов заполнение реквизитов по умолчанию в соответствии с настройками (конкретные значения или указание формул расчета).
  • Сохранение настроек обработки для конфигурации, не содержащих БСП (Для содержащих БСП сохранение настроек уже реализовано).
  • Сохранение настроек соответствия колонок табличного документа и файла печатной формы в Excel.
  • Реализовать фильтры по значениям полей объекта в обработке выгрузки данных;
  • Реализовать выгрузку табличных частей документов в обработке выгрузки данных;
  • Загрузка в табличную часть объектов;
  • Сохранение значений полей обработки выгрузки в Excel при следующем открытии.
  • Сделать удобную ширину колонок табличного документа как при сохранении, так и при открытии файла (и на форме обработки загрузки также).

Требования для работы обработки

  • Необходима актуальная версия платформы 1С:Предприятие 8.3.
  • Конфигурации источник и приемник могут быть любыми, работающими в интерфейсе Управляемые формы или Такси.
  • Код обработки открыт. Возможно любое редактирование по Вашему желанию. Запрещается только размещение в интернете или другое массовое распространение.
  • Принимаются пожелания по развитию обработки. Если пожелание признается полезным, то реализуется, разумеется, бесплатно.
  • Возможна платная доработка под Ваши потребности. С деталями задачи обращайтесь через личные сообщения.
  • Ошибки и замечания пишите в комментариях к публикации, будем стараться оперативно их исправлять.

Сравнение версий

25.11.2016 - выложена обновленная версия, которая использовалась в реальной работе компаний-заказчиков весь 2016 год. Исправлены ошибки, добавлены поля настройки при загрузке. Добавлена загрузка через ADO (скорость загрузки данных значительно выросла).

05.05.2016 - реализована загрузка в табличные части документов и справочников.

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

Наименование Файл Версия Размер
Обработка загрузки из табличного документа с поиском по ГУИД 51
.rar 16,55Mb
25.11.16
51
.rar 2.1 16,55Mb Скачать
Обработка выгрузки данных в Excel 68
.epf 13,59Kb
05.05.16
68
.epf 1 13,59Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Пафнутий Чебышев (primat) 20.10.15 15:03
Уважаемые пользователи, пишите здесь или через личные сообщения свои пожелания и замечания и идеи по развитию разработки.
2. Алексей Т. (CratosX) 27.10.15 10:30
(0)
Внимание. Загрузка в табличную часть в данный момент не работает.


Когда будет?
3. Пафнутий Чебышев (primat) 28.10.15 09:40
(2) CratosX, добрый день. Сделаю до понедельника (до 2го ноября).
4. Сергей Незведов (woot) 07.11.15 16:55
Сегодня уже 7-е,не сделал)
5. Пафнутий Чебышев (primat) 05.05.16 23:37
Реализована загрузка в табличную часть объектов. В данный момент загружает таблицу данных только в одну табличную часть за раз и только в один выбранный вручную объект.
Если пользователям понадобится, то добавлю поиск объектов, табличные части которых нужно дополнять строками.

Также разработка сделана условно-бесплатной - за sm. Это изменение только на время доработки новой версии действует. Спешите пробовать обработку, скачивайте сейчас!
6. Александр Маценков (All_1972) 25.06.16 19:29
7. Пафнутий Чебышев (primat) 26.06.16 12:40
(6) All_1972, что не работает? Последние месяцы есть большая задача по загрузке из эксэля, в рамках ее дорабатываю обработку, сделал загрузку в табличную часть, много другого. Так что, возможно, уже исправил эту ошибку...
8. Алексей Ларин (roofless) 12.07.16 14:52
(1) primat, из коробки не заработало. на выходе имею пустой файл xls. плюс для моей задачи не подошло, тк нет отбора перед выгрузкой
9. Пафнутий Чебышев (primat) 12.07.16 16:24
(8) roofless, добрый день. А пример файла можете прислать? И описание задачи в личку.
10. Алексей Ларин (roofless) 12.07.16 16:30
(9) primat, задача тривиальная. перенести элементы справочника с отбором по группам из одной базы в другую (справочник в базе-приемнике тоже другой) по совпадающим реквизитам, т.е как минимум наименование и код.
а файл самый обыкновенный пустой только что созданный из excel 2013