[ШАБЛОН] Выгрузка / Загрузка данных из Excel

Публикация № 1729305 19.09.22

Пользовательские инструменты - Загрузка и выгрузка в Excel

Excel Обработка Выгрузка Загрузка Выгрузка/Загрузка Файл Файлы Данные данные

Шаблон обработки по выгрузке / загрузке данных из Excel. Обработка может быть полезна как матерым программистам, так и новичкам. Первые не будут писать код заново, а вторые получают шаблон, с которым можно начинать разбираться с выгрузкой и загрузкой из Excel. Основная задача данного шаблона - сократить время на поиск и написание кода по выгрузке / загрузке данных.

Обработка запускается как внешняя из пользовательского режима. Выбирается путь к файлу Excel (*.xlsx;*.xls;) и происходит загрузка данных из файла по этому пути. Как таковой загрузки никаких данных тут не происходит, и обработка строк условная. Также, для упрощения, чаще всего Выбор файла и Выгрузку/Загрузку данных выполняю в одной процедуре, тут разбил для наглядности. 

Все тесты производились на платформе 8.3.20.1914, однако код отработает на любой из 8.2, 8.3.

 

Команда выбора файла на клиенте


&НаКлиенте
Процедура ВыборФайла(Команда)
	
	Режим = РежимДиалогаВыбораФайла.Открытие;
	ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
	ДиалогОткрытияФайла.ПолноеИмяФайла = "";
	Фильтр = "(*.xlsx;*.xls;)|*.xlsx;*.xls;*";		
	
	ДиалогОткрытияФайла.Фильтр = Фильтр;
	ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
	ДиалогОткрытияФайла.Заголовок = "Выберите файл";
	
	Если ДиалогОткрытияФайла.Выбрать() тогда
		ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;
	КонецЕсли;   
	
КонецПроцедуры

 

Команда загрузки данных из Excel

&НаКлиенте
Процедура ВыполнитьЗагрузку(Команда)    
	
	Если НЕ ЗначениеЗаполнено(ПутьКФайлу) Тогда
		Сообщить("Файл не выбран!");
		Возврат;
	КонецЕсли;		
	
	Попытка
		Excel = Новый COMОбъект("Excel.Application");
		Excel.WorkBooks.Open(ПутьКФайлу);
		Состояние("Обработка файла Microsoft Excel...");
	Исключение
		Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
		Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;

	// Получим количество строк и колонок
	// В разных версиях Excel получаются по-разному, поэтому сначала определим версию
	Версия = Лев(Excel.Version, Найти(Excel.Version, ".") - 1);
	Если Версия = "8" Тогда
		ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
		ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
	Иначе
		ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row;
		ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;
	КонецЕсли;
	
	МассивСтруктур = Новый Массив;
	Для j = 2 По ФайлСтрок цикл
			
		СтруктураПозиций = Новый Структура;
		СтруктураПозиций.Вставить("Номенклатура", СокрЛП(Excel.ActiveSheet.Cells(j, 1).Value));  
		СтруктураПозиций.Вставить("ШтрихКод", СокрЛП(Excel.ActiveSheet.Cells(j, 2).Value));
		СтруктураПозиций.Вставить("ЕдиницаИзмерения", СокрЛП(Excel.ActiveSheet.Cells(j, 3).Value));
		СтруктураПозиций.Вставить("Цена", СокрЛП(Excel.ActiveSheet.Cells(j, 4).Value));
		СтруктураПозиций.Вставить("Количество", СокрЛП(Excel.ActiveSheet.Cells(j, 5).Value));
		СтруктураПозиций.Вставить("Сумма", СокрЛП(Excel.ActiveSheet.Cells(j, 6).Value));
		
		МассивСтруктур.Добавить(СтруктураПозиций);

	КонецЦикла;	    	
	
	ВыполнитьЗагрузкуНаСервере(МассивСтруктур);
	
	Excel.workbooks.Close();
	Excel.Quit();
	
КонецПроцедуры

&НаСервере
Процедура ВыполнитьЗагрузкуНаСервере(МассивСтруктур)
	// Вставить содержимое обработчика.
КонецПроцедуры

Команда выгрузки данных в Excel

&НаКлиенте
Процедура ВыполнитьВыгрузку(Команда)
	
	Если НЕ ЗначениеЗаполнено(ПутьКФайлу) Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не выбран файл. Выберите файл и повторите попытку!";
		Сообщение.Сообщить();
		Возврат;	
	КонецЕсли;
	
	Попытка
		Excel = Новый COMОбъект("Excel.Application");
		Состояние("Обработка файла Microsoft Excel...");
	Исключение
		Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
		Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;   
	
	НоваяКнига = Excel.WorkBooks.Add();
	Лист = НоваяКнига.WorkSheets(1);
	
	// Заполним наименования колонок
	Лист.Cells(1, 1).Value = "ФИО"; // Значение
	Лист.Cells(1, 1).Font.Bold = 1; // Ширный фрифт
	
	Лист.Cells(1, 2).Value = "Дата рождения"; 
	Лист.Cells(1, 2).Font.Bold = 1;     
	
	// Получим данные
	МассивСтруктур = ПолучитьДанныеФизЛиц();  
	КоличествоСтрок = МассивСтруктур.Количество() - 1; 
	
	// Заполним Эксель
	Для Строка = 0 По КоличествоСтрок Цикл
		Лист.Cells(Строка + 2, 1).Value = СокрЛП(МассивСтруктур[Строка].ФИО);	
		Лист.Cells(Строка + 2, 2).Value = СокрЛП(МассивСтруктур[Строка].ДатаРождения);			
	КонецЦикла;	
	
	Попытка
		НоваяКнига.SaveAs(ПутьКФайлу);	
	Исключение
	  	Сообщить(ОписаниеОшибки());
	КонецПопытки;
	
	Excel.Quit();
	
КонецПроцедуры

&НаСервере
Функция ПолучитьДанныеФизЛиц()

	МассивДанных = Новый Массив();
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ФизическиеЛица.ФИО КАК ФИО,
		|	ФизическиеЛица.ДатаРождения КАК ДатаРождения
		|ИЗ
		|	Справочник.ФизическиеЛица КАК ФизическиеЛица
		|ГДЕ
		|	НЕ ФизическиеЛица.ПометкаУдаления";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();	
	Пока Выборка.Следующий() Цикл
		
		СтруктураДанных = Новый Структура;
		СтруктураДанных.Вставить("ФИО", Выборка.ФИО); 
		СтруктураДанных.Вставить("ДатаРождения", Выборка.ДатаРождения);
		
		МассивДанных.Добавить(СтруктураДанных);
		
	КонецЦикла;
	
	Возврат МассивДанных;
	
КонецФункции 


Данный шаблон выгрузки / загрузки данных из Excel был добавлен для ускорения поиска нужного кода и разработки.

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

Делал на платформе 8.3.20.1914. 

Другие статьи:

COM-Объекты и Многопоточность
[ШАБЛОН] Внешняя печатная форма с отладкой

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

Наименование Файл Версия Размер
[ШАБЛОН] Выгрузка / Загрузка данных из Excel:

.epf 7,74Kb
0
.epf 0.0.2 7,74Kb Скачать

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

Автор запретил комментарии

См. также

Загрузка данных из Excel (из табличного документа) в часто используемые объекты: в справочники, документы, их табличные части, в планы видов расчетов, регистры расчета, регистры сведений Промо

Обработка документов Загрузка и выгрузка в Excel Обработка справочников Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Это перепиленная вдоль и поперек версия всем известной обработки "Загрузка из табличного документа" с диска ИТС. Добавлена возможность грузить в документы, виды расчетов, регистры расчета.

9 стартмани

25.06.2014    16670    33    Дмитрий74Чел    9    

[ШАБЛОН] Внешняя печатная форма с отладкой

Печатные формы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Шаблон внешней печатной формы с отладкой. Поможет быстро создавать печатные формы, необходимо лишь изменять ключевые параметры, макет и заполнение Табличного документа.

1 стартмани

20.09.2022    491    2    Neiron_1C    0    

Поиск пользователей в базах через COM-Объект

Поиск данных Инструменты администратора БД Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Расширение и обработка позволяют найти пользователя в базах, которые находятся на одном сервере. Что делать, если баз много, не открывать же все базы?)

1 стартмани

13.09.2022    425    0    Neiron_1C    5    

5 способов загрузки из Excel в 1С

Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Конфигурация, состоящая из внешнего источника данных и одной обработки. Обработка содержит 5 примеров, как можно загрузить данные в 1С из Excel.

1 стартмани

29.03.2021    54361    56    elephant_x    22    

Заготовка обработки (внешняя печатная форма) заполнения Excel документа из 1С Промо

Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Умеет заполнять как отдельные ячейки, так и таблицы в рамках листов Excel. Удобно при разработке различных “дашбордов” (с графиками, диаграммами), отчетов финансистов (где много формул), заполнения форм документов организации. Эксель шаблон может сделать пользователь (с нужным ему оформлением, формулами и т.д.) и впоследствии самостоятельно этот шаблон менять. Программисту нужно только настроить выдачу данных для заполнения шаблона. Может подключаться как внешняя печатная форма (для обычных и управляемых форм).

2 стартмани

29.07.2020    9993    28    wonderboy    0    

Парсинг Excel-файла

Загрузка и выгрузка в Excel Универсальные функции Платформа 1С v8.3 1С:Розница 1С:Управление нашей фирмой 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Шаблон внешней обработки для парсинга Excel без использования COM-объектов, с учетом клиент-серверного взаимодействия, на толстом, тонком и веб-клиенте. С учетом требований безопасности и отображением длительных операций.

1 стартмани

15.09.2020    13229    37    LamerSoft    0    

Простой способ загрузить файл Excel на тонком клиенте.

Загрузка и выгрузка в Excel Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Самый простой способ загрузить файл Excel на тонком клиенте - это скопировать лист Excel в "табличный документ" на форме обработки и обрабатывать уже поля "табличного документа".

1 стартмани

30.10.2019    15032    5    John_d    16    

Загрузка из Excel (без использования com-объектов, без установленного Excel)

Обработка документов Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка не использует com-объект для чтения из файла, не нужен установленный Excel.

1 стартмани

22.03.2019    32948    308    Смешной 1С    29    

Прыг-Скок...или из MS EXCEL в 1С (8.2) (открытый код) Промо

Обработка документов Обработка справочников Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Универсальная загрузка данных из Microsoft Office Excel. Автоматическая загрузка из любых по форме документов с очень удобным редактором. Почти готовый шаблон для любой конфигурации. Не требует регистрации-бесплатно.

1 стартмани

16.09.2015    79530    372    Tatitutu    50    

Конфигурация "Обмен данными Excel"

Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Что будет, если скрестить Конвертацию 2.0, Модуль загрузки преобразования в значения БД от конвертации 3.0 и Excel шаблоны? Правильно, получится отличная подсистема "Обмен данными Excel", которую можно встраивать в существующие конфигурации и получить универсальный механизм по загрузке данных из Excel и вводу начальных данных. Данная подсистема позволит заменить множество различных обработок по загрузкам из Excel. Хочу отметить, что все интеграции через веб сервисы 1С по загрузкам soap пакетов (документов xml) можно адаптировать и универсально загружать через данную подсистему, правда, это потребует двух доработок конфигурации, но это возможно, архитектурное решение и идея включены в подсистему "Обмен данными Excel" и хочу Вам сообщить, что уже реализованы и доступны в новом обновлении 1.1.1.1.

2 стартмани

05.03.2019    14613    31    Алексей777    20    

Шаблон загрузки из Excel штатными средствами платформы 8.3 (без com, ado, Excel Application) (обычные и управляемые формы)

Загрузка и выгрузка в Excel Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Шаблон для быстрой загрузки из Excel (форматы *.xls, *.xlsx) средствами платформы 8.3 с помощью табличного документа. Не нужно работать с MSExcel.Application, ADO. В платформе 8.3 у табличного документа развили метод Прочитать(), и сейчас можно загружать данные не только из файлов *.mxl, но и *.xls и *.xlsx. Подробнее в описании.

1 стартмани

07.12.2018    23509    107    DarkPinch222    4    

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

Загрузка и выгрузка в Excel Обработка документов Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Обработка позволяет загружать данные с поиском по ссылке как для загружаемого объекта, так и его свойств. Загружает справочники, документы, планы видов характеристик. Будет полезна как замена использования конвертации данных для задач переноса, а также как классическая загрузка из табличного документа (Excel). Поиск объекта при загрузке выполняется до трех раз с разными полями поиска (поля поиска настраиваются). Также реализована выгрузка в Excel по ссылкам. У обработки удобный интерфейс, в котором разберется даже начинающий пользователь. Загрузка накладных из файлов xls реализована с интеллектуальным поиском колонок с данными. В интеллектуальном поиске поддерживаются все основные типовые печатные формы.

5 стартмани

16.10.2015    73542    536    primat    35    

Инструменты бухгалтера: Загрузка из Excel

Загрузка и выгрузка в Excel Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

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

1 стартмани

21.11.2018    8816    110    Bazil    20    

Загрузка номенклатуры (с реквизитами, свойствами, несколькими единицами измерений и их коэффициентами, объемами, весами и штрихкодами), прайсов, счетов, накладных, УПД и прочих товарных документов из Excel для Управление торговлей 10.3

Загрузка и выгрузка в Excel Оптовая торговля Ценообразование, анализ цен Прайсы Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Управленческий учет Абонемент ($m)

Загружает номенклатуру, единицы измерения (вес и объем), штрихкоды (поддерживается одновременная загрузка нескольких единиц и штрихкодов), реквизиты и свойства номенклатуры, номера ГТД и серии. Загрузка производится во все документы в которых поддерживается механизм подбора номенклатуры (Заказ покупателя, Поступление товаров и услуг, Установка цен номенклатуры и многие другие). Ищет номенклатуру по наименованию, артикулу, штрихкоду и аналогичным полям в номенклатуре контрагентов. Работает в УТ 10.3 (весьма вероятно будет работать в КА 1 и УПП). Для работы необходима платформа не ниже 8.3.6. Наличие установленного Excel на компьютере не обязательно. Не загружает изображения! Не работает в БП, УТ 11, Рознице 2, УНФ и прочих новых конфигурациях!

3 стартмани

07.10.2018    17699    67    1c.pro.fun    21    

Выгрузка отчета в Excel с формулами, используя заполнение - шаблон макета для сложных формул

Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Каждому программисту 1с, хоть раз, да приходилось писать выгрузку отчета из 1С в Excel с формулами. Есть много вариантов как это сделать. Но мне захотелось это сделать "по нормальному", используя как можно меньше кода выгрузки в excel, и так чтобы проще было дорабатывать. Идея была проста, все формулы засунуть в макет, и при выводе в Excel просто "проинициализировать" их. Но меня ждал облом, который мне пришлось героически преодолевать. Спойлер - в итоге все получилось...)

1 стартмани

18.07.2018    18757    51    _root    17    

Вы больше не будете разбирать Excel как раньше

Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

07.05.2018    39054    64    m-rv    34    

Универсальное средство чтения файлов Excel Промо

Универсальные обработки Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Унифицируем чтение файлов Excel, читаем "неудобные" файлы, переносим содержимое таблиц Excel через буфер обмена.

5 стартмани

27.03.2013    37790    170    Infector    4    

Приемы эффективной загрузки данных из Excel в 1С

Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Показаны приемы эффективной работы с Excel для загрузки данных в 1С.

1 стартмани

13.12.2017    96351    166    alexey.kutya    103    

Загрузка УПД в Бухгалтерию 3.0.111.16 из Excel Промо

Обработка документов Загрузка и выгрузка в Excel Оптовая торговля Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Абонемент ($m)

Загрузка УПД из Excel в Бухгалтерию предприятия 3.0.111.16, с заведением номенклатуры в справочник , добавлением ГТД, стран происхождения.

1 стартмани

20.10.2015    34452    35    teyana    28    

Загрузка данных из табличного документа (управляемое приложение)

Универсальные обработки Загрузка и выгрузка в Excel Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Загрузка данных из табличного документа для управляемого приложения. По функционалу схожа с типовой обработкой ИТС для обычного приложения.

1 стартмани

10.10.2017    19852    256    karpal    20    

Загрузка из Excel-файла данных в документ Поступление товаров и услуг

Обработка документов Загрузка и выгрузка в Excel Оптовая торговля Розничная торговля Склад и ТМЦ Платформа 1С v8.3 1С:Розница 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Абонемент ($m)

Загрузка из произвольного Excel-файла документов Поступление товаров и услуг с возможностью создания номенклатуры, обработка позволяет автоматизировать процесс оформления новых поступлений товара.

1 стартмани

04.03.2017    46178    515    gzharkoj    138    

Выгрузка в XML и загрузка из XML. Пример с передачей файла с клиента на сервер и обратно

Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Столкнулся с проблемой передачи файла с клиента на сервер и обратно для выгрузки и загрузки данных в XML. Много примеров для выгрузки/загрузки, но не встретил ни одного, где описывался бы механизм передачи файла на сервер и обратно

1 стартмани

03.02.2017    75971    98    Anchoret    6    

 Интеграция 1С и C#. Обращение к 1С через COM. Создание номенклатуры и выполнение запроса к 1С из C# на примере интеграции с Союз-PLM (система информационной поддержки жизненного цикла изделий). Обработка «Загрузка заказа на сборку». (ERP)

Загрузка и выгрузка в Excel Внешние источники данных Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Союз-PLM представляет собой полнофункциональный программный комплекс для решения  широкого спектра задач управления инженерной технической информацией наукоемких изделий и сложных инженерных объектов в области машиностроения, приборостроения, архитектуры, строительства. На практике, это управление конструкторской документацией, интегрированное с САПР, бизнес-процессы, файловый архив. Все это работает в SQL и шевелится с помощью скриптов на C#. Скрипты свободно  отлаживаются в MS Visual Studio. Подробнее смотрите на их сайте: http://www.programsoyuz.ru/products/system-soyuz-plm.html  Редактирование, конструирование и использование бизнес-процессов на порядок лучше систем на базе 1С из тех, что я изучил.

1 стартмани

25.07.2016    60211    8    milkers    2    

Групповая обработка номенклатуры "Крутотенюшка": выгрузка из 1С в Excel, правка и обратная загрузка в 1С с учетом изменений

Загрузка и выгрузка в Excel Платформа 1С v8.3 1С:Управление торговлей 10 Абонемент ($m)

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

1 стартмани

11.04.2016    29931    69    O-Planet    41    

Полезные приемы при работе с Excel из 1С (Версия 3.1)

Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Программисту 1С часто приходится работать с таблицами Excel из 1С. Я постарался собрать небольшой FAQ и набор функций для работы с файлами Excel. Надеюсь, кому-то будет полезна данная статья.

1 стартмани

22.09.2015    295308    566    Zerocl    90