Загрузка из Excel в управляемом приложении

27.05.25

Интеграция - Загрузка и выгрузка в Excel

Наглядный пример для работы с файлом excel в варианте обработки на клиенте и на сервере

Первый вариант &НаКлиенте

Подходит если файл Эксель - это просто несколько колонок с загружаемыми реквизитами. Замечу, этот код не зависит от типа базы, файловая/серверная и требуется наличие экселя только на стороне клиента. В примере файл для загрузки состоит из 2 колонок: "Сотрудник"; "Счет". 

&НаКлиенте
Процедура Загрузка(Команда)
	
	Колонки = Новый Массив;
	Колонки.Добавить("Сотрудник");
	Колонки.Добавить("Счет");
	
	Попытка 
		ex = ПолучитьCOMобъект("","Excel.Application");
	Исключение
		Сообщить("Excel Application не создан!!");
		Возврат;
	КонецПопытки;
	
	Попытка
		ex.workbooks.open(Файл,1);
	Исключение
		Сообщить("Файл перемещен или удален!");
		Возврат;
	КонецПопытки;
	
	МассивРезультат = Новый Массив;
	
    RCount = ex.ActiveSheet.UsedRange.Rows.Count();
	Для j = 2 по RCount цикл
		
		Если СокрЛП(ex.ActiveSheet.Cells(j,1).Value)="" Тогда
			Продолжить;
		КонецЕсли;
		
		Стр = Новый Структура; 
		Для i=0 По Колонки.Количество()-1 Цикл
			 Стр.Вставить(Колонки[i],ex.ActiveSheet.Cells(j,i+1).Value);
		КонецЦикла;
	
		МассивРезультат.Добавить(Стр);
		
	КонецЦикла;	
	
	ex.workbooks.Close();
	ex.quit();
	
КонецПроцедуры

Второй вариант &НаСервере.

Например, после загрузки вам необходимо выполнить действия с данными на сервере, или на клиенте нет приложения excel. Перед выполнением необходимо скопировать файл во временное хранилище в процедуре &НаКлиенте, а затем сохранить его во временный каталог уже на сервере.

&НаКлиенте
Процедура Загрузка(Команда)
	
	Двоичное = Новый ДвоичныеДанные(ПутьКФайлу);
	Адрес = ПоместитьВоВременноеХранилище(Двоичное, ЭтаФорма.УникальныйИдентификатор);

	МассивКолонок = Новый Массив;
	МассивКолонок.Добавить("Сотрудник");
	МассивКолонок.Добавить("Счет");
	
	ЗагрузкаНаСервере(Адрес, МассивКолонок);

КонецПроцедуры

&НаСервере
Процедура ЗагрузкаНаСервере(Адрес, МассивКолонок)

	темп_Путь = КаталогВременныхФайлов()+ "tf_1c_"+Формат(ТекущаяДата()-Дата(2012,01,01), "ЧГ=0")+".xls";
	
	темп_файл = ПолучитьИзВременногоХранилища(Адрес);
	темп_файл.Записать(темп_Путь);
	
	МассивСчетов = ЗагрузитьЭксель(темп_Путь,МассивКолонок);
	
    //...далее работа с полученным массивом данных


	Попытка
    	УдалитьФайлы(темп_Путь); 
	Исключение
    	Сообщить(ОписаниеОшибки());
	КонецПопытки;

КонецПроцедуры

&НаСервере
Функция  ЗагрузитьЭксель(Путь, МассивКолонки)
	
	МассивРезультат = Новый Массив;
	
	Попытка 
		ex = ПолучитьCOMобъект("","Excel.Application");
	Исключение
		Сообщить("Excel Application не создан!!");
		Возврат МассивРезультат;
	КонецПопытки;
	
	Попытка
		ex.workbooks.open(Путь,1);
	Исключение
		Сообщить("Файл перемещен или удален!");
		Возврат МассивРезультат;
	КонецПопытки;
	
	RCount = ex.ActiveSheet.UsedRange.Rows.Count();
	CCount = ex.ActiveSheet.UsedRange.Columns.Count();
	Для j = 2 по RCount цикл

		НоваяСтрока = Новый Структура;

		Для i=0 По МассивКолонки.Количество()-1 Цикл
			НоваяСтрока.Вставить(МассивКолонки[i], ex.ActiveSheet.Cells(j,i+1).Value);
		КонецЦикла;
	
		МассивРезультат.Добавить(НоваяСтрока);
 
	КонецЦикла;	
	
	ex.workbooks.Close();
	ex.quit();
	
	Возврат МассивРезультат;
КонецФункции

 

excel тонкий клиент сервер

См. также

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

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, МагнитЭкспресс (быв.Казань-Экспресс), Леруа Мерлен, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:КА 2, 1С:ERP Управление предприятием.

5400 руб.

12.08.2021    39665    452    69    

186

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

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить"

8000 руб.

09.11.2016    250199    1146    932    

1062

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 13.05.2025, версия 9.11 - 1010)

18000 руб.

20.11.2015    162254    403    386    

530

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

Загрузка данных отчета о реализации и продаже товаров из сервиса Яндекс.Маркета «Беру» из отчетов Excel для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3; Управление нашей фирмой, редакция 3.0 и Розница, редакция 3.0 в документ «Отчет комиссионера о продажах».

6000 руб.

09.12.2020    27676    283    1    

137

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

Обработки загрузки данных о продажах WildBerries предназначены для следующих конфигураций: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 3.0; Розница, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3

6000 руб.

11.12.2019    60432    1036    3    

268

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

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

11100 руб.

29.10.2014    220707    677    528    

466
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. maxdmt 28 30.11.17 21:59 Сейчас в теме
Если ваш сервер 64бит а мс офис 32 - то вариант на сервере не взлетит.
autosvg; Rie; +2 Ответить
2. proal 211 01.12.17 06:24 Сейчас в теме
Начиная с 8.3.8, можно загружать Excel-файл напрямую в ТабличныйДокумент.
Правда, эту фичу я опробовал только в 8.3.10 версии, поэтому не могу ручаться за корректность загрузки в предыдущих версиях.
В моем случае файлы простые (1 страница, никаких формул, голый текст и числа), ошибок загрузки пока не встречал.
А загружается очень просто:

ОбъектТабличногоДокумента..Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);

И никакого офиса на сервере не надо, битность тоже не влияет.
Rabot; by_1Cnik; neo-ti; NightGod; myoker; DataReducer; sogesti; i132; freud; IvanKh; jaroslav.h; Denium79; Staky; starik-2005; gradi; MaxS; +16 Ответить
4. alex_bitti 98 01.12.17 08:55 Сейчас в теме
(2) этот вариант не проще, нужен объект, даже если структура объекта (набор полей) сформируется налету (если честно последнюю не пробовал, но были проблемы с этим раньше), после загрузки она абсолютно неведома для разработчика, загрузка в ТаблицуЗначений все же более интерактивная, создавая структуру таблицы, есть возможность хранить ее отдельно от данных, если например требуется загрузка отдельных данных заранее не изветно где они расположены
5. PavelKolobkov 01.12.17 09:20 Сейчас в теме
(2) При загрузке через ТабличныйДокумент некорректно читаются символы с диакритическими знаками.
8. Isonic 244 01.12.17 10:57 Сейчас в теме
7. Isonic 244 01.12.17 10:57 Сейчас в теме
(2) теряется часть значений в ячейке!
3. alex_bitti 98 01.12.17 08:42 Сейчас в теме
согласитесь управляемое приложение создает некие неудобства, причем не управляемое приложение как таковое, а его реализация в 1С, правила модерации на этом ресурсе заставляют жестко привязываться к теме, а вообще проблема есть даже с реализацией типовых механизмов, например, у меня есть файл с созданный в Конвертации данных и мне необходимо загрузить его в Универсальный обмен на Сервере с клиента, задача казалась бы простой но ужасно реализованной в типовом варианте
6. Isonic 244 01.12.17 10:56 Сейчас в теме
предложенный автором способ, и способы загрузки предложенные в комментах не работоспособны при использовании файлов excel с объемом 10к и более строк!

Загрузка по времени увеличивается в геометрической прогрессии!

PS: проверено на файлах с количеством строк более 500к. Мощные серваки просто загнулись

Правильнее использовать метод "Range"
9. alex_bitti 98 01.12.17 11:19 Сейчас в теме
(6) а с чем связана проблема? просто давно не приходилось делать большие загрузки, 6 лет назад в 8.2 (УФ) делал загрузку справочников подобным образом, номенклатура была около 50к строк, долго но все зашло, вроде, деталей не помню. сам эксель плохо работает с большими объемами, xls старый формат на сколько мне не изменяет имеет ограничение в 64к строк,
вспомнил, по моему я делал как раз открытие и закрытие загружаемого файла, и чтение со следующей после последней загруженной перед закрытием, может это не правильно, но сделано как сделано, на тот момент как смог))
10. Isonic 244 01.12.17 11:25 Сейчас в теме
(9) построчное и поячеечное чтение очень много времени занимает. Не прикольно когда загрузку приходиться ждать 1-2 дня
11. alex_bitti 98 01.12.17 11:26 Сейчас в теме
(10) я дописал предыдущий коммент, нет загрузилось тогда все в течении дня рабочего
12. MaxS 3010 01.12.17 12:17 Сейчас в теме
(6) Попробуйте в 1С открыть большой файл через главное меню Файл- Открыть. Если открывается, то и программой не составит труда обработать через ТабличныйДокумент.
У меня обработкой без проблем читаются 100к строк.
13. alex_bitti 98 01.12.17 12:32 Сейчас в теме
(12) табличный документ не для всего подходит, например из 115 колонок нужно загрузить 40 не подряд естественно, и несколько сот строк тоже не подряд, структура загружаемых данных заранее не известна, зависит от содержания, простой пример такой ситуации я написал в основном тексте, есть графики с календарями, в некоторых месяцах 30 денй в некоторых 31, у кого то есть ночные часы у кого то их нет
14. MaxS 3010 01.12.17 12:53 Сейчас в теме
(13) 1С с табличным документом быстрее работает, чем с внешней программой, к которой нужно неоднократно обращаться для считывания данных. Запуск сторонней программы наверное больше памяти съест, чем загрузка всего файла в табличный документ.
15. alex_bitti 98 01.12.17 13:03 Сейчас в теме
(14) мне кажется это немного другая тема, повторюсь, в 1С есть возможность нормально создать объект из модуля, или реквизит объекта из модуля? предложенный вами метод частный случай, но не спорю более производительный, хотя если углубиться дальше 1С можно было бы поспорить
16. Dmitry888 43 01.03.21 12:49 Сейчас в теме
Спасибо все получилось
17. Dmitry888 43 01.03.21 12:49 Сейчас в теме
Но было очень сложно и не понятно и потому спустя 6 месяцев получилось сделать что-то подобное
Оставьте свое сообщение