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

Публикация № 394445

Администрирование - Администрирование данных 1С - Обработка документов

Загрузка данных из табличного документа с поиском по ссылке

Обработка позволяет загружать данные с поиском по ссылке как для загружаемого объекта, так и его свойств. Загружает справочники, документы, планы видов характеристик. Будет полезна как замена использования конвертации данных для задач переноса, а также как классическая загрузка из табличного документа (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 - реализована загрузка в табличные части документов и справочников.

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

Наименование Файл Версия Размер
Обработка загрузки из табличного документа с поиском по ГУИД

.rar 16,55Mb
25.11.16
278
.rar 2.1 16,55Mb 278 Скачать
Обработка выгрузки данных в Excel

.epf 13,59Kb
05.05.16
262
.epf 1 13,59Kb 262 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. primat 2354 20.10.15 15:03 Сейчас в теме
Уважаемые пользователи, пишите здесь или через личные сообщения свои пожелания и замечания и идеи по развитию разработки.
8. roofless 22 12.07.16 14:52 Сейчас в теме
(1) из коробки не заработало. на выходе имею пустой файл xls. плюс для моей задачи не подошло, тк нет отбора перед выгрузкой
9. primat 2354 12.07.16 16:24 Сейчас в теме
(8) roofless, добрый день. А пример файла можете прислать? И описание задачи в личку.
10. roofless 22 12.07.16 16:30 Сейчас в теме
(9) задача тривиальная. перенести элементы справочника с отбором по группам из одной базы в другую (справочник в базе-приемнике тоже другой) по совпадающим реквизитам, т.е как минимум наименование и код.
а файл самый обыкновенный пустой только что созданный из excel 2013
2. CratosX 107 27.10.15 10:30 Сейчас в теме
(0)
Внимание. Загрузка в табличную часть в данный момент не работает.


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

Также разработка сделана условно-бесплатной - за sm. Это изменение только на время доработки новой версии действует. Спешите пробовать обработку, скачивайте сейчас!
6. All_1972 7 25.06.16 19:29 Сейчас в теме
7. primat 2354 26.06.16 12:40 Сейчас в теме
(6) All_1972, что не работает? Последние месяцы есть большая задача по загрузке из эксэля, в рамках ее дорабатываю обработку, сделал загрузку в табличную часть, много другого. Так что, возможно, уже исправил эту ошибку...
11. _Ramzes 118 09.01.17 00:14 Сейчас в теме
Добрый день!
Скачал обработку, а она не работает!
Первое с чем столкнулся - проблема поиска по стандартным реквизитам.
ТипЗначенияРеквизита = ОбъектМетаданных.Реквизиты[Элемент.Ключ].Тип;
Падает на полях Код и Наименование.

Попробовал загрузку на Плане видов характеристик.
Падает на поиске

Иначе // поиск запросом по полям
		
		Запрос = Новый Запрос;
		Запрос.Текст =
		"ВЫБРАТЬ
		|	ТекущийСправочник.Ссылка
		|ИЗ
		|	Справочник." + Объект.ВидОбъекта + " КАК ТекущийСправочник
		|ГДЕ ";
Показать


Я выбрал на первой форме загрузку плана видов характеристик, а не справочник, однако в коде стоит жестко справочник.

И естественно мы ловим на выходе ошибку
{ВнешняяОбработка.ЗагрузкаИзExcelПоискПоСсылке.Форма.ФормаУправляемая.Форма(714)}: Ошибка при вызове метода контекста (Выполнить)
Выгрузка = Запрос.Выполнить().Выгрузить();
по причине:
{(4, 2)}: Таблица не найдена "Справочник.ВопросыДляАнкетирования"
<<?>>Справочник.ВопросыДляАнкетирования КАК ТекущийСправочник

Хотя тип объекта выбран План видов характеристик

Для загрузки использовал файл ЗагрузкаИзExcelПоискПоСсылке___2016_11_25.epf
12. roofless 22 09.01.17 10:23 Сейчас в теме
предлагаю сделать проверку на тип значения, и для пвх написать отдельный запрос. автор тут видимо косячнул
13. silver-747 05.03.17 10:29 Сейчас в теме
Пытаюсь в пустую базу закачать справочник номенклатуры. Запускаю обработку ВыгрузкаДанныхВExcelПоСсылкам_2015_10_16 выгружаю справочник из базы источника. Захожу в базу Приемник. Запускаю обработку ЗагрузкаИзExcelПоискПоСсылке___2016_11_25 файл выгрузки подгружается. Дальше по кнопке Настройка создания обьектов указываю ка загружать. А вот по кнопке Указать поля поиска элементов не могу понять что указывать. Надо просто загрузить полностью файл. Подскажите что надо выбрать что бы загрузились данные из файла
14. Velliar 08.08.17 16:29 Сейчас в теме
Для ее работы обязательно нужен установленный Excel, или хватит openoffice?
15. reg063 17.09.17 19:39 Сейчас в теме
16. Filipp_inf 31.10.17 16:13 Сейчас в теме
Добрый день!
Скачала все.
Выгрузка не работает.
Выбираю тип объекта: Справочник.
Далее при выборе любого вида объекта выскакивает ошибка:
"Основная таблица динамического списка задана неверно. Не задан ни текст запроса, ни основная таблица динамического списка."
Конфигурация 1С:ERP Управление предприятием 2 (2.2.3.162)
1С:Предприятие 8.3 (8.3.10.2561).
Пожалуйста, разберитесь с ошибкой.
17. user900137 23.01.18 21:06 Сейчас в теме
Здравствуйте. Подскажите, умеет ли Ваш загрузчик обрабатывать наименования товаров по заданным правилам (например, автоматически удалять двойные пробелы и переносы строки, преобразовывать различные виды черточек к единой и др.) и сопоставлять найденные в файле с содержимым справочника? А также, есть ли возможность ввода формул для расчета прайсовых колонок от цены поставщика или др.?
19. djolejek 30.03.18 04:25 Сейчас в теме
(17) Додрый день, нашли то что искали в вопросе? А то мне тоже самое нужно.
20. primat 2354 30.03.18 08:42 Сейчас в теме
(17) Добрый день. Нет, не умеет.
18. e-katerina 125 20.02.18 14:33 Сейчас в теме
Добрый день.
Будет ли эта обработка работать в БП 3.0? В частности интересуют такие специфичные документы, как "требование-накладная" и "отчет производства за смену".
21. primat 2354 30.03.18 08:42 Сейчас в теме
(18) Добрый день. Да, должна.
23. Alex_8 17.05.18 11:33 Сейчас в теме
(21) Здравствуйте, а книгу покупок будет выгружать в excel?
22. aleksmen 04.04.18 17:39 Сейчас в теме
Здравствуйте !

Скачал Вашу обработку, хотел потестить на типовой конфигурации УТ 11.4.х
Открываю ее и загружаю exel-й файл. Выскакивают ошибки: "область не найдена" или "Значение не является значением объектного типа (Свойство)"
Что то может не так делаю.. ?
24. foe12 21.09.18 11:53 Сейчас в теме
Здравствуйте, скачал вашу обработку и выскакивают ошибки при загрузке документа:
1. {ВнешняяОбработка.ЗагрузкаИзExcelПоискПоСсылке.МодульОбъекта(1733)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
2. Ошибка. Возможно неверно указан номер листа книги Excel или файл занят. Текст ошибки: {ВнешняяОбработка.ЗагрузкаИзExcelПоискПоСсылке.МодульОбъекта(75)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу "C:\Users\Максим\Desktop\1.xlsx". Это может быть вызвано одной из следующих причин.

• Указан несуществующий файл или путь.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент.

Файл существует, ничем не используется. В чем может быть проблема?
25. foe12 25.09.18 14:09 Сейчас в теме
Помогите разобраться, не загружается заказ клиента в базу.
26. EdSkyliner 14.05.19 08:38 Сейчас в теме
Скачал обработку. Выбираю Тип объекта "Справочник", Вид объекта "Контрагенты" и тут же выскакивает ошибка: "Основная таблица динамического списка задана неверно. Не задан ни текст запроса, ни основная таблица динамического списка".
Конфигурация типовая Бухгалтерия предприятия КОРП 3.0
27. German_Tagil 15 28.05.19 06:02 Сейчас в теме
28. CheBurator 3422 10.10.19 23:32 Сейчас в теме
Спасибо. Подсказали про эту обработку. Попробую использовать.
29. CheBurator 3422 10.10.19 23:35 Сейчас в теме
А для загрузки иерархии справочника (номенклатура, 77, ГУИД есть) - обработка загрузит?
30. CheBurator 3422 23.10.19 23:40 Сейчас в теме
Ничего непонятно.
Таблица (список групп номенклатуры) из трех колонок
- Наименование (это наименование группы)
- Ссылка (в виде гуид, это гуид группы)
- Родитель (в виде гуид, это гуид родительской группы).

Как настроить "соответствие" колонок экселя реквизитам справочника в базе?
Почему на каждый чих ругается "Необходимо указать поля поиска. Первая группа полей является обязательной для заполнения." В первой группе полей указана "Ссылка", в остальных - незаполнено. Этого по пояснениям настройки поиска должно быть достаточно - почему ругается и не пускает далее?
31. primat 2354 28.11.19 16:57 Сейчас в теме
Коллеги, добрый день. Давно не обращал внимание на эту разработку. Вижу, накопились по ней замечания. Постараемся в ближайшее время исправить замечания и вышлем исправление всем, кто писал нам обратную связь по работе с обработкой.
32. roman3333 26.02.20 17:44 Сейчас в теме
добрый день! по данной обработке ест ьвопросы:
1. возможно ли делать загрузку в док "Счет от поставщика"
2. возможно ли загружать из файла-реестра (формат excel2016) c созданием нескольких однотипных документов (при изменении значения в таблич части:"номер док" и "дата док"?
3. будет ли работать обработка в БП3.0.75.100?
4. наличие Excel на компе обязательно для работы обработки?
33. ivdic 30 05.06.20 14:50 Сейчас в теме
не работает

Ошибка инициализации модуля: ВнешняяОбработка.ЗагрузкаИзExcelПоискПоСсылке.Форма.ФормаУправляемая.Форма
по причине:
{ВнешняяОбработка.ЗагрузкаИзExcelПоискПоСсылке.Форма.ФормаУправляемая.Форма(694,23)}: Переменная не определена (СтроковыеФункцииКлиентСервер)
МассивПолейПоиска = <<?>>СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ПоляПоиска, ",");
{ВнешняяОбработка.ЗагрузкаИзExcelПоискПоСсылке.Форма.ФормаУправляемая.Форма(1394,22)}: Переменная не определена (СтроковыеФункцииКлиентСервер)
МассивПараметров = <<?>>СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(НайденныеСтроки[0].ЗначениеНастройки, ";;;");
{ВнешняяОбработка.ЗагрузкаИзExcelПоискПоСсылке.Форма.ФормаУправляемая.Форма(909,24)}: Переменная не определена (ОбщегоНазначения)
ЗначениеНастройки = <<?>>ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(ИмяНастройки, "");
Оставьте свое сообщение

См. также

daСклонение: склонение ФИО, должностей, чисел, прилагательных, существительных на языке 1С + ТестЦентр Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

14.02.2015    100932    97    daMaster    90    

Сравнение реального дохода со средним доходом из API.HH.RU

Зарплата Управленческие v8 v8::СПР ЗУП3.x УУ Абонемент ($m)

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с HH.RU используя HH REST API. Ключевые функции: получение списка вакансий по должностям (Ключ для работы не нужен); расчет среднего дохода; Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.13.1513) Зарплата и управление персоналом, редакция 3.1 (3.1.11.68) совместно с API.HH.RU.

1 стартмани

11.11.2019    3817    4    solaru    2    

Конфигурация для рекламного агентства

Управление услугами и сервисом Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) v8 Реклама, PR и маркетинг УУ Абонемент ($m)

Данная конфигурация выполнена для решения тестового задания: Цель задания: 1) Понять, на каком из клиентов сколько мы заработали;  2) Понять, по какому виду СМИ сколько мы заработали;  3) Проследить по каждой услуге: у кого за сколько купили и кому за сколько продали, с возможностью перейти в соответствующий документ. Реализовано с помощью: 1. Справочники - контрагенты, номенклатура 2. Документы - Поступление услуг, реализация услуг 3. Отчеты - отчет по контрагентам, номенклатуре и движений.

1 стартмани

21.05.2019    4369    0    solaru    0    

Загрузка номенклатуры в УТ 10.3 из Excel файла с генерацией штрихкодов

Загрузка и выгрузка в Excel Обработка справочников Оптовая торговля Розничная торговля Учет ТМЦ Оптовая торговля Розничная торговля Учет ТМЦ v8 УТ10 Россия Абонемент ($m)

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

1 стартмани

24.03.2017    7708    7    solaru    0    

Под капотом управляемых форм

Практика программирования v8 1cv8.cf Бесплатно (free)

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

26.08.2013    263597    0    Evil Beaver    266    

[NotaBene] Универсальный отчет по таблице значений

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

1C v.7.7 Готовое решение. Не требует настройки. Не требует допрограммирования. Данная обработка решает часто встречающуюся задачу вывода в "красивом" виде таблицы значений (полученной, например, из запроса). Поддерживается произвольное группирование данных, отключение/включение группировок, в т.ч и создание "шахматок" (типа "продажи понедельно"). Обработка может использоваться как и в отладочных целях (для нормального просмотра ТЗ), так и в составе вполне рабочих отчетов. По крайней мере, я неоднократно клиентам данную обработку ставил вместо того, чтобы каждый раз писать замороченные выводы данных. И клиенты довольны, и мне - проще...

2 стартмани

07.05.2007    28416    3    CheBurator    62