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

07.08.14

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

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

1. Сначала сохраняем табличное поле как файл формата "Документ HTML4" (//infostart.ru/public/77128/).
2. Полученный файл программно открываем и пересохраняем в нужном формате Excel.

Для реализации - в реквизиты формы отчета добавляем "ПутьКФайлу" - тип строка, к которому добавим функцию "ПутьКФайлуНачалоВыбора"
&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	РежимДиалога = РежимДиалогаВыбораФайла.Сохранение;
	ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалога);
	ДиалогВыбораФайла.МножественныйВыбор = Ложь;
	ДиалогВыбораФайла.Заголовок = "Укажите путь выгрузки файла...";
	ДиалогВыбораФайла.ПолноеИмяФайла = ПутьКФайлу;
	ДиалогВыбораФайла.Фильтр = "Excel(2007)(*.xlsx)|*.xlsx";
	Если ДиалогВыбораФайла.Выбрать() Тогда
		ПутьКФайлу = ДиалогВыбораФайла.ПолноеИмяФайла;
	КонецЕсли;
	
КонецПроцедуры
Также на форму выводим кнопку "ФормаКнопкаСохранитьВЭксель", с командой "СохранитьВЭксель"
&НаКлиенте
Процедура СохранитьВЭксель(Команда)
	
ИмяФайлаHTML4 = СтрЗаменить(ПутьКФайлу,"xlsx","htm");
    Результат.Записать(ИмяФайлаHTML4,ТипФайлаТабличногоДокумента.HTML4);
	
	Попытка			
		ЭксельОбъект = Новый COMОбъект("Excel.Application");
		ЭксельОбъект.Application.Visible = Ложь;
		Книга = ЭксельОбъект.Application.Workbooks.Open(ИмяФайлаHTML4);			
		Книга.Windows(1).Visible = Истина;	
		Книга.Application.DisplayAlerts = False;
		Книга.SaveAs(ПутьКФайлу,51);			
		Книга.Close();	
		ЭксельОбъект.Application.Quit();
	Исключение
		Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;	
	
КонецПроцедуры
Дополнительно.
Для того чтобы не было потери информации (особенно в части чисел), рекомендуется использовать в 1С, при выводе числовых показателей, следующий формат сумм:
ЧЦ=15; ЧДЦ=2; ЧРД=,; ЧГ=0

P.S. Исправлена строчка кода (приводила к невозможности в некоторых случаях увидеть полученный результат), новая строка выглядит так: 
Книга.Windows(1).Visible = Истина;



                            

СКД Excel большой отчет сохранение

См. также

SALE! 10%

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

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

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

10560 9504 руб.

29.10.2014    210158    620    524    

439

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в 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 Платные (руб)

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

13200 руб.

20.11.2015    150710    367    375    

501

Маркетплейсный загрузчик для 12-ти маркетплейсов в "БП 3", "УТ 11", "КА 2", ERP, УНФ

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

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

1800 руб.

12.08.2021    31893    226    63    

117

SALE! 20%

Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы

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

Универсальная обработка для загрузки документов из Excel в 1С. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

5000 4000 руб.

09.11.2016    214910    925    886    

939

Загрузка данных отчета о реализации товаров из Excel файла СберМегаМаркет

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

Загрузка данных отчета о реализации товаров из сервиса СберМегаМаркет для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11 и Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".

4800 руб.

07.06.2022    15073    79    0    

60

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Управляемые формы 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С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    101370    296    173    

312
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. chmv 07.08.14 17:25 Сейчас в теме
А я тоже в свое время пришла к такому же решению
2. chmv 07.08.14 17:25 Сейчас в теме
Я по-моему только через mlx
3. rus128 2 13.08.14 12:09 Сейчас в теме
Супер! Была недавно такая проблема - пришлось отчет формировать поквартально вместо ежегодного...
Знал бы тогда о такой методике - было бы проще.
4. bulpi 215 13.08.14 13:32 Сейчас в теме
"типовая 1с ругается при превышении их числа в 65535"
Не понял. Это ограничение не 1с , а листа Excel. И как же тебе удалось это обойти ? Сохраняй хоть откуда, но на лист больше не влезет.
5. mikhailovaew 127 13.08.14 13:24 Сейчас в теме
(4) bulpi, это для "старого" экселя, с расширением xls.
В 2007 экселе (расширение xlsx) на листе допускается 1 048 576 строк и 16 384 столбца.
6. den_valley 235 13.08.14 11:29 Сейчас в теме
(4) bulpi,
У Экселя такого ограничения давно нет, а вот 1С все время ругается на число строк при попытке сохранить в любой формат Экселя (хоть 97 хоть 2007).
dunaeva1986; +1 Ответить
7. ediks 335 13.08.14 18:20 Сейчас в теме
(6) Позвольте не согласиться, коллега. Только что сохранил табличный документ в Excel 2007.
Платформа 8.2.14.540
Прикрепленные файлы:
8. den_valley 235 14.08.14 17:14 Сейчас в теме
(7) ediks,
Возможно где-то типовое сохранение и работает. Все варианты не тестировал.
У меня на отчете в 15 колонок и 300000 строк при выполнении команды "Сохранить как..." вылетает по нехватке памяти.

При обработке команды "Результат.Записать(ПутьКФайлу,ТипФайлаТабличногоДокумента.XLSX)" ругается на число строк (причем поминает Excel 97 при этом). Платформа (8.3.4.465)

И только конвертация через HTML4 отрабатывает нормально. А поскольку сам я в итоге потратил на поиск решения пару дней и энное количество танцев с бубном, решил другим облегчить жизнь.
9. FractonKireyev 18.08.14 10:51 Сейчас в теме
Это решение проблемы обязательно возьму на заметку. Идея заслуживает внимания.
В описанной методике я не понял одного - что значит строка кода:
Книга.SaveAs(ПутьКФайлу,51);

Что значит число 51? Подскажите, кто знает.
10. den_valley 235 18.08.14 08:41 Сейчас в теме
(9) FractonKireyev,
http://www.rondebruin.nl/mac/mac020.htm
51 = xlOpenXMLWorkbook (without macro's in 2007-2013, xlsx)
11. Just 2 19.08.14 22:57 Сейчас в теме
Хотел уточнить, а конфа "1С:Предприятие - Работа с файлами", тоже не справляется? Всегда ей пользовался для сохранения в эксель файлов *.mxl. Файлы по 100 000 строк нормально сохранялись, больше не пробовал. Помню какой геморой был в 77, когда это конфа вышла, думал вопрос с сохранением решен, кто пробовал отпишитесь об ограничениях, если они там есть.
12. den_valley 235 20.08.14 01:44 Сейчас в теме
(11) Just,
Да нормально она сохраняет, но хотелось напрямую из отчета. Плюс - проблема с памятью при больших отчетах.
Я например вчера специально стал проверять, и как нарочно, ни одной ошибки со стандартным сохранением из 1с (безо всяких конвертаций). А когда надо было сделать тоже самое срочно - работать не хотела.
В общем - чем больше под рукой будет разных вариантов, тем лучше.:)
13. ZhokhovM 724 28.10.14 14:19 Сейчас в теме
жаль что не выгружает отчет с картинками, выдает ошибку в самой картинке:
не удается отобразить связанный. возможно., этот файл был перемещен, переименован или удален. убедитесь, что ссылка указывает на правильный файл и верное размещение.
14. pt_olga 61 11.04.19 18:01 Сейчас в теме
старая статья, а для меня стала откровением :) спасибо автору большое!
15. silver_a 18.06.20 08:26 Сейчас в теме
при таком сохранении будет сохраняться группировка отчёта? (чтоб плюсики слева были, по которым можно "развернуть" группировку) ? Сохранял сперва как html, потом экселем открывал - плоская таблица выходит.
Оставьте свое сообщение