Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д)

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

Обмен - Загрузка и выгрузка в Excel

Загрузка в Эксель Excel OpenOffice Табличная часть документа

34
Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д). На примере загрузки в табличную часть документа Поступление товаров и услуг в УТ 11.4.

На Инфостарте выложены более сотни разных обработок для загрузки в 1С, данных из табличных документов (Excel,OpenOffice и т.д). По моему мнению, 80% их функционала можно заменить стандартной обработкой загрузки из табличных документов с сайта 1С: 

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

Так же, появились версии данной обработки для управляемых форм. Вы их найдете на текущем сайте (см.например тут) или спросив у Яндекса.

Далее приведу пример загрузки из электронной таблицы в табличную часть документа для конфигурации Управление торговлей 11.4.6. По аналогии этот пример можно использовать для любой конфигурации, предварительно изменив и подогнав код под необходимую задачу.

Пример.  Необходимо заполнить документ - Поступление товаров и услуг по данным табличного документа:

Нам необходимо загрузить номенклатуру (колонка - наименование), штрихкод (колонка - штрихкод) в разрезе характеристик (колонка - размер и цвет) и дополнительные свойства номенклатуры (колонка - страна и производитель).

Подготовим базу:

Создадим вид номенклатуры - "Товары", укажем что у него есть характеристики и дополнительные реквизиты. Тип значения у всех: "Дополнительное значение".

Запустим обработку "Загрузка данных из табличного документа (управляемые формы)" (не забудьте предварительно скачать по ссылкам указанным выше).

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

Настраиваем данные как показано на рисунке.

Рассмотрим код использованный для заполнения следующих реквизитов:

 
 Номенклатура
 
 Характеристика
 
 Количество упаковок
 
 Количество (в единицах хранения)
 
 Цена
 
 Сумма

 

Основные обозначения:

- ТекстыЯчеек[2] - обозначает что данные находятся во второй колонке текущей строки.

- Результат - итог вычисления.

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

Непосредственно загрузка данных в базу происходит при нажатии в обработке ссылки - "Загрузить данные":

Итогом загрузки будет заполненная вкладка "Товары" документа Поступление товаров и услуг:

Соответственно можем видеть что номенклатура тоже создалась с необходимыми данными:

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

PS. Готовую настройку не забывайте сохранять по кнопке в настройках "Сохранить значения в файл", что бы в нужный момент быстро восстановить настройки:

 

28.05.19 Дополнительная статья - как загрузить картинки в справочник с помощью Универсальной загрузки из табличного документа

34

См. также

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

Комментарии
Избранное Подписка Сортировка: Древо
1. Timur001 9 09.01.19 20:44 Сейчас в теме
2. rasdag 132 09.01.19 20:51 Сейчас в теме
Файл настройки полученный в текущей публикации
Прикрепленные файлы:
НастройкаЗагрузкиИзЭксельВТабличныйДокументУТ11_4_6.mxlz
3. German_Tagil 6 10.01.19 05:48 Сейчас в теме
примерно тоже самое перед Новым годом писал - правда на обычных формах
4. 80pav 15 11.01.19 14:31 Сейчас в теме
А можно ли создавать Группы (папки) для номенклатуры помощью универсальной обработки?
5. rasdag 132 12.01.19 03:34 Сейчас в теме
(4) Да. Код кстати присутствует в данной статье где "Номенклатура":
.......
//Для номенклатуры группу заполним
лТекст ="ВЫБРАТЬ
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Наименование КАК Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ЭтоГруппа = ИСТИНА
| И Номенклатура.Наименование = &Наименование";
лЗапрос = Новый Запрос(лТекст);
лЗапрос.УстановитьПараметр("Наименование", СокрЛП(ГруппаНоменклатуры));
тВыборка = лЗапрос.Выполнить().Выбрать();
Если тВыборка.Следующий() тогда
//Группа существует - выберем ее
новаяНоменклатура.Родитель = тВыборка.Ссылка;
Иначе
НовЭлемент = Справочники.Номенклатура.СоздатьГруппу();
НовЭлемент.Наименование = СокрЛП(ГруппаНоменклатуры);
НовЭлемент.Записать();
новаяНоменклатура.Родитель = НовЭлемент.Ссылка;
КонецЕсли;
.......
Только надо запустить обработку и выбрать загрузку не в "Табличную часть", а в "Справочник". С экселя вставить колонку с номенклатурой и напротив колонку с группой номенклатуры.
В настройках в реквизите "Номенклатура" - разместить примерно этот код, допилив его под себя.
6. Olenevod 23 05.02.19 10:37 Сейчас в теме
По моему мнению, для такой обработки не хватает:
1. Возможности загрузки нескольких документов. Например, нужно 100 и более.
2. Кода для поиска элементов по приоритету - помечен на удаление или нет, при наличии дублей
3. Универсальных функций поиска и преобразования и вывод сообщений о невозможности преобразования в число или дату и т.п.
4. Поиска по GUID и присвоения его новой ссылке.

Ну и вообще в целом для больших задач загрузки/миграции данных она слабовата.
Но плюсик поставил) Подобным уже много маялся.
7. rasdag 132 06.02.19 01:17 Сейчас в теме
(6)
Возможно и правы, а возможно:
1. Загрузка сотни документов - достаточная редкая задача. Для этого конечно можно придумать свой велосипед.
2. Поскольку в обработке работают те же функции - что и при программировании в конфигураторе, то при определенном труде можно реализовать поиск, проверку на удаление, на дубли, а так же проверку преобразования строки в дату и множество других необходимых вещей.
8. qwinter 586 27.05.19 08:40 Сейчас в теме
9. rasdag 132 27.05.19 12:54 Сейчас в теме
(8) Это публикация больше для программистов, чем для обычных пользователей, а уже программисты могут готовую настройку ставить пользователям. Ну и все это бесплатно, и работает не только для управляемых форм. А функционал в основном одинаковый.
10. qwinter 586 27.05.19 13:00 Сейчас в теме
(9) Так и Olenevod программист, а не обычный пользователь) хотя код вида
справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар")
тоже сложно назвать для "обычных пользователей"))
11. rasdag 132 27.05.19 13:08 Сейчас в теме
(10) Товариш просто не разобрался
12. 1977 2 28.05.19 14:47 Сейчас в теме
Добрый день. Скачал сайта 1с модуль ЗагрузкаДанныхИзТабличногоДокумента. По версией 1С:Комплексная автоматизация 2 (2.4.7.147).
Интерфейс Такси отключал.
13. 1977 2 28.05.19 14:49 Сейчас в теме
ЗагрузкаДанныхИзТабличногоДокумента_УФ_v2 - открывается. Спасибо.
14. German_Tagil 6 30.05.19 15:40 Сейчас в теме
Сделайте пожалуйста - прочитать из табличной части документа
чтобы потом уже разом отредактировать и записать
Оставьте свое сообщение