gifts2017

Импорт данных из Excel в 1С

Опубликовал Иван Петров (gorleon) в раздел Обработки - Обработка документов

Часто возникает задача по импорту данных в типовые документы (реализация, комплектация, перемещение и т.д.) подготовленных данных из Экселя в чистый заранее созданный документ. Что собственно и делается.

Вроде все понятно из самой формы.

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

Наименование Файл Версия Размер
ИмпортИзЭксНавороченный.rar 123
.rar 9,43Kb
31.07.12
123
.rar 9,43Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Илья Трошин (Troha) 01.08.12 21:09
Сколько можно одну тему мусолить? Уже существует огромное количество обработок для работы с данными в формате Excel. Почему все хотят изобрести велосипед?
2. Иваныч Иванов (Иваныч) 07.08.12 19:40
Сколько можно одну тему мусолить? Уже существует огромное количество обработок для работы с данными в формате Excel. Почему все хотят изобрести велосипед?
[+] [−]

я тоже много подобного просмотрел, потом сам делал под себя. так что не нужно столь критично относиться. а может автор совершенствуется.
3. Lexa О (e-lexa) 10.08.12 06:37
Не плохо было бы и скриншот примера файла Excel выложить
4. Владимир Гончаров (gvv7_7) 30.08.12 14:53
У нас на работе по-прежнему эта тема (получения данных их Excel в 1С) - актуальна!!!
5. Andrey (angy) 18.02.13 16:00
Импорт с Excel в 1С пишется в пару строк, тема уже разжована по полной:
Процедура ОсновныеДействияФормыЭкспорт(Кнопка)
Попытка
Попытка

// Загрузка объекта Microsoft Excel
Состояние("Выгрузка данных из 1С в Microsoft Excel...");
ExcelПриложение = Новый COMОбъект("Excel.Application");
Исключение
Сообщить("Ошибка при запуске Microsoft Excel."
+ Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
Возврат;
КонецПопытки;

// Создадим книгу, по умолчанию в ней уже есть листы
Книга = ExcelПриложение.WorkBooks.Add();

// Используем первый лист книги Excel
Лист = Книга.WorkSheets(1);

// Сформировать шапку документа в первой строке листа
Колонка = 1;
Для каждого стр из ТП цикл
Если стр.Выгружать Тогда
Лист.Cells(1, Колонка).Value = стр.НазваниеРеквизита;
Колонка = Колонка + 1;
КонецЕсли;
КонецЦикла;

// Выгрузить данные справочника
выборка = Справочники[ИмяСправочника].Выбрать();
СтрокаЛиста = 2;
Пока выборка.Следующий() Цикл
Колонка = 1;
Для каждого стр из ТП цикл

Если стр.Выгружать Тогда
Попытка
// Установить значение в строке и колонке
Если ТипЗнч(выборка[стр.НазваниеРеквизита])=Тип("Число") Тогда
// Установить формат для типа Число
Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "0,00";
Лист.Cells(СтрокаЛиста, Колонка).Value =
Формат(выборка[стр.НазваниеРеквизита],"ЧГ=0");
иначе
// Для всех других типов установим формат "Текстовый"
Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "@";
Лист.Cells(СтрокаЛиста, Колонка).Value =
Строка(выборка[стр.НазваниеРеквизита]);
КонецЕсли;
исключение
// в случае ошибки вывести номер строки и колонки
Сообщить("Ошибка установки значения для: " +
выборка[стр.НазваниеРеквизита]);
Сообщить("Стр: " +СтрокаЛиста+ " Кол: " +
Колонка+ " Рек: " + стр.НазваниеРеквизита);
КонецПопытки;
Колонка = Колонка + 1;
КонецЕсли;

КонецЦикла;
СтрокаЛиста = СтрокаЛиста + 1;
Состояние("Экспорт из 1С в Excel " + СтрокаЛиста);
КонецЦикла;

// Сохраним созданную книгу в файл xls
Книга.SaveAs(имяФайла);

// Обязательно закроем соединение с COM объектом для освобождения памяти
ExcelПриложение.Quit();

Сообщить("Файл выгружен успешно: " + имяФайла );

Исключение
// Обработка ошибок экспорта данных из 1С в Excel
Сообщить("Ошибка записи данных файла :" + имяФайла);
Сообщить(ОписаниеОшибки());
Попытка
ExcelПриложение.Quit();
Исключение
КонецПопытки;
КонецПопытки;
КонецПроцедуры
7. Андрей - (Motor24) 06.08.13 15:50
(5)Ну, как бы тема про ИМПОРТ из Excel, а не про экспорт в него.
Да и лишний вариант итогового оформления не помешает, почему бы и нет? Хоть тема и избита, велосипед всегда можно чуть-чуть улучшить
8. Alex Dio (diomidov) 25.09.13 09:32
Товарищи, как быть, если сам эксель не установлен на сервере? Есть ли какие-то запасные пути? Пробовал утилитку unioffice, но заставить работать не получилось(