Делаем формат ячейки дата в Excel без Excel

Публикация № 1409489 26.03.21

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

excel xml

Задача отправлять печатную форму в формате Excel, но у этой печатной формы должен быть правильный формат ячеек с датой

При сохранении печатной формы из 1с в Excel ячейки с датами сохраняются как общий формат. И это никак не изменить настройками макета печатной формы. 

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

 

 

Процедура СделатьФорматЯчеекДатаВЕкселе2(ПутьКФайлу) Экспорт
	
	Попытка
		Excel = Новый COMОбъект("Excel.Application");
		Excel.Visible = Ложь;
		Excel.DisplayAlerts = Ложь;
		КнигаExcel = Excel.WorkBooks.Open(ПутьКФайлу);
		
		НомерЛиста = 1;
		КнигаExcel.Sheets(НомерЛиста).Range(КнигаExcel.Sheets(НомерЛиста).Cells(2,2),КнигаExcel.Sheets(НомерЛиста).Cells(2,3)).NumberFormat = "ДД.ММ.ГГГГ"; 
		КнигаExcel.Sheets(НомерЛиста).Cells(2, 6).NumberFormat = "ДД.ММ.ГГГГ";
		КнигаExcel.Sheets(НомерЛиста).Cells(2, 10).NumberFormat = "ДД.ММ.ГГГГ";
		КнигаExcel.Save();
		
		КнигаExcel.Close();
		Excel.DisplayAlerts = Истина;
		Excel.Quit();
		Excel = Неопределено;
	Исключение
		Ошибка = ОписаниеОшибки();
		g = 1;
	КонецПопытки;	

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

 

Решил пойти другим путем. 

Файл xlsx - это набор xml-файлов в zip-архиве.

1. Для начала нужно распаковать файл в папку на диске.

 

 

ПутьВыгрузки = КаталогВременныхФайлов()+"excel\"+Строка(Новый УникальныйИдентификатор);
Зип = Новый ЧтениеZipФайла;
Зип.Открыть(ПутьКФайлу);
Зип.ИзвлечьВсе(ПутьВыгрузки, РежимВосстановленияПутейФайловZIP.Восстанавливать);

 

2. Открываем xml и читаем с помощью ПостроительDOM.

 

 

ОбъектXML   = Новый ЧтениеXML;
ОбъектXML.ОткрытьФайл(ПолныйПуть);
ПостроительDOM = Новый ПостроительDOM;
ДокументDOM    = ПостроительDOM.Прочитать(ОбъектXML);
ОбъектXML.Закрыть();

3. Добавляем новый элемент с описанием формата дата в styles.xml. Также у элемента "cellXfs"  в атрибуте "count" нужно увеличить счетчик на 1.

 

Элементы1 = ДокументDOM.ПолучитьЭлементыПоИмени("cellXfs");
НужныйЭлемент = Элементы1[0];
ИндексXfs = НужныйЭлемент.Атрибуты.ПолучитьИменованныйЭлемент("count").ЗначениеУзла;
НужныйЭлемент.Атрибуты.ПолучитьИменованныйЭлемент("count").ЗначениеУзла=XMLСтрока(Число(ИндексXfs)+1);

Элемент = ДокументDOM.СоздатьЭлемент("xf");
Элемент.УстановитьАтрибут("numFmtId", "14");
Для Каждого Атр Из НужныйЭлемент.ПоследнийДочерний.Атрибуты Цикл
	Если Атр.Имя = "borderId" Тогда
		Элемент.УстановитьАтрибут("borderId", Атр.Значение);
	ИначеЕсли Атр.Имя = "fillId" Тогда
		Элемент.УстановитьАтрибут("fillId", Атр.Значение);
	ИначеЕсли Атр.Имя = "fontId" Тогда	
		Элемент.УстановитьАтрибут("fontId", Атр.Значение);
	ИначеЕсли Атр.Имя = "applyNumberFormat" Тогда	
		Элемент.УстановитьАтрибут("applyNumberFormat", Атр.Значение);	
	ИначеЕсли Атр.Имя = "xfId" Тогда	
		Элемент.УстановитьАтрибут("xfId", Атр.Значение);	
	ИначеЕсли Атр.Имя = "applyBorder" Тогда
		Элемент.УстановитьАтрибут("applyBorder", Атр.Значение);
	КонецЕсли;	
КонецЦикла;	
НужныйЭлемент.ДобавитьДочерний(Элемент);

Формат определяется по атрибуту numFmtId элемента xf

1 0
2 0.00
3 #,##0
4 #,##0.00
5 $#,##0_);($#,##0)
6 $#,##0_);[Red]($#,##0)
7 $#,##0.00_);($#,##0.00)
8 $#,##0.00_);[Red]($#,##0.00)
9 0%
10 0.00%
11 0.00E+00
12 # ?/?
13 # ??/??
14 m/d/yyyy
15 d-mmm-yy
16 d-mmm
17 mmm-yy
18 h:mm AM/PM
19 h:mm:ss AM/PM
20 h:mm
21 h:mm:ss
22 m/d/yyyy h:mm
37 #,##0_);(#,##0)
38 #,##0_);[Red](#,##0)
39 #,##0.00_);(#,##0.00)
40 #,##0.00_);[Red](#,##0.00)
45 mm:ss
46 [h]:mm:ss
47 mm:ss.0
48 ##0.0E+0
49 @

4. Значение всех текстовых ячеек хранится в файле sharedStrings.xml. Прочитаем все эти значения в переменную элементы_si потом будем получать из этой переменной значения по индексу, который хранится в значении ячейки в файле sheet1.xml.

 

ОбъектXML2   = Новый ЧтениеXML;
ОбъектXML2.ОткрытьФайл(СтрЗаменить(ПолныйПуть,"worksheets\sheet1","sharedStrings"));
ПостроительDOM2 = Новый ПостроительDOM;
ДокументDOM2    = ПостроительDOM2.Прочитать(ОбъектXML2);
ОбъектXML2.Закрыть();
Элементы_si = ДокументDOM2.ПолучитьЭлементыПоИмени("si");

 

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

Находим нужные ячейки на "листе1" в файле sheet1.xml и меняем атрибут "s" на индекс значения формата из файла styles.xml

 

МассивЯчеек = Новый Массив();
МассивЯчеек.Добавить("B2");
МассивЯчеек.Добавить("C2");
МассивЯчеек.Добавить("F2");
МассивЯчеек.Добавить("J2");
МассивЯчеек2 = Новый Массив();
МассивЯчеек2.Добавить("B3");
МассивЯчеек2.Добавить("C3");

Параметры1 = Новый Соответствие;
Параметры1.Вставить("2", МассивЯчеек);
Параметры1.Вставить("3", МассивЯчеек2);


Элементы1 = ДокументDOM.ПолучитьЭлементыПоИмени("row");	
Для Каждого Эл1 Из Элементы1 Цикл
	МассивЯчеек = Параметры1.Получить(Эл1.Атрибуты.ПолучитьИменованныйЭлемент("r").ЗначениеУзла);
	Если МассивЯчеек <> Неопределено Тогда
		Для Каждого Эл2 Из Эл1.ДочерниеУзлы Цикл
			Если МассивЯчеек.Найти(Эл2.Атрибуты.ПолучитьИменованныйЭлемент("r").ЗначениеУзла) <> Неопределено Тогда
				Эл2.ПервыйДочерний.ТекстовоеСодержимое = XMLСтрока(ПоучитьЧислоЕксель(Дата(Элементы_si[Число(Эл2.ПервыйДочерний.ТекстовоеСодержимое)].ТекстовоеСодержимое+ " 00:00:00")));
				Эл2.Атрибуты.УдалитьИменованныйЭлемент("t");	
				
				Эл2.Атрибуты.ПолучитьИменованныйЭлемент("s").ЗначениеУзла=ИндексXfs;
			КонецЕсли;
		КонецЦикла;	
	КонецЕсли;		
КонецЦикла;	

 

6. Переносим значение из файла sharedStrings.xml в значение ячейки непосредственно в файл sheet1.xml. 

Но в файле sharedStrings.xml  хранится текстовое значение ДД.ММ.ГГГГ, его нужно преобразовать к числу в котором хранится дата в Excel.

Удаляем атрибут "t", который обозначает что нужно искать значение в файле sharedStrings.xml по индексу, который хранился в значении ячейки.

 

До изменений

после

Эл2.ПервыйДочерний.ТекстовоеСодержимое = XMLСтрока(ПоучитьЧислоЕксель(Дата(Элементы_si[Число(Эл2.ПервыйДочерний.ТекстовоеСодержимое)].ТекстовоеСодержимое+ " 00:00:00")));
Эл2.Атрибуты.УдалитьИменованныйЭлемент("t");

Функция ПоучитьЧислоЕксель(Дата2)
	Возврат ((Дата2-'19000101000000')/86400) + 2;
КонецФункции

 

7. Записываем изменения в файлах и запаковываем все обратно в zip.

 

 

ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ПолныйПуть);
ЗаписьDOM = Новый ЗаписьDOM;
ЗаписьDOM.Записать(ДокументDOM, ЗаписьXML);
ЗаписьXML.Закрыть();

ЗаписьZIP = Новый ЗаписьZipФайла();
ЗаписьZIP.Открыть(ПутьКФайлу);
ЗаписьZIP.Добавить(ПутьВыгрузки+"\*", РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);		
ЗаписьZIP.Записать();

 

Процедуры одинаково работают, как на клиенте так и на сервере

 
Полный текст процедур

Тестировал: 

1С:Комплексная автоматизация 2 (2.4.9.98)

Платформа 1С:Предприятие 8.3 (8.3.16.1148)

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. &rew 35 26.03.21 11:34 Сейчас в теме
Нравятся такие НИОКРы. Вряд ли в своей деятельности буду использовать, но сама идея работы с Excel файлом через XML-ские плюхи 1Са интересна.
DERL; Fox-trot; cleaner_it; +3 Ответить
15. Yashazz 4444 30.03.21 13:39 Сейчас в теме
(1) Ей сто лет в обед, этой идее. А автор, к сожалению, не упомянул сие, из-за чего у некоторых может сложиться ощущение, что это его, автора, личное открытие.
2. lukyan 46 26.03.21 11:37 Сейчас в теме
Отличная идея, берём на заметку.
4. Serginio 912 26.03.21 12:13 Сейчас в теме
На заметку Вместо Excel.Application можно использовать OpenXml

https://infostart.ru/1c/articles/544232/
5. Petr54-ru 88 26.03.21 12:41 Сейчас в теме
У меня года четыре была задача, я ее не смог допинать из за политики.

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

Обращаться на сервере к MS Excel - оно не успевало за ночь формировать прайсы, надо было это делать без экселя - фомировать текстовй файл в виде xml, а потом его зиповать. Майкрософты кстати не рекомендуют использовать Excel в не интерактивном режиме.

Мануал тут

Кто запилит толковый гуайд по работе с экселем без экселя с красивым оформлением ячеек и прочими экселевскми свистелками тот прославится в веках.
6. LavinVladik 26.03.21 15:01 Сейчас в теме
7. xlmel 26.03.21 15:02 Сейчас в теме
NumberFormat = "ДД.ММ.ГГГГ"
А разве можно русскими символами задавать формат числа в Excel?
8. AnryMc 840 26.03.21 17:35 Сейчас в теме
(7)
А разве можно русскими символами задавать формат числа в Excel?


Английскими можно всегда.
Русскими - если есть локализация, т.е. если открыть в чисто английском - не сработает.

P.S. в разделе «Язык и региональные стандарты» параметр «Языковые стандарты и форматы»
9. xlmel 26.03.21 18:49 Сейчас в теме
(8)
я, честно говоря, не думал, что Майкрософт будет заморачиваться и в СОМ-объекте делать числовые форматы в зависимости от локализации. Во всяком случае, макрос, записанный в в русской версии офиса, добавляет такой формат NumberFormat = "[$-ru-Ru,1]dd.mm.yyyy;@".
10. jimli 1 28.03.21 20:09 Сейчас в теме
Классная идея! А так же гиперссылки можно прописывать?
Изначально невозможно сохранение файлов с гиперссылкой в ячейке...
11. John_d 4363 29.03.21 10:27 Сейчас в теме
(10) да. Пример в ячейке E2 находится текст в виде гиперссылки (но ссылка не кликается)
1. в файле styles.xml добавить элемент xf с атрибутом numFmtId="1" и xfId="1"
2. в файле sheet1.xml добавить элемент hyperlinks который содержит список элементами hyperlink с атрибутом ref="E2"
3. в файле sheet1.xml в ячейке прописать, чтобы атрибут s="" ссылался на новый элемент из п.1
Прикрепленные файлы:
12. John_d 4363 29.03.21 12:01 Сейчас в теме
(11) Перемудрил. 1 и 3 пункт не нужны
14. Yashazz 4444 30.03.21 12:08 Сейчас в теме
Идея баян, конечно, а главное, ненадёжна. Вот автор пишет:
Записываем изменения в файлах и запаковываем все обратно в zip

и... и потом нихрена в экселе не открывается. Точнее, в 20% случаев открывается, а вот в остальных - какое настроение будет у экселя, так и пойдёт. Поэтому я подобную механику, лет 6 назад сделанную, даже публиковать не стал, слишком вероятны грабли.
16. Yashazz 4444 30.03.21 13:43 Сейчас в теме
На самом деле, у меня есть подозрения, что упаковка стандартным zip-упаковщиком 1С делает нечто немножко не то, что ожидает Эксель. То ли уровень сжатия, то ли метод шифрования, то и в самом упаковщике что-то, то ли разрядность... Я в своё время убил неделю, пытаясь угадать, на 2010-м офисе, но увы. Так что идея-то хороша, а вот воплощение взлетает редко.
17. John_d 4363 30.03.21 16:27 Сейчас в теме
(16) все нормально работает. Протестировано и внедрено в продакшен базу.
Нужно делать zip с методом сжатия = без сжатия. Ексель ожидает zip без сжатия.
18. bulldog 31.03.21 08:02 Сейчас в теме
(17) сжатие явно есть, откройте архиватором и посмотрите на размеры файлов
19. Yashazz 4444 31.03.21 08:59 Сейчас в теме
(17) Значит, вам крупно повезло и, может, будет везти до какого-нибудь обновления офиса. Вы ведь даже не указали в статье самое основное - какой версии эксель, какой состав дистрибутива, какая разрядность. Но делать на этой зыбкой почве продакшен и тем более публиковать на ИС я б поостерёгся. У меня полно интересных решений, которые я не выкладываю исключительно потому, что они не везде и не всегда срабатывают, а вы, видимо, считаете это нормой.
21. John_d 4363 08.04.21 17:26 Сейчас в теме
(19) Есть задача и ее надо решить. Ваше решение?
Excel = Новый COMОбъект("Excel.Application");
23. Yashazz 4444 26.04.21 13:19 Сейчас в теме
(21) Решение - это прежде всего надёжность у клиента. Опубликованный тут вариант надёжным решением назвать нельзя. Точка.
20. user1045404 164 01.04.21 12:14 Сейчас в теме
Использую у себя в работе. Проблем нет. Openxml работает хорошо.
22. user722229 23.04.21 14:32 Сейчас в теме
мне кажется с одним стилем вы не совсем правы-вы берете в таблице стилей последний, копируете его и изменяете его формат на нужный. Но ведь копируются и другие элементы стиля-заливка, рамки. А ведь могут быть несколько разных колонок с типом дата, но с разными стилями рамок, заливок и т.д. Этот момент переделал, а все остальное очень полезно оказалось, спасибо!
Оставьте свое сообщение

См. также

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

Загрузка и выгрузка в Excel Инструменты администратора БД Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

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

15.01.2019    42623    itriot11    27    

Чтение книги Exсel по листам

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

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

23.11.2022    1074    ix5s    6    

Создание обработки для выгрузки в Excel, PDF, Docx, TXT (управляемые формы)

Загрузка и выгрузка в Excel Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Россия Россия Бесплатно (free) Бесплатно (free)

В помощь начинающим программистам. Создание простой обработки для выгрузки табличного документа в файлы различных форматов, на примере справочника Контрагенты (релиз платформы 1С:Предприятие 8.3 (8.3.20.1674), самописная конфигурация).

18.07.2022    2445    Pproksima    6    

Выгрузка данных в Excel с добавлением формул (нюансы формирования формул)

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

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

30.05.2022    2229    Zlohobbit    5    

Выгрузка / Загрузка регистра сведений из внешней системы с большим количеством строк

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

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

28.01.2022    2599    Shining_ninja    4    

Генерация кода с помощью формул Excel

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

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

27.10.2020    1528    aleksei_adamov    6    

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

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

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

14.08.2018    23268    m-rv    5    

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

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

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

28.01.2020    4356    pavel_pss    12    

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

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

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

24.10.2019    8767    DmitryKotov    6    

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

Загрузка и выгрузка в Excel Внешние источники данных Платформа 1С v8.3 Платформа 1С v8.3 1С:Управление торговлей 11 1С:Управление торговлей 11 Россия Россия Бесплатно (free) Бесплатно (free)

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

28.08.2019    36043    user1114182    14    

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

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

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

06.04.2015    289326    StepByStep    76    

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

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

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

28.05.2019    12754    Rasdag    6    

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

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

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

23.01.2019    7663    senshkr    3    

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

Универсальные обработки Загрузка и выгрузка в Excel Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

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

11.09.2014    85340    StepByStep    27    

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

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

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

14.01.2019    35377    starik-2005    46    

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

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

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

09.01.2019    18727    Rasdag    18    

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

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

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

01.10.2018    16829    jaroslav.h    0    

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

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

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

30.11.2012    171299    StepByStep    92    

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

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

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

21.09.2018    9669    user1045404    2    

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

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

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

10.09.2018    14485    user1045404    19    

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

Обмен между базами 1C Загрузка и выгрузка в Excel Платформа 1С v8.3 Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление торговлей 10 Россия Россия Бесплатно (free) Бесплатно (free)

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

07.11.2011    193526    SkyLink2012    133    

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

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

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

30.11.2017    48125    alex_bitti    17    

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

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

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

12.11.2017    12191    user634820_zergemoth    2    

Работа с Excel

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

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

23.10.2017    74159    arakelyan    45    

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

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

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

26.10.2011    26388    DrAku1a    53    

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

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

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

21.10.2017    17493    saddy    3    

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

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

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

28.04.2017    20502    dakork    4    

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

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

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

13.10.2016    19448    miavolas    16    

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

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

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

27.09.2016    11642    HAMMER_59    4    

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

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

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

29.11.2015    20139    matveev.andrey.v    17    

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

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

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

23.11.2015    18320    etmarket    14    

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

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

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

09.06.2015    19145    ybatiaev    33    

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

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

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

26.05.2015    12073    mack198109    7    

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

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

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

21.01.2015    16825    scientes    6    

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

Загрузка и выгрузка в Excel Платформа 1С v7.7 Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Конфигурации 1cv7 Конфигурации 1cv7 Бесплатно (free) Бесплатно (free)

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

16.01.2015    107248    shmellevich    40    

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

Универсальные функции Загрузка и выгрузка в Excel Система компоновки данных Система компоновки данных Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

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

07.08.2014    36460    den_valley    15    

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

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

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

16.06.2014    18865    Mos    4    

Сохранение в Excel из WEB-клиента

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

Не всегда корректно отрабатывает сохранение в Excel из 1C при работе в WEB-клиенте. Мне попалась ситуация, когда не отрабатывал код "ТабличныйДокумент.Записать(...)" и выдавалась ошибка "неизвестная ошибка.: object doesn't support this property or method" Ниже предложена процедура сохранения в Excel, корректно работающая во всех типах подключения.

24.04.2014    22980    Tavalik    1