Преобразование EXCEL в таблицу значений без COM и других извращений

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

Разработка - Обмен данными 1С - Загрузка и выгрузка в Excel

Обработка Загрузка EXCEL 1C Программирование ТаблицаЗначений таблица значений Запрос

Получение таблицы значений из excel в 1С v8, без COM, внешних источников данных и т.д. EXCELВТаблицуЗначений() - За 10 строчек кода! Реализация протестирована на 1С 8.3.12.1714 (x64).

WARNING

Данная статья не претендует на оригинальность и не является конечным решением.

Подходы решения задач и примеры программного кода несут исключительно обучающий характер.

 

 

 

 

Существует масса подходов загрузки данных из EXCEL в 1С. Большинство решений основаны на COM или еще более сложных возможностях платформы.

Для себя разработал наиболее оптимальный вариант:
EXCEL -> Табличный документ -> Построитель запроса -> Таблица значений

Итак, приступим:

  1. Прочитать Excel файл на клиенте, для передачи на сервер: 
    &НаКлиенте
    Процедура ЗагрузитьEXCEL(Команда)
    	
    	Файл = Новый Файл(ПутьКEXCEL);
    	Если НЕ Файл.Существует() Тогда
    		Возврат;
    	КонецЕсли;
    	ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКEXCEL);
    	ДокументРезультат = EXCELВТаблицуЗначений(ДвоичныеДанные, Файл.Расширение);
    	ДокументРезультат.Показать();
    	
    КонецПроцедуры

     

  1. Выполнить чтение Excel в таблицу значений: 
    &НаСервере
    Функция EXCELВТаблицуЗначений(ДвоичныеДанные, Расширение)
    	
    	ФайлEXCELНаСервере = ПолучитьИмяВременногоФайла(Расширение);
    	ДвоичныеДанные.Записать(ФайлEXCELНаСервере);
    	
    	ТабличныйДокумент = Новый ТабличныйДокумент;
    	ТабличныйДокумент.Прочитать(ФайлEXCELНаСервере);
    	УдалитьФайлы(ФайлEXCELНаСервере);
    	ОбластьТаблицы = ТабличныйДокумент.Область(8, 1, ТабличныйДокумент.ВысотаТаблицы, ТабличныйДокумент.ШиринаТаблицы);
    	
    	ПостроительЗапроса = Новый ПостроительЗапроса;
    	ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьТаблицы);  
    	ПостроительЗапроса.Выполнить();
    	ТаблицаДанных = ПостроительЗапроса.Результат.Выгрузить();
    	
    	// теперь поссмторим что в Таблице
    	Возврат ТаблицаЗначенийВТабличныйДокумент(ТаблицаДанных);
    	
    КонецФункции 

     

  2. Визуализировать таблицу значений: 

    &НаСервереБезКонтекста
    Функция ТаблицаЗначенийВТабличныйДокумент(ТаблицаДанных)
    	
    	ПостроительОтчета = Новый ПостроительОтчета;
    	ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаДанных);
    	ДокументРезультат = Новый ТабличныйДокумент;
    	Построительотчета.Вывести(ДокументРезультат);
    	Возврат ДокументРезультат;
    	
    КонецФункции

     

Описание преобразования данных:

  1. Получаем исходный файл на клиенте;
  2. На основании файла создаем двоичные данные и получаем расширение файла;
  3. Передаем двоичные данные на сервер;
  4. Создаем дубль файла excel на сервере;
  5. Читаем файл в новый табличный документ;
  6. Получаем область табличного документа, где находятся полезные данные (ТабличныйДокумент.Область(8, 1, ТабличныйДокумент.ВысотаТаблицы, ТабличныйДокумент.ШиринаТаблицы));
  7. Создаем новый построитель запроса и установим в качестве источника данных - область полезных данных;
  8. Выполним построитель и получим результат запроса;
  9. Результат запроса выгрузим в таблицу значений.

Плюсы реализации:

  • Скорость работы по сравнению с COM EXCEL
  • Возможно выполнять загрузку где EXCEL нет вообще (MAC | LINUX | etc...)
  • Простота реализации

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

Лучшие комментарии
1. VmvLer 18.04.19 14:30 Сейчас в теме
ок. просто, понятно, рационально, полезно.
seperblunt2; Lem0n; D_e_X_T_e_R; EliasShy; Gang031; davydoff; jaroslav.h; ram3; YPermitin; korzhishe; igo1; bulpi; Eret1k; +13 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. VmvLer 18.04.19 14:30 Сейчас в теме
ок. просто, понятно, рационально, полезно.
seperblunt2; Lem0n; D_e_X_T_e_R; EliasShy; Gang031; davydoff; jaroslav.h; ram3; YPermitin; korzhishe; igo1; bulpi; Eret1k; +13 Ответить
2. A_Max 18 18.04.19 16:22 Сейчас в теме
Не нужно плодить временные сущностифайлы!

ФайлEXCELНаСервере = ПолучитьИмяВременногоФайла(Расширение);
ДвоичныеДанные.Записать(ФайлEXCELНаСервере);
ТабличныйДокумент.Прочитать(ФайлEXCELНаСервере);
УдалитьФайлы(ФайлEXCELНаСервере);

Заменить на одну строку:
ТабличныйДокумент.Прочитать(ДвоичныеДанные.ОткрытьПотокДляЧтения())
rudnitskij; androgin; +2 Ответить
4. nikita0832 208 18.04.19 17:57 Сейчас в теме
(2)через поток читает только ods и mxl, к сожалению.
3. hillsnake 18.04.19 17:49 Сейчас в теме
ни фига себе , я тут сидел изучал Адо , как преобразовать xlsx в xml ... все тлен ..
Автор гений Спасибо.
dammit666; graphbuh; leshiy26; Eret1k; +4 Ответить
5. nikita0832 208 18.04.19 18:01 Сейчас в теме
от себя добавлю как это реализовано у меня:

Функция ФайлExcelВТаблицуЗначений(Файл,НомерЛиста=0,КолУровнейШапки=0,ЧитатьКакТекст=Ложь,УдалятьПустыеСтроки=Истина) Экспорт
	
	ТабДок = Новый ТабличныйДокумент;
	ТабДок.Прочитать(Файл,?(ЧитатьКакТекст,СпособЧтенияЗначенийТабличногоДокумента.Текст,СпособЧтенияЗначенийТабличногоДокумента.Значение));
	
	ЧитаемаяОбласть = ТабДок.Область();
	Если НомерЛиста>0 Тогда
		
		ТабОбластей = Новый ТаблицаЗначений;
		ТабОбластей.Колонки.Добавить("Верх");
		ТабОбластей.Колонки.Добавить("Область");
		
		Для Каждого Область Из ТабДок.Области Цикл
			Строка = ТабОбластей.Добавить();
			Строка.Область = Область;
			Строка.Верх = Область.Верх;
		КонецЦикла;
		
		ТабОбластей.Сортировать("Верх");
		Область = ТабОбластей[НомерЛиста-1].Область;
	КонецЕсли;
	
	Если КолУровнейШапки > 1 Тогда
		Область = СвернутьСложнуюШапку(ТабДок,КолУровнейШапки,Область);
	КонецЕсли;
	
	ПЗ = Новый ПостроительЗапроса;
	
	ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(Область);
	
	ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
	
	ПЗ.ЗаполнитьНастройки();
	
	ПЗ.Выполнить();
	
	Таб = ПЗ.Результат.Выгрузить();
	
	Если НЕ УдалятьПустыеСтроки Тогда
		Возврат Таб;
	КонецЕсли;
	Удаленные = 0;
	Для инд = 0 По Таб.Количество()-1 Цикл 
		Стр = Таб[инд-Удаленные];
		Заполнена = Ложь;
		Для Каждого Колонка Из Таб.Колонки Цикл
			Если ЗначениеЗаполнено(Стр[Колонка.Имя]) Тогда
				Заполнена = Истина;
				Прервать;
			КонецЕсли;
		КонецЦикла;
		Если Не Заполнена Тогда 
			Таб.Удалить(Стр);
			Удаленные = Удаленные+1;
		КонецЕсли;
	КонецЦикла;
	Возврат Таб;

КонецФункции // ФайлExcelВТаблицуЗначений()

// Для парсинга табличных документов: сворачивает шапку для построителя запросов до 1 уровня
//
// Параметры:
//  Область  - ТабличныйДокумент,ОбластьТабличногоДокумента - <описание параметра>
//  КолУровней  - Число - Исходное количество уровней начиная с 2. Передавать меньше 2 не имеет смысла.
//        
// Возвращаемое значение:
//   ОбластьТабличногоДокумента   - Область с обрезанной до 1 строки шапкой.
Функция СвернутьСложнуюШапку(ТабДок,КолУровней,Область=Неопределено) Экспорт
	Если Область=Неопределено Тогда
		Область = ТабДок.Область();
	КонецЕсли;
	МассивЗаголовков = Новый Массив;	
	МаксКолонок = ТабДок.ПолучитьРазмерОбластиДанныхПоГоризонтали();
	ПерваяСтрока = Область.Верх;
	Для Сч = 1 По КолУровней Цикл
		ПредЗначение = "";
		Для Кол = 1 По МаксКолонок Цикл
			Текст = ТабДок.Область("R"+Строка(ПерваяСтрока+Сч-1)+"C"+Кол).Текст;
			
			Если Сч = 1 Тогда
				МассивЗаголовков.Добавить(Новый Массив);
				Если ЗначениеЗаполнено(Текст) Тогда
					МассивЗаголовков[Кол-1].Добавить(Текст);
					ПредЗначение = Текст;
				Иначе
					МассивЗаголовков[Кол-1].Добавить(ПредЗначение);
				КонецЕсли;
			Иначе
				ИменаЗаголовка = МассивЗаголовков[Кол-1];
				РодительОтличается = Ложь;
				Если Кол >1 Тогда
					Для Инд = 0 по Сч-2 Цикл
						Если ИменаЗаголовка[Инд] <> МассивЗаголовков[Кол-2][Инд] Тогда
							РодительОтличается = Истина;
							Прервать;
						КонецЕсли;
					КонецЦикла;
				КонецЕсли;
				Если ЗначениеЗаполнено(Текст) Тогда
					ИменаЗаголовка.Добавить(Текст);
				Иначе
					Если ЗначениеЗаполнено(ПредЗначение) И НЕ РодительОтличается Тогда 
						ИменаЗаголовка.Добавить(ПредЗначение);
					КонецЕсли;
				КонецЕсли;
				ПредЗначение = Текст;
			КонецЕсли;
			
		КонецЦикла;
	КонецЦикла;
	Для Кол = 1 По МаксКолонок Цикл
		ТабДок.Область("R"+Строка(ПерваяСтрока+КолУровней-1)+"C"+Кол).Текст = СтрСоединить(МассивЗаголовков[Кол-1],"_");
		
	КонецЦикла;
	НоваяОбласть = ТабДок.Область("R"+Строка(ПерваяСтрока+КолУровней-1)+":R"+Область.Низ);
	Возврат НоваяОбласть;
КонецФункции // СвернутьСложнуюШапку()
Показать
babys; glek; acanta; +3 Ответить
6. nikita0832 208 18.04.19 18:08 Сейчас в теме
(5)поясню: листы перечислены в областях документа, сортировать их можно по признаку "Верх" , т.е. где он начинается. Есть так же многоэтажные шапки, которые часто делают Экселеводы, для них сделал отдельную функцию. Ещё метод прочитать может читать как ячейки как строку, а может с теми типами, которые указаны в экселе(но это рисково, надо контролировать, особенно если надо использовать эту таблицу в запросе).
7. Lapitskiy 976 18.04.19 20:48 Сейчас в теме
Это работает только для xlsx
К сожалению, xls не прочитает.
Вот здесь человек проделал огромный труд, читайте: https://infostart.ru/public/120961/
10. logarifm 1076 18.04.19 21:31 Сейчас в теме
(7) С какого это перепуга не сработает. Все прекрасно там работает!
11. ksnik 387 19.04.19 00:18 Сейчас в теме
Метод1С "Прочитать эксель в табличный документ" намертво на несколько часов виснет если на одном из листов >30000 строк, в этом случае весь документ не доступен и работать не возможно, поэтому "прочитать" можно использовать только для маленьких файлов. А для больших - можно делать на основе быстрого парсера https://infostart.ru/public/139556/
(7) при условии если не хотим убить сутки на разбирательство с https://infostart.ru/public/120961/ которую рядовые пользователи не смогут осилить
sulfur17; Dach; Lapitskiy; Eret1k; +4 Ответить
16. batsy66 56 19.04.19 10:31 Сейчас в теме
(11) Если количество листов в документе больше 20, то так же виснет намертво
sulfur17; +1 Ответить
25. Rustig 1487 20.04.19 10:35 Сейчас в теме
(11) спасибо за информацию! значит используем предложенный способ для небольших списков товаров - к примеру, при загрузке приходных накладных - к примеру в небольшом магазине игрушек...
8. logarifm 1076 18.04.19 21:28 Сейчас в теме
(0) О Боже автор наконец-то освоил уже устаревший метод Прочитать!
chemezov; Yashazz; MSK_Step; qwinter; shard; YPermitin; temsan; Lapitskiy; +8 3 Ответить
15. qwinter 624 19.04.19 09:42 Сейчас в теме
(8) Больше поражает сколько плюсов статья получила))
Yashazz; YPermitin; +2 Ответить
27. Rustig 1487 20.04.19 10:39 Сейчас в теме
(15) загрузка из Эксель одна из самых популярных задач - не зря же 1С развивает эту тему....поэтому любые нововведения встречают на "ура"
33. Yashazz 3260 06.08.19 13:37 Сейчас в теме
(15) Ну дык примитив всегда поражает воображение: "всего N строчек и вау-вау!". А про нормальную работу через ADO итд автор не знает, да и специфику внутренних преобразований эксельных таблиц внутри платформы никто не знает точно. Зато вау.
9. logarifm 1076 18.04.19 21:30 Сейчас в теме
И резко упал вниз в цепочке развития где-то в район колчатых червей:

ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьТаблицы);
ПостроительЗапроса.Выполнить();
ТаблицаДанных = ПостроительЗапроса.Результат.Выгрузить();

В 8.3 использовать построитель это уже не комильфо...
MSK_Step; YPermitin; hillsnake; +3 4 Ответить
19. veri123 19.04.19 14:48 Сейчас в теме
(9) А что плохого в построителе?
AllexSoft; Eret1k; +2 Ответить
20. kembrik 3 19.04.19 16:06 Сейчас в теме
(9) Отнюдь, удобней способа выгрузить табличный документ в ТЗ и наоборот ещё поискать
chemezov; Eret1k; +2 Ответить
24. Rustig 1487 20.04.19 10:33 Сейчас в теме
(9) 1. в защиту ПостроителяЗапроса - вот моя разработка https://infostart.ru/public/933060/ - которая использует ПостроительЗапроса - реализовал полгода назад - считаю объект ПостроительЗапроса - очень интересным и малоизученным программистами
2.
В 8.3 использовать построитель это уже

8.3 - это платформа - у меня все программы на обычных формах работают на 8.3 - ут 10.3, бп 2.0.
в ут 10.3 до сих пор многие механизмы на ПостроителеЗапроса - к примеру, отчеты или отборы в документе Инвентаризация товаров.
AllexSoft; chemezov; Eret1k; +3 Ответить
35. Yashazz 3260 06.08.19 13:40 Сейчас в теме
(24) Соглашусь. Построитель иногда очень эффективен. И я в своё время его много изучал, и сейчас использую. Любой инструмент должен быть адекватен своему контексту применения.
34. Yashazz 3260 06.08.19 13:39 Сейчас в теме
(9) Это ещё автор не в курсе, какие у построителя ограничения по производительности, да как он обойдётся с ячейками сложных форматов, да что будет делать с объединёнными областями... Гы, много автору суждено открытий чудных. И тем, кто повёлся на этот способ, тоже)
AllexSoft; John_Davidson; +2 Ответить
39. AllexSoft 09.08.19 17:38 Сейчас в теме
(9) Построитель запроса (не путать с построителем отчета!!) очень даже хороший инструмент, незаслуженно обделенный вниманием. Позволяет по сути уйти от всеми нами "любимых" СтрЗаменить или склеек условий. Построитель запроса это младший брат СКД, никто не ругается же на СКД в 1С.
12. Crazy_Max 63 19.04.19 07:00 Сейчас в теме
Ну что за грязь! Назвать функцию "EXCELВТаблицуЗначений", а возвращать из неё "ТабличныйДокумент"...
Тем более, что статья писана для начинающих, и это обязательно будет вводить их в ступор и/или приучать к бардаку в коде.
Ну раз уж выложили свою статью на всеобщий суд, так хоть немного причешите код, что ли...
14. 1Cappldev 19.04.19 08:10 Сейчас в теме
(12) Добрый день! Сухая критика автора ни к чему не приведёт. Вот что действительно поможет комьюнити, напишете как сделали бы Вы, или поделитесь полезными ссылочками дабы предотвратить бардак в коде.
Ignatov_mu; dadel; RickyTickyTok; more; user1098673; batsy66; korzhishe; Eret1k; +8 Ответить
18. Crazy_Max 63 19.04.19 12:27 Сейчас в теме
(14) А как мне еще "размочить" критику? Я указал на конкретную, грубую ошибку, заключающуюся в том, что наименование основной функции описывает один ТИП возвращаемого значения, а по факту возвращает ДРУГОЙ ТИП значения. Исполняться такой код будет, но ведь исполнение кода не является единственным критерием оценки его качества.
Как в том афоризме: "он - начинающий программист, и пока еще кодит под себя"...
John_Davidson; Krio2; fvadim; practik1c; Vortigaunt; Rustig; +6 Ответить
26. Rustig 1487 20.04.19 10:37 Сейчас в теме
(14) критика обидна, поскольку в такой критикующей форме идет общение, но раз другой нет - то приходится учиться принимать ее в таком виде - в результате, если автор услышит суть, уберет эмоции критикующего, то ему будет полезно.
1Cappldev; Eret1k; +2 Ответить
13. Lapitskiy 976 19.04.19 07:33 Сейчас в теме
17. ksnik 387 19.04.19 11:19 Сейчас в теме
(13) она универсальная, а не заточенная под конкретную задачу, если и удастся самому приложив усилия импортировать конкретный документ и все сопутствующие справочники и регистры сведений, то никак не получится заставить ей пользоваться рядовых пользователей в ежедневной рутинной работе.
21. Serg O. 187 19.04.19 20:43 Сейчас в теме
А как насчет метода копипаста? Почему то никто тут про него не вспоминает.... Самый быстрый способ, под winwows так точно. через Буфер обмена можно под wsShell отправкой ctrl+C потом в своей таблице ctrl + V или "стандартными" методами Excel - select - copy. Потом в 1с из буфера вставить... Так независимо от версии 1с... Хоть с 8.1 и то работает...
Есть минус... Excel. Или хотя бы OpenOffice должен быть установлен.… 2) должно быть открыто, моргает при открытии 3) при многократной (более 20) вставке... Exсel умирает... ошибка завершения, а процесс остаётся висеть
23. Rustig 1487 20.04.19 10:22 Сейчас в теме
(21)
Есть минус... Excel. Или хотя бы OpenOffice должен быть установлен.…

я на платформе 8.3.13 из 1с просто открыл файл эксель (через меню Файл-Открыть) - открылся табличный документ mxl.
при этом эксель не был установлен на компе.
а так как я не использую чтение эксель, а использую для обработки информации mxl, то мне этого достаточно (можете мои загрузки из эксель поизучать)
22. DanDy 34 20.04.19 10:16 Сейчас в теме
Почему нельзя вынести работу с файлом на клиент? А уже полученный Табличный документ передать на сервер? Тогда временный файл вроде как не нужен
29. pbabincev 116 21.04.19 15:54 Сейчас в теме
(22)
Это уже детали.
Автор хотел донести общую суть самого простого способа загрузки из Excel.
31. DanDy 34 22.04.19 17:01 Сейчас в теме
(29)
Когда однажды столкнешься с проблемой доступа к файлу на сервере, по пути выбранном на клиенте, тогда поймешь что "детали" и работоспособность на файловом и клиент-серверном варианте это разные вещи
28. pbabincev 116 21.04.19 15:53 Сейчас в теме
ОбластьТаблицы = ТабличныйДокумент.Область(8, 1, ТабличныйДокумент.ВысотаТаблицы, ТабличныйДокумент.ШиринаТаблицы);
...
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьТаблицы);

А что, так можно было?)
Не знал, спасибо, автор)
30. d.zhukov 709 22.04.19 06:16 Сейчас в теме
- Старые форматы excel не прочитает.
- Открытый файл не прочитает.
- Ну и на а 8.2, разумеется, не заработает.
32. ksnik 387 06.08.19 09:15 Сейчас в теме
Данное решение не пригодно для больших таблиц потому что платформа 1С8 пока не умеет работать с табличными документами так же быстро как это делает Эксель. Данное решение пригодно исключительно для мелких файлов.
Yashazz; Поручик; +2 Ответить
36. Yashazz 3260 06.08.19 13:42 Сейчас в теме
37. skv_79 208 06.08.19 16:52 Сейчас в теме
Отличная реализация частой задачи!
38. kuzyara 1027 07.08.19 04:45 Сейчас в теме
Можно читать и через ТабДок, но есть ньюансы.
Yashazz; AllexSoft; +2 Ответить
40. Yashazz 3260 09.08.19 17:44 Сейчас в теме
(38) а про нюансы люди сами узнают, когда попытаются это применить))) плюсов, смотрю, вообще уже запредельное количество. Как и желающих с размаху встать на грабли)
41. AllexSoft 09.08.19 18:10 Сейчас в теме
Плюсанул только за функцию ТаблицаЗначенийВТабличныйДокумент, как то запамятовал что построитель отчета может по таблице значений выводить табличный документ. Иногда нужно вывести какую нибудь простенькую таблицу ошибок обработки например или какую нибудь отладочную инфу пользователю, а городить макет и вывод в табдок не хочется.. вот тут то эта функция будет самое оно. Кстати функция прокатит и для РезультатаЗапроса, а не только для ТаблицыЗначений.
А по поводу загрузки из экселя функция увы совсем не универсальная будет из за построителя запроса, он совсем не все подряд кушает, но если есть простенькая четко структурированная табличка, то вполне прокатит.
42. Yashazz 3260 11.08.19 10:40 Сейчас в теме
(41) Алекс, а если люди ещё почитают про ОписаниеИсточникаДанных, а потом сравнят, что в СП написано про "ИсточникДанных" и что про конструктор описания, будет ещё много открытий)

Ну раз подобное теперь "выбор экспертов", то у меня уже просто нет слов...
43. AllexSoft 12.08.19 10:32 Сейчас в теме
(42) это да, хотя с другой стороны каждую неделю какую нибудь годноту типа перфоленты никто выкладывать не сможет, а выбор экспертов надо чем-то наполнять...
Оставьте свое сообщение

См. также

Копирование числовых ячеек из 1С в Excel Промо

Загрузка и выгрузка в Excel Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

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

15.01.2019    21508    0    itriot11    23    

Удаление из файла эксель ненужных страниц средствами 1С без COM и через COM

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Как средствами 1С из файла эксель удалить ненужные листы без COM и с ним. Я разрабатывал на платформе 1С:Предприятие 8.3 (8.3.14.1694)

28.01.2020    2269    0    pavel_pss    12    

Обертка функций Excel на русском. Ускорение процесса разработки.

Загрузка и выгрузка в Excel Универсальные функции v8 Бесплатно (free)

Устали переключаться с русского на английский и обратно при работе с таблицами Excel из 1С? Сборка наиболее необходимых функций и методов работы с Excel, обернутых в функции 1С на русском языке.

24.10.2019    6734    0    DmitryKotov    6    

Выгрузка из 1С номенклатуры со штрихкодами без программирования

Загрузка и выгрузка в Excel Внешние источники данных v8 УТ11 Россия Бесплатно (free)

Я так и не смог найти простой инструкции или обработки, чтобы выгрузить из 1С: Управление торговлей 11 номенклатуру вместе со штрихкодами, поэтому решил написать собственную инструкцию.

28.08.2019    9488    0    user1114182    4    

Excel vs 1С: битва с неожиданным исходом Промо

Анализ учета Универсальные обработки Загрузка и выгрузка в Excel Финансовые Управленческие v8 1cv8.cf Россия Бесплатно (free)

Что лучше 1С или Excel? Разберемся, в казалось бы, очевидном, чтобы получить невероятное!

11.04.2019    34829    0    bolefirenko    116    

Загрузка картинок в справочники (Универсальная загрузка из табличного документа)

Обработка справочников Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Пример загрузки картинок в справочник Номенклатура (с помощью обработки универсальная загрузка данных из табличного документа). Проверялось на конфигурации УТ 11.4.7.

28.05.2019    7074    0    rasdag    5    

Повторение строк заголовка на каждой странице при обработке файлов Excel средствами платформы 1С:Предприятие

Практика программирования Загрузка и выгрузка в Excel Разработка v8 Россия Бесплатно (free)

Вопросы повторения строк на каждой странице при работе с файлом Excel из программы, работающей в системе 1С.

23.01.2019    6183    0    senshkr    3    

Из Excel в 1С запросом Промо

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

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

14.08.2018    19281    0    m-rv    5    

Запись одной книги Excel на нескольких листах средствами 1С (без внешних компонент)

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Пользователи часто просят сохранить им стопиццот отчетов в один файл Excel, чтобы отчеты были в одном файле. Ну или клиент хочет счет, накладную и счет-фактуру получить в одном документе. 1С умеет это делать без всяких там COM-объектов. Давайте разберемся, куда нажимать и что крутить.

14.01.2019    20347    0    starik-2005    25    

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

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

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

09.01.2019    12032    0    rasdag    14    

Работа с Excel через COM

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Несколько примеров работы с excel (ms office 2010, в моем случае) через COM.

01.10.2018    9562    0    jaroslav.h    0    

Загрузка из EXCEL в 1С на платформе 8.3.6/8.3.7/8.3.8/8.3.9/8.3.10 (с картинками) Промо

Практика программирования Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Импорт содержимого из файлов в форматах XLS (Microsoft Excel 97), Microsoft Office OpenXML (Microsoft Excel 2007- 2010) и ODS (OpenDocument) в таблицу значений.

06.04.2015    232180    0    StepByStep    75    

Выгрузка в Excel с использованием формата OpenXML, разбор файла sheet1.xml

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Судя по количеству просмотров темы https://infostart.ru/public/900022/ решил описать структуру файла Листа excel. На полноту не претендую, опишу то, что знаю.

21.09.2018    7362    0    user1045404    2    

Excel: создание в формате xlsx без COM технологии

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

По работе приходится часто выгружать данные в Excel формате. При большом количестве строк и формул этот процесс достаточно длительный. Решил написать для своих целей небольшую библиотечку для выгрузки данных. Используется технология open-xml. Никаких библиотек не надо, пишу напрямую в xml файлики. На данном этапе сделано форматирование, формулы.

10.09.2018    10876    0    user1045404    16    

Маркировка ячеек цветом. Отладка загрузки данных из эксель.

Практика программирования Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

После 100-ой кривой загрузки родился способ, как отладить алгоритм.

05.07.2018    8968    0    Rustig    7    

Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ПостроительDOM Промо

Универсальные обработки Загрузка и выгрузка в Excel Обмен через XML v8 1cv8.cf Бесплатно (free)

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "NativeXLSX" (ПостроительDOM). Обрабатываются данные EXCEL типов: "Строка", "Число", "Дата" ("Время"), "Булево", "Процент", а также изображения.

11.09.2014    71299    0    StepByStep    26    

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

Загрузка и выгрузка в Excel v8::УФ Бесплатно (free)

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

30.11.2017    31626    0    alex_bitti    15    

Функция сохранения картинок из книги Excel в каталог с определением координат на листе

Загрузка и выгрузка в Excel Универсальные функции v8 Бесплатно (free)

Разбор файла *.xlsx как Web-архива, выгрузка изображений без потери качества, с определением положения изображений.

12.11.2017    10341    0    user634820_zergemoth    1    

Работа с Excel

Практика программирования Загрузка и выгрузка в Excel v8 Бесплатно (free)

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

23.10.2017    40789    0    arakelyan    39    

Загрузка из EXCEL в 1С. MS ADODB.Connection Промо

Практика программирования Универсальные обработки Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "MS ADODB" (ADODB.Connection). Поддерживаемые типы: *.xls,*.xlsx.

30.11.2012    143414    0    StepByStep    89    

Невалидный XLSX при сохранении Табличного документа

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Ошибка открытия XLSX файлов, созданных при сохранении Табличного документа. (Невалидный формат файла)

21.10.2017    13207    0    saddy    3    

Почему при загрузке таблицы Excel в 1С возникают ошибки?

Загрузка и выгрузка в Excel v8 Бесплатно (free)

При загрузке из EXCEL в 1С методом MS ADODB.Connection столкнулся с некоторыми проблемами, которые попытался устранить в ниже приведенной статье. Надеюсь, что статья поможет вам сократить время разработки.  Особая благодарность Андрею М. за публикацию //infostart.ru/public/163640/

28.04.2017    15873    0    dakork    4    

Загрузка значений свойств номенклатуры в Альфа-Авто с использованием обработки загрузки данных из табличного документа

Загрузка и выгрузка в Excel Учет ТМЦ Учет ТМЦ v8 1cv8.cf Автомобили, автосервисы Россия УУ Бесплатно (free)

В публикации будет рассмотрено использование встроенной в отраслевую конфигурацию Альфа-Авто обработки по загрузке данных из табличного документа для заполнения значений дополнительных свойств номенклатуры.

13.10.2016    17588    0    miavolas    16    

СТАБИЛЬНАЯ Загрузка справочника номенклатуры в 1С:Управление торговлей 8 из прайс-листа в Excel (код открыт скачать можно бесплатно) Промо

Перенос данных из 1C8 в 1C8 Загрузка и выгрузка в Excel v8 УТ10 Россия Бесплатно (free)

В таких случаях многие заказывают соответствующие обработки у собственных штатных программистов, фирм-франчайзи или сторонних разработчиков, но это дополнительные расходы и время. Как быть, если по различным причинам такой возможности нет? У каждого пользователя профессиональной версии 1С:Предприятие 8 подобная обработка уже есть! На диске ИТС! Типовая обработка «ЗагрузкаДанныхИзТабличногоДокумента.epf», находиться в разделе «Технологическая поддержка» > «Методическая поддержка 1С:Предприятие 8» > «Универсальные отчеты и обработки» > «Загрузка данных из табличного документа». Обратите внимание, начиная с Февраля 2010 г. на диске ИТС данная обработка для конфигураций на платформе 8.1 находиться в другом разделе: «Технологическая поддержка» > «Методическая поддержка 1С:Предприятие 8» > «Платформа 1С:Предприятие 8.1» > «Универсальные отчеты и обработки» > «Загрузка данных из табличного документа».

07.11.2011    181459    0    SkyLink2012    132    

Решение проблемы медленной загрузки из файла Excel, защищенного паролем

Загрузка и выгрузка в Excel v8 Россия Бесплатно (free)

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

27.09.2016    10554    0    HAMMER_59    4    

Быстрая выгрузка больших плоских отчетов в Excel

Загрузка и выгрузка в Excel v8 Бесплатно (free)

Предлагаю способ для того, чтобы быстрее выгружать большие плоские отчеты из 1С 8 в Excel, без использования оперативной памяти на сервере и на клиенте, что очень важно, поскольку помогает избежать ошибок вида "Недостаточно памяти на клиенте" или "Недостаточно памяти на сервере". Не использует внешние компоненты. Минусы в том, что отчет выходит неформатированный, приходится настраивать ширину колонок, закрашивать границы, шрифты, жирность и т.п. Но когда отчет, выгружавшийся 3 часа, выгружается 20 минут, эти проблемы мои клиенты считают несущественными.

29.11.2015    16800    0    matveev.andrey.v    17    

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм

Загрузка и выгрузка в Excel Практика программирования v7.7 v8 Бесплатно (free)

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    17055    0    etmarket    14    

Как программисту быстро загрузить данные из Excel Промо

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Встала как-то разовая задача - загрузить данные из Excel в базу... Идея не новая, на ИС имеются уже готовые подобные разработки, но предлагается сделать самостоятельно. Пригодится в будущем.

26.10.2011    25303    0    DrAku1a    53    

Как вывести табличный документ на печать в управляемой форме внешней обработки

Практика программирования Загрузка и выгрузка в Excel v8 v8::УФ 1cv8.cf Бесплатно (free)

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

02.09.2015    45991    0    kiv1c    28    

Внедрение адресного склада в логистическом операторе

Бухгалтерский учет Загрузка и выгрузка в Excel Рабочее место Оптовая торговля Розничная торговля Учет ТМЦ Оптовая торговля Розничная торговля Учет ТМЦ v8 v8::ОУ УТ11 Оптовая торговля, дистрибуция, логистика Россия УУ УСН Бесплатно (free)

Каких-то 10 лет назад бюджет внедрений адресных складов составлял десятки тысяч долларов и месяцы работ целой команды, а теперь - типовое решение от 1С вполне рабочее и без кастомизации: немного интеграции, немного консультирования – и в продуктив. Внедрение адресного склада, в массе внедрений 1С:Управление торговлей, ред. 11.1 (далее УТ), штука до сих пор довольно-таки редкая. Данная статья описывает опыт одного маленького, но свежего внедрения адресного склада в УТ (11.1.10) и может быть интересна как практический кейс.

1 стартмани

10.08.2015    22058    0    papche    12    

Выгрузка таблицы значений в Excel

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Примитивно, грубо, без дизайна, но очень быстро.

28.06.2015    21648    0    Yashazz    31    

Скорость закачки с EXCEL при работе с большими файлами

Производительность и оптимизация (HighLoad) Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Поставлена задача уменьшить время загрузки данных с EXCEL. Пока ждал ответа от разработчиков ядра, сам начал копать всё, что угодно. ЗАДАЧА решена, с чем спешу поделиться.

09.06.2015    16217    0    ybatiaev    31    

Чтение из Эксель-файла

Загрузка и выгрузка в Excel Практика программирования v8 1cv8.cf Бесплатно (free)

Некоторые выдержки из моих наработок, связанных с работой 1С и приложений майкрософт-оффис

26.05.2015    11488    0    nikitin19819    7    

Вывод таблицы значений в Excel

Практика программирования Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Изложена методика вывода таблицы значений в Excel с помощью именованных ячеек.

21.01.2015    15207    0    scientes    6    

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним

Загрузка и выгрузка в Excel Практика программирования v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    85958    0    shmellevich    38    

Простой способ программного сохранения больших отчетов из СКД в формат Excel

Универсальные функции Загрузка и выгрузка в Excel v8::СКД 1cv8.cf Бесплатно (free)

Перерыв весь интернет не смог найти простого способа сохранить отчет с большим числом строк в формате Excel. Везде предлагалось писать процедуры построчной записи, ADO, COMSafeArray и прочее. Метод же, используемый во всех найденный публикациях "Результат.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLSX)", не работает при большом числе строк. Публикация http://infostart.ru/public/77128/ натолкнула на простую идею, которую и реализовал.

07.08.2014    30553    0    den_valley    15    

Преобразование Универсального отчета в сводную таблицу Excel.

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

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

16.06.2014    16438    0    Mos    4    

Как предотвратить возникновение ошибки при одновременном обращении пользователя и обработки к Excel.

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Если открыт (или открыть) файл Excel (к которому будет обращаться обработка), и активировать какую-либо ячейку или любое диалоговое окно и при этом обработка обратится к этому файлу, то возникнет ошибка. Так же, ошибка может возникнуть, если обработка запустила один экземпляр Excel, если пользователь, во время работы обработки откроет другой файл Excel или тот, к которому обращается обработка, то этот файл откроется в том же экземпляре приложения Excel и тогда опять возможна ошибка. Как этого избежать?

30.03.2014    19171    0    akor77    13    

Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ЧтениеXML

Загрузка и выгрузка в Excel Обмен через XML Практика программирования v8 1cv8.cf Бесплатно (free)

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "NativeXLSX" (ЧтениеXML). Обрабатываются данные EXCEL типов: "Строка", "Число", "Дата" ("Время"), "Булево", "Процент".

01.11.2013    108506    0    StepByStep    75    

Восстановление размеров картинок в Excel

Практика программирования Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Что делать, если искажается размер картинок.

19.09.2013    11172    0    Сисой    1    

Работа с Excel в фоновом задании

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Встала задача. По электронной почте приходят письма с вложениями таблиц Excel. Получение почты производится встроенным клиентом 1С фоновым заданием. Необходимо было по расписанию несколько раз в день извлекать из новых писем вложения и загружать из них данные. Тут я столкнулся с проблемой - работать с Excel в фоновом задании ни через COM, ни через ADO не удавалось. Вываливалась ошибка. Нигде в сети четкого решения проблемы я не обнаружил. В итоге, собирая информацию по крупицам из разных источников (порой и вовсе не связанных с 1с) и нескольких дней мучений все же я решил данную проблему. Ниже я опишу свое решение, чтобы помочь таким же, как я )

01.08.2013    65133    0    ltfriend    61    

Выгрузка Таблицы значений из 1С 8 в Excel с помощью MS ADO

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Функции для выгрузки Таблицы значений из 1С 8 в таблицу Excel с использованием объектов Microsoft ActiveX Data Objects (ADO) и Microsoft ActiveX Data Objects Extensions (ADOX).

10.06.2013    26070    0    AzagTot    17