1С не позволяет сохранить в Excel отчеты с большим количеством ячеек (например, 100 столбцов на 10 000 строк).
Моя обработка позволяет решить эту проблему.
НЕ использует никаких внешних компонент!!!
Файлы
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Идея заключается в том, что файл отчета сохраняется не целиком, а маленькими порциями, в формате Эксель. Затем через OLE эти маленькие файлы собираются в один большой файл Эксель. Упор делался на быстродействие, и по-моему, я этого достиг.
Решение предоставляет комплексную загрузку банковской выписки из CSV, XLS, TXT файла в 1С 7.7 любой конфигурации. Позволяет создавать документы выбранного вида, например "Строка выписки банка (приход/расход)", или многострочный табличный документ, например Выписка, для каждой операции из загружаемого файла банковской выписки. Загружает реквизиты документа, а также создаёт контрагентов и другие необходимые элементы справочников.
Выполняет выгрузку товаров (всех, только с признаком в прайсе, только из указанной папочки) с гибкой настройкой выгружаемых данных. Формируется файл в формате XLSX подходящий для прямой удаленной загрузки в кассовый аппарат АТОЛ 91Ф/92Ф и им подобных, имеющих управление через Личный кабинет АТОЛ (lk.atol.ru).
Обработки группового дополнения данных о номенклатуре. Ввод веса и объема существующих товаров вручную в форму таблицы значений и затем запись в справочник Номенклатуры и Единиц. Закачка весов и объемов существующих товаров из Эксель в справочник Номенклатуры и Единиц. Загрузка внешних кодов товаров из Эксель в справочник Номенклатуры. Редактирование внешних кодов товаров в форме списка. Дозаполнение реквизитов существующих товаров из Эксель (ключевые поля - штрихкод, наименование, внешний код).
В данной публикации приведены примеры обработок обмена дистрибьютора с поставщиками и покупателями через Эксель. Создание товаров-новинок. Автоматическое формирование Заказа поставщику по продажам. Заполнение бланка заказа поставщику. Загрузка приходной накладной от поставщика. Загрузка любых справочников из Эксель, например товарных сертификатов. Выгрузка прайслиста в бланк заказа (создание бланка заказа). Загрузка заявки покупателя из произвольного файла Эксель. Загрузка заявки покупателя из бланка заказа.. Для работы требуется установленный MS Excel.
Описание технологии загрузки любых адресов из 1С 7.7 с разложением по ФИАС в современные конфигурации 1C 8.3 на примере ERP. Предлагаемый способ просто чудо, он гарантирует результат, он очень простой и качественный! Моя обработка является синтаксическим анализатором, который подставляет в строку грязного адреса выражение "Дом №" и "Корпус", благодаря чему грязные адреса 7.7 сами очень хорошо раскладываются по значимым полям ФИАС - заполняется область, город, улица, дом, корпус.. все раскладывается само с помощью встроенного механизма современных конфигураций 1С 8.3, который написали сами сотрудники фирмы 1С!
Описание практического опыта переноса данных из двух устаревших учетных систем в одну современную с обобщением справочников (например номенклатуры, контрагентов, партнеров) и объединением учетных данных устаревших систем в единую новую УС применяя комбинацию стандартной загрузки из Эксель и КД2. Данная публикация является примером переноса данных из сильно устаревших и сильно переписанных конфигураций 1С:Предприятия 7.7 и 8 в современную 1С 8.3 своими силами при условии невозможности или нежелания пользоваться обновлением релизов и типовой функциональностью универсального обмена данными типовых мастеров переноса данных. Отличительной особенностью публикации является устранение зависимости от версий релиза конфигураций, отказ от обновлений устаревших конфигураций.
Выкиньте эту бяку и пользуйте нормальный продукт, который позволяет делать тоже самое не заморачиваясь: всего 5 строк кода и все работает как надо и не надо ни о чем беспокоиться, для тех, кто не имеет возможности программировать здесь лежит готовое решение (в нем же даны ссылки на человека, сделавшего возможным такую чудную вещь:
http://www.infostart.ru/projects/index.php?id=323&ref=174
И, чтоб не быть голословным: отзыв юзера:
"Прикраснейшая програ! Прайс который сам создавался 7 минут на 20280 строк выгрузился за 12,7 секунды!!!!! Обалдеть!!! Стандартным способом Сохранить как.. на это уходило часов 10-11!!! Класс! Тест проходил на машине - 2 x Intel Xeon 3,2 Ггц DDR2 4 Гига....
Разработку victuan имеет смысл юзать там, где политикой запрещено использование ВК.
Ну что ж. Приятно что есть реакция на мои обработки. Эта обработку я перекинул с 1c.proclub.ru. Сделал я еще до того как была написана упомянутая Che Burashka ВК. В принципе, видимо, моя обработка отыграла уже свою роль, и, если не будет возражений, я ее уберу.
Приятно, что есть такие обработки. Эта обработка подвигла меня на написание новых хороших отчетов в 1С. Хорошо то, что не нужно никаких доп. компонент вталкивать, перенести можно в любой момент и все. В отчете есть она и хорошо, заморочно всегда тащить гору библиотек, показывая какойе ты у..... А то, что говорят про эту вещь разные критиканы так понятно - завидуют.
А может кто решал похожие задачи:
- сохранения из 1С в excel в одной ячейке более 256 символов (символы теряются пр сохранении, хотя в самом excel такого ограничения нет), разбивать текст на части не решает вопрос
- не сохраняется вертикальный текст, хотя в обеих программах возможность вывода такого текста есть.
Спасибо за информацию
У меня куча отчетов со строками под 50 - 60 тыс. Естественно записать все это в Excel - один гемморой (лично я это через 8-ку делаю, благо стоит вместе с 7-кой). Попробовал воспользоваться данной разработкой и сразу же столкнулся с глюком. Отчет в 65000 строк , 14 колонок. Сравнил одну из колонок с оригиналом и выявил 20 различий, в различных строках:
Получилось Надо
272630697. 131540.75
272630697. 131540.75
272796979. 214681.75
272682809. 157596.75
273193696.00 603585.00
272682776. 157580.25
272956554.00 326794.50
272675768. 154076.25
272748970. 190677.25
272809415. 220899.75
13157.24 1315725.00
13157.24 1315725.00
273447810.00 1175050.00
31737.28 3173730.00
31737.28 3173730.00
14674.84 1467485.00
2735151.41 1444375.00
14674.84 1467485.00
273340841.00 897875.00
273723054.00 2454900.00
1С не всегда правильно сохраняет данные в Эксель.
Проверь выравнивание тескта в этих строках, оно должно быть по правому краю и текст должен быть без лишних знаков препинания. В остальных случаях, не гарантирую верную конвертацию.
После исправлений http://yoksel.net.ru/Hotfixes все нормализовалось.
Таблицу в 65500 строк и 14 столбцов сохраняет за 32 сек.
Жаль что нет возможности сохранять более 65536 строк (ограничение Excel) - можно было бы разбивать, скажем, на отдельные листы.
Предлагаю немного дописать код обработки Быстрое сохранение mxl в xls.ert.
В результате мы получаем название файла из названия отчета. В 99% случаев - срабатывает. Помоему удобно.
Если ВсеНормально = 1 Тогда
Сервис = СоздатьОбъект ("Сервис");
Если Сервис.АктивныйКонтекст (гТаблица) = 0 Тогда
Сообщить ("Нет активного табличного документа");
ВсеНормально = 0;
Иначе
Если ТипЗначенияСтр (гТаблица) <> "Таблица" Тогда
Сообщить ("Нет активного табличного документа");
ВсеНормально = 0;
Иначе
//>>> мои строки
Для НомСтроки=1 По 7 Цикл
НомКолонки = 1;
Если ПустаяСтрока(гТаблица.Область(НомСтроки,НомКолонки).Текст)=1 Тогда
НомКолонки = 2;
КонецЕсли;
РазмерШрифта = гТаблица.Область(НомСтроки,НомКолонки).РазмерШрифта();
Если РазмерШрифта>9 Тогда
ВыбИмяФайла = ФС.ТекКаталог()+"\"+СокрЛП(гТаблица.Область(НомСтроки,НомКолонки).Текст)+".xls";
Прервать;
КонецЕсли;
КонецЦикла;
//<<< мои строки
КонецЕсли;
КонецЕсли;
КонецЕсли;
17), 18),19),20) Если всё вместе собрать, то получается лучше всего не использовать ничего, кроме чистого 1с - тогда нужно сохранять в виде текста с разделителями......
Спасибо за обработку !
Была задачка - выгружать в Excel отчеты размером более 600 000 строк (КУДИР для предпринимателя). После небольшой доработки первоисточника (не более 5 строк) -
- нам теперь никакие отчеты НЕ СТРАШНЫ !!!
Спасибо, очень пригодилась обработка, справочник материалов огромный, смотреть по счетам трудно на экране, выгрузить не могли в ексель, теперь все хорошо!
Огромное спасибо автору. Есть один отчёт по задолжности по кварплате идёт на 20 тыщ строк, раньше сохраняли только в ХТМЛ, а теперь как люди может и в Экселе сохранять. =)
Нужно было сохранить рабочий план счетов в ексель, пытался копировать по 5000 строк, вроде получилось, но было долго и муторно. Попробую сейчас с помощью этой обработки.
Предлагаю немного дописать код обработки Быстрое сохранение mxl в xls.ert.
В результате мы получаем название файла из названия отчета. В 99% случаев - срабатывает. Помоему удобно.
Если ВсеНормально = 1 Тогда
Сервис = СоздатьОбъект ("Сервис");
Если Сервис.АктивныйКонтекст (гТаблица) = 0 Тогда
Сообщить ("Нет активного табличного документа");
ВсеНормально = 0;
Иначе
Если ТипЗначенияСтр (гТаблица) <> "Таблица" Тогда
Сообщить ("Нет активного табличного документа");
ВсеНормально = 0;
Иначе
//>>> мои строки
Для НомСтроки=1 По 7 Цикл
НомКолонки = 1;
Если ПустаяСтрока(гТаблица.Область(НомСтроки,НомКолонки).Текст)=1 Тогда
НомКолонки = 2;
КонецЕсли;
РазмерШрифта = гТаблица.Область(НомСтроки,НомКолонки).РазмерШрифта();
Если РазмерШрифта>9 Тогда
ВыбИмяФайла = ФС.ТекКаталог()+"\"+СокрЛП(гТаблица.Область(НомСтроки,НомКолонки).Текст)+".xls";
Прервать;
КонецЕсли;
КонецЦикла;
//<<< мои строки
КонецЕсли;
КонецЕсли;
КонецЕсли;
Нормальное универсальное решение.... да имеет свои ограничения и при очень огромных размерах отчетов все равно подтормаживает (например карточка счета за период 5 лет), однако для сохраненения за периоды квартал и месяцы работает отлично.!!!