Универсальная загрузка табличных данных из файла 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 не будет опубликован. Обязательные поля помечены *