Универсальная загрузка табличных данных из файла Microsoft Excel






Мастер загрузки произвольных табличных данных из книг Microsoft Excel в объекты информационной базы 1С: Предприятие (управляемое приложение).

Благодаря этой обработке процедура загрузки из файла .xls прайс-листа в справочник «Номенклатура» в УТ 11 или заполнение дней рождения сотрудников в ЗУП 3 становится по зубам даже абсолютному новичку в 1С!

Природа не терпит пустоты — когда в информационной базе 1С есть незаполненные справочники, а в Excel-евских таблицах хранятся полезные данные, последние так и просятся быть импортированными в 1С. Большей конкретики с данной обработкой вам не понадобится. Никаких больше «Написать обработку загрузки хитровывернутого реестра из Excel в 1С»! Пусть пользователь сам обозначит область, откуда брать, укажет место, куда грузить, и в качестве конечного результата получит набор данных в своей базе.

Внешняя обработка «Загрузка табличных данных из файла Microsoft Excel» осуществляет чтение произвольного набора данных с любого листа книги Excel, сопоставляет его с данными любого объекта метаданных информационной базы 1С вида «Справочник» или «Документ», и создаёт на его основе новые элементы или обновляет существующие. Также, в качестве бонуса, реализована функция пакетного извлечения изображений, хранящихся в файле Excel.

Программные требования:
• 1C: Предприятие 8 (Управляемый режим)
• Microsoft Office 2003

 

Попробуем загрузить официальный прайс-лист 1С в демонстрационную базу «Управление торговлей 11».

Обработка может быть включена в состав Дополнительных отчетов и обработок

Первым делом добавим обработку в список Дополнительных отчетов и обработок (раздел Администрирование).

Этап 1. Выбор файла

Работа начинается с выбора файла PRICE_1C.XLS.

Этап 2. Выбор страницы

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

Программа автоматически определила, что полезная информация на выбранном листе начинается с 5-й строки, и отметила за пользователя галочками, какие именно колонки следует загрузить. Если она ошиблась, пользователь должен самостоятельно задать номер строки, содержащей шапку таблицы.

Этап 3. Выбор объекта-приемника

Выбираем объект базы данных, куда будем загружать данные (по умолчанию это справочник Номенклатура), и заводим соответствия: из колонки Код данные грузить в реквизит Код, из Наименование – в Наименование, и т.д. В качестве недокументированного бонуса в программе реализована загрузка цен номенклатуры для УТ 11. Указываем, что существующие элементы справочника искать надо, и искать надо по коду.

Этап 4. Заполнение значений реквизитов по умолчанию

Реквизитов справочника много, а колонок из Excel’я мы загружаем всего шесть. На данном этапе пользователь может задать значения остальных реквизитов по умолчанию. Например, проставить для загружаемых элементов родительскую группу.

Этап 5. Загрузка данных

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

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

• Отметить те строки, которые нужно загружать (или снять отметки у тех строк, которые загружать не надо);
• Отредактировать значения любых колонок, включая ссылки на соответствующий объект базы данных 1С.

Все столбцы до «Объект соответствия» содержат данные листа Microsoft Excel; в столбце «Объект соответствия» хранятся ссылки на найденный по указанному соответствию элемент базы данных, все последующие столбцы – реквизиты.

Когда всё становится готово к загрузке, остаётся нажать кнопку «Загрузить». Информация о прогрессе исполняемого действия будет выведена в поле служебных сообщений.

20 Comments

  1. DaryaS

    Здравствуйте,

    Обработка не открывается

    1С:Предприятие 8.3 (8.3.4.465)

    Бухгалтерия для Казахстана, редакция 2.0, разработка для Казахстана(2.0.15.5)

    Reply
  2. McSeem

    (1) DaryaS, обработка предназначена для работы в режиме управляемого приложения, о чём упоминается в разделе программных требований в описании. Скорее всего, Вы пытаетесь запустить обработку в режиме обычного приложения, так она, разумеется, открываться не будет. Попробуйте открыть Вашу базу в режиме «Толстый клиент (управляемое приложение)».

    Reply
  3. ssn5810

    Непонятная ошибка !!!!!!

    Reply
  4. McSeem

    (3) ssn5810, боюсь, на основании такого объема информации до сути проблемы не докопаться.

    Была зафиксирована еще одна ошибка при попытке запуска обработки в конфигурации «Управление производственным предприятием 1.2» в режиме тонкого клиента (управляемое приложение) — там падала запись справочников по вине процедуры одного из общих модулей; т.е., к ошибке приводила типовая подписка на событие, а не сама обработка.

    Reply
  5. sergiobargio1

    McSeem, БОЛЬШОЕ Вам спасибо. Выручили очень.

    Reply
  6. McSeem

    (5) sergiobargio1, приятно слышать, всегда пожалуйста! 🙂

    Reply
  7. tr75

    Присоединяюсь. Оч. удобно.

    Reply
  8. marinasnsd

    Уважаемый McSeem!

    Можно ли с помощью вашей обработки формировать номенклатуру с характеристиками с определенными свойствами в УТ 11.1 (все свойства характеристики номенклатуры задаются в соответствующих полях файла загрузки)?

    Reply
  9. McSeem

    (8) marinasnsd, здравствуйте, извините за задержку с ответом, она связана с проведением отпуска :).

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

    Reply
  10. xten

    Подскажите, пожалуйста, возможно ли с помощью Вашей обработки выгрузить данные из таблицы Excel (6-10 столбцов )в документ Взаимозачеты задолженности в УТ 11. Позволяет ли Ваша обработка непосредственно после загрузки в табличную часть обработки данных из excel выбрать нужный документ и загрузить туда предварительно отображенные данные ? Спасибо.

    Reply
  11. McSeem

    (10) xten, здравствуйте, нет, загрузка данных в табличные части в этой версии не была предусмотрена.

    Reply
  12. xten

    понял ,спасибо

    Reply
  13. vist

    Нет поиска по артикулу, а только по коду и наименованию. И очень медленно загружает 1500 товаров грузит уже минут 15.

    Reply
  14. AnthonyStealth

    можно вашей обработкой загрузить нового контрагента(клиент с почтовым адресом ) и его заказ?

    Reply
  15. user630322_5793409

    в УТ 10.3 не работает.

    УТ 10.3 не запускается в режиме управления. вылетает с ошибкой. платформа 8.3

    Reply
  16. Lesha1C

    БП 3.0 УПР, толком не работает, видит только 1 строку из файла excel и то ее толком так и не загрузило…

    Reply
  17. maryvik

    у меня была схожая проблема помогло пересохрание в xls формат, то есть не xlsx новый, а старый xls, также есть вариант сохранения и вгрузки через csv, Эксель в него так же умеет и в него сохранять. Попробуйте.

    Reply
  18. user888685

    Можно ли доработать обработку для загрузки данных в табличные части? Сколько это будет стоить?

    Reply
  19. olezhe
    ExcelПриложение = Новый COMОбъект(«Excel.Application»);

    Ну как так-то? Почему не ADOdb? Мне на виртуалку надо ексель поставить ради этой обработки? Боль!

    UP

    При закрытии окна обработки надо убивать процесс Excel.

    Reply
  20. olezhe
    Предупреждение(«Загрузка завершена», 10);

    Модальное окно? В управляемой форме?

    {ВнешняяОбработка.ЗагрузкаТабличныхДанныхИзExcel.Форма.Форма.Форма(1110)}: Ошибка при вызове метода контекста (Предупреждение)

    Предупреждение(«Загрузка завершена», 10);

    по причине:

    Использование модальных окон в данном режиме запрещено!

    Reply

Leave a Comment

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