[MXLtoXLS] Сохранение больших таблиц в EXCEL
Разработка - Разработка внешних компонент
Бесплатные
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО
| Наименование | Скачано | Бесплатно |
|---|---|---|
|
MXL -> XLS: давайте сделаем это быстро!
.1185880767 240,77Kb
6172
|
6172 | Скачать бесплатно |
|
файл Внешней Компоненты
.dll 90,50Kb
4625
|
4625 | Скачать бесплатно |
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Сохранение больших таблиц 1C в XLS - проблема известная: 1С задумывается надолго, и если таблицу в 5000 строк еще реально дождаться, то больше - уже ''Изя - все!''. Данная обработка представляет собой ''обертку'' для подмены МЕДЛЕННОГО интерактивного сохранения MXL в XLS БЫСТРЫМ программным сохранением.
Решений по сохранению больших таблиц 1С в XLS разной эффективности существует достаточно. Вашему вниманию предлагается "программная обертка" для еще одного решения (не моего!), которым я с успехом пользуюсь. и вам рекомендую!
Для оценки эффективности решения дам такие цифры:
* плоские таблицы (без излишних наворотов, объединений ячеек и пр.) сохраняются очень быстро. Если взять такую таблицу порядка на 50 000 строк - то, действуя типовым образом ''Файл -Сохранить как - XLS'', окончания процесса вы, скорее всего, и не дождетесь. С применением предложенного решения - сохранение осуществляется порядка за 3 секунды.
* ''неплоские'' таблицы, с тяжелым форматированием, пересекающимися объединениями ячеек - сохраняются не так быстро - подождать все-таки придется - но вполне за приемлемое время. В качестве такой ''тяжелой таблицы'' возьмем отчет по партиям из типовой ТиС с большим количеством включенных группировок и разверткой по документам движения на 22 000 строк (для сравнения попробовал решение, предложенное на http://www.infostart.ru/projects/259/ - минут через сорок задачу снял), текущая обработка позволила сохранить эту ''тяжелую'' таблицу за 9 минут.
Тесты проводились на ПК с Атлон-1800+, 512 RAM/
Обязательно хочу отметить следующее: сохранение в XLS таблиц с тяжелым форматированием я считаю нецелесообразным - что потом в EXCELe с этой таблицей делать? К какому-либо анализу такие таблицы, как правило, непригодны - приходится их переформатировать и затраты на эту работу сопоставимы с программированием нового отчета нужного формата в 1С.
А плоские таблицы, которые удобно в EXCELe ''вертеть'' - сохраняются быстро - что и требовалось.
Быстрое сохранение в XLS обеспечивается решением, реализованным здесь: http://www.kb.mista.ru/article.php?id=219 - внизу страницы приведена ссылка на внешнюю компоненту, которая необходима для работы обработки.
Переписка с разработчиком позволила уточнить - данное решение не работает, если сохранение таблицы 1С осуществляется через стандартный диалог сохранения файла, т.е. сохранение таблицы следует производить программным методом Таблица.Записать(...) - что данная обработка и производит: 1. перехватывает с экрана таблицу с данными, спрашивает у пользователя папку для сохранения файла и производит программную запись файла.
Выложить данную ''программулину'' сподвигло обсуждение на //infostart.ru/forum/read.php?25,873 - не все еще знают про замечательную разработку romix''a
Для использования программулины необходимо наличие ВК FormEX, которую можно взять здесь: http://www.dorex.pro/?projects&formex&download
Порядок установки и работы:
- установить необходимые ВК;
- установить данную обработку;
- повесить на панель инструментов кнопку типа ''Сохранить в XLS''
Все готово. Теперь, когда в 1С открыта таблица - жмем эту кнопку и ОК!
Иллюстрация - см.картинки.
Обработка - бесплатная, полностью функциональная.
Данная обработка эксплуатирует идею доступа к содержимому любой печ.формы извне (без изменения программного кода формирования таблицы), изложенную здесь: http://www.infostart.ru/projects/316/
Вторым файлом выложена ВК MXL_DOCTOR.DLL, необходимая для работы программы. Инструкции - внутри архива.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Разработка внешних компонент Системный администратор Разработчик 1С:Предприятие 7.7 1С:Предприятие 8 Россия Платные (руб)
Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.
7320 руб.
19.04.2023 7312 1 0
Работа с интерфейсом Логистика, склад и ТМЦ Системный администратор Разработчик Пользователь 1С:Предприятие 7.7 1С:Торговля и склад 7.7 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)
Решение для разработчика и конечного пользователя для работы с фотографиями номенклатуры: систематизация, хранение, отображение, а также выгрузка на Яндекс-Диск и FTP (кроме версии лайт). Поддерживаются графические форматы: bmp, jpg, gif, tiff, а также png - не поддерживаемый штатными средствами 1С. Выполнено без использования внешних компонент (кроме функции выгрузки на FTP). Поставляется как в виде пустой конфигурации с набором объектов и модулей для работы с фото, так и в виде обновления к 1С:Торговля и склад 7.7. Выполнено в двух версиях: "полная" и "лайт".
2541 руб.
18.10.2022 8951 4 45
Разработка внешних компонент WEB-интеграция Разработчик 1С:Предприятие 7.7 1C77 Платные (руб)
Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async можно наладить обмен данными между удаленными информационными базами по протоколам HTTP, HTTPS и WebSocket. С помощью компоненты HttpSrv7 используя протокол WebSocket можно создавать и поддерживать работу нескольких чатов. С помощью компоненты HTTP_Async можно асинхронно отправлять HTTP-запросы к сайтам, веб-сервисам (в т.ч. к HTTPSrv7) и обрабатывать ответы по мере их поступления. Компонента GISMT в дополнение к HTTP_Async имеет функцию цифровой подписи в формате Base64 и, таким образом, имеет все возможности для работы с API ГИС МТ "Честный знак" непосредственно из среды 1С 7.7.
6100 руб.
27.05.2022 13628 2 20
Разработка внешних компонент Разработчик 1С:Предприятие 7.7 Платные (руб)
Компонента для выбора значения из больших списков значений.
5084 руб.
02.12.2021 8339 3 19
Банковские операции Загрузка и выгрузка в Excel Бухгалтер Пользователь 1С:Предприятие 7.7 1C77 Россия Бухгалтерский учет Платные (руб)
Решение предоставляет комплексную загрузку банковской выписки из CSV, XLS, TXT файла в 1С 7.7 любой конфигурации. Позволяет создавать документы выбранного вида, например "Строка выписки банка (приход/расход)", или многострочный табличный документ, например Выписка, для каждой операции из загружаемого файла банковской выписки. Загружает реквизиты документа, а также создаёт контрагентов и другие необходимые элементы справочников.
5999 руб.
29.07.2021 28845 23 27
Разработка внешних компонент WEB-интеграция Разработчик 1С:Предприятие 7.7 Абонемент ($m)
Компонента позволяет использовать различные веб-сервисы интернет-ресурсов, например работать с онлайн-кассой через API, предоставленное ее разработчиком. Тестировалась на платформе 1С релиза 7.70.027.
1 стартмани
14.11.2019 24654 138 mdbruyfn 110
Разработка внешних компонент Загрузка и выгрузка в Excel Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Внешняя компонента 1С 7.7. для сохранения таблиц в формате Excel 2007.
1 стартмани
21.03.2019 35391 88 MadDAD 347
Разработка внешних компонент Разработчик 1С:Предприятие 7.7 1C77 Россия Бесплатно (free)
Обновленная версия внешней компоненты для работы с базами данных SQLite и прямыми запросы в ДБФ-базах 1С.
07.11.2016 36286 117 Djelf 43
Долбался тоже. Просто в код функции Сформировать после ИсхТаблица.Показать добавляю, например
/b/ ИсхТаблица.Записать("C:\price.xls", 1); /b/
Есть отчет и постоянно обновляемый прайс. На 5-10 тыс. наименований прайса работает влет..
Формируется долго - минут 5.
Пытаемся сохранить. Упс, попадос! Загруз процессора 100%. Висяк!!!
Да, проблема есть.
Пробуем MXLtoXLS - рулит однако. Молодца Che. На тебе плюсик к рейтингу.
У меня например так:
- прайс порядка 5000 строк
* родное 1С сохранение - 27 сек
* romix сохранение - 1.2 сек
- прайс порядка 9000 строк
* родное 1С сохранение - 12 мин (беспредел)
* romix сохранение - 1.8 сек
Комментарии излишни.
Наши аплодисменты romixу!
Я, конечно, еще разок вечером дома запущу для очистки совести... (мож я там клавой че-нить сделал - он в аут и ушло..?)
А ты на какой тренировался? На "плоской" - возьми ведомость по партиям - поврубай фирма, поставщик,номенклатура, партия, документы движения - сформируй порядка 20000 строк и попробуй. Результат тож интересен...
Какого рожна ей надо?
Винда 2003, 1С 7,7 релиз 25.
2. админные права
3. прочее...??
У меня на парке из 20 машин - все ок.
Работает действительно весьма шустренько.
Спасибо автору.
Довольно сложная таблица исходная в формате 1С - 8,9МБайт. Сохранение около 11 минут. Но это фиг с ним - ведь раньше комп вообще провисал и осохранении этого отчета пришлось забыть. А вот при открытии в экселе выдает "Невозможно добавить еще один формат" (бред какой-то !!!) ну и естественно не открыват сволочь (размер в экселе 2,85 МБайт). вот такие пироги...
Вывод: обработка ОТЛИЧНАЯ. Выламать ей руки так и не удалось, хотя, видит бог, я старался. Более сложного отчета, чем тот которым издевался на обработкой придумать не могу.
А че там она гутарит относительно платной версии, дополнительных возможностях? И зачем над текстом так поиздевался? Дело в том, что пришлось маненько его подправить - у меня ДЛЛки сидят по пути КаталогИБ()+"dll\Formex.dll", а в обработке этот путь неизвестен.
> отключено открытие Excel''я после сохранения файла и возможность задания произвольного имени файла
для тебя не проблема будет.
А платная версия - нормальный код и эти доп.возможности.
Цена - минимальная.
> Невозможно добавить пользовательский числовой формат. Количество пользовательских числовых форматов превышает допустимое количество. Следует удалить один или несколько существующих пользовательских числовых форматов, чтобы добавить новые.
???
Если так - м.б. имеет смысл попробовать в 1С числа выводить безо всякого форматирования (разделители разрядов)...???
Не зря же выдает сообщение - где-то в результате м.б. не так затянуто...???
Не устраивает - не пользуй.
Что не нравится?
>Я фигею... Чувак написал примитивную оболочку под две готовые внешние компоненты (бесплатные, причем) и трясет за нее бабки. А больше всего поражают средства защиты от модификации кода!
Начну с конца. Это в смысле "шока" от средства защиты. Да если бы автор всеръез захотел срубить бабки будь спок - защита была б куда серъезней. А относительно готовых компонентов... Так ведь до него почему-то никому эта идея не шибанула в голову. И между прочим, мы платим строителю за постройку курятника и не обвинчем его в том, что кирпич не он сам сделал.
Подробности - здесь:
Обработка выложена в свободный доступ, подробности здесь:
Ошибка при создании объекта из компоненты D:\игорь\сайт\Кит\mxl_doctor.dll (отсутствует CLSID)
Ошибка при создании объекта из компоненты D:\игорь\сайт\Кит\ExtForms\mxl_doctor.dll (отсутствует CLSID)
Хотя сама компонента присутствует.. Чего я не сделал??
За программу - основаные спасибы автору ВК - romix'у - живет на Мисте и еще распространяет ряд полезных фич...
Так что, Che, теперь твоя обработка неактуальна...
посмотрим, будут ли ее качать после 10.10.06... ;-)
У меня падает 1С при инициализации глобального модуля:
//---------------
Если ЗагрузитьВнешнююКомпоненту("1CRtInf.dll") = 1 Тогда
Норм_Компонента = СоздатьОбъект("AddIn.DBExtension");
КонецЕсли;
Если ЗагрузитьВнешнююКомпоненту("videoAdd.dll") = 1 Тогда
Видео_Компонента = СоздатьОбъект("AddIn.1C:VideoCourse");
КонецЕсли;
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"1cpp.dll")<>1 Тогда
Сообщить("1cpp Не загружена!","!");
КонецЕсли;
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"mxl_doctor.dll")=1 Тогда
mxl_doctor=СоздатьОбъект("AddIn.mxl_doctor");
mxl_doctor.ВылечитьMXL();
КонецЕсли;
Я что-то не так делаю?
P.S. Может свою ветку здесь сделаешь?
Я у себя на работе поставил вот этот вариант:
Он не требует ВК (работает как патч), и удобен при административной установке 1с (когда папка BIN расшарена по сети).
Тут вот какая штука: падает только в том случае, если терминальный пользователь-НЕадмин загружается!
А если это терминальный админ - то всё ОК и если пользователи просто (не терминально) загружаются, то всё тоже пучком! Что за хрень такая?
Убираю строки, где грузится компонента - всё нормально, так что дело не в 1с++ и формекс
так что
1. взять старую версию ВК (у меня есть, пока ее юзаю)
2. по ссылке - выйти на историю и там есть вроде от 13.10 версия - она вроде ок...
3. потормошить автора romix'a
Что знал (откула сам ВК взял) - туда ссылку в ридми привел.
Если в ВК есть ваша заслуга: озвучьтесь... ;-)
ниче не понял.. куда ты там можешь вводить имя файла? у тебя окно (режим) выбора паки или сохранения файла?
у меня все ок. не падает.. погонял по всякому.
Спасибо, Че.
Зы: у АЛьФа действительно в тестовой ВК уже есть контроль на повторную загрузку - он мне ее выслал. АЛьФу тоже большой сэнкс.
;-)
сохранял порядка 40 м.
открыл успешно.
если эксель ругнулся на неправильный формат - что сказал дословно?
Ошибка приложения 1cv7s.exe, версия 7.70.0.21, модуль mxl_doctor.dll, версия 0.0.0.0, адрес 0x00012ee4.
и главный вопрос - что делать с сообщением в екселе "добавить еще один формат невозможно"?
А сохранение в текущую версию офиса - это наверное к Нуралиеву.
Патчинг сохранения работает (сделан) для 25 ядра (на 26 тоже нормально).
По невозможно добавить еще один формат - вынести все форматирование из таблицы в код - это эксель ругается, не хватает ему "ресурсов".
По остальное - уже ответили.
Конверотор Натальн не подсовывать!
Вероятнее всего - конфликт разных версий между 1С++ (скорее всего установленной у вопрошающего) и ВК Formex (используемой в данной разработке).
- проверяйте версии 1С++ и FORMEX - возьмите свежие версии.
- если используете набор плагинов от romix'а - смотрите внимательно, использовать подгрузку ВК MX_Doctor.dll нет необходимости.
..возьмите чистую любую конфигурацию, в которой не используются ВК, возьмитте "чистое" ядро 1С и попробуйте - все должно сработать...
..не получится - стучитесь мне на почту.
У вас - старая версия, с новой версией будет все ОК.
Используйте проверенные варианты!
Мой mxl_doctor.dll взят с адреса
С ним почему-то не работает как надо.
Еще раз спасибо, обработка - СУПЕР, ШИКАРНАЯ, ОЧЕНЬ АКТУАЛЬНА для экономико-аналитической работы с 1С, существенно экономит время, нервы.
в установочный пакет включена "беспроблемная" версия MXL_Doctor и последняя (на 31.07.2007) версия FORMEX - все файлы внутри архива.
чем больше вы будете заниматься боксом - тем mjkmit вокруг вас будет странного и непонятного...
ищите обходные пути - выгружать на несколько листов, частями и т.д. - в принципе проблема известная - пройдитесь поиском..
2. попробовать сначала не небольшой таблице, потом - побольше...
Попытка
ЗагрузитьВнешнююКомпоненту("mxl_doctor.dll");
ёксель=СоздатьОбъект("AddIn.mxl_doctor");
ёксель.ВылечитьMXL();
Исключение
КонецПопытки;
теперь как только делаю файл-сохранить как и выбираю ексель, жму сохранить и 1с вываливает с ошибкой на память :(
релиз 27 1с.
Предпочтительно конечно именно этот вариант, а не вариант с кнопкой, но увы :(
сама 1с-ка то поддерживает строчек побольше чем Excel 2003...и на сколько я понимаю даже 8.1 не умеет выгружать в Excel 2007
Натолкнулся на проблему - сохраненную таблицу, в которой более 256 колонок Excel не открывает. Пишет "Невозможно прочитать файл" и далее "В книге ххх обнаружено содержимое, которое не удалось прочитать", затем предлагает восстановить, но результат никакой (Office 2003).
Попробовал сохранить однострочную таблицу с значением в 257 колонке штатным средством без ВК - результат тот же (релиз 25). Похоже, что это ограничение от 1с? Это можно как-то победить?
(129) 1. Эксперименты по первому пункту:
Сохранение таблицы, содержащей более 256 колонок
---------------------------------------------------------------------------------------------
1с релизы 25 и 27..........................Excel 2003...........Excel 2007
---------------------------------------------------------------------------------------------
Способ 1 (MXL -> XLS)..........................Нет......................Нет
Способ 2 (MXL -> HTML - > XLS)...........Нет......................Да
---------------------------------------------------------------------------------------------
Сохраненный файл смог открыть Excel 2007, сохраненный по способу и с использованием dll отсюда:
"Сохранение данных MXL->XLS через HTML". Без перенастройки разделителей в Excel числа в полученной таблице стали строками..
2. По второму пункту: С использованием Йокселя
результат тот же - в сохраненной таблице в принципе присутствует 256 колонок, а за ними - пустота. Попробовал сохранить таблицу из 1с в родном MXL и открыть в yoksel_stand_alone_release_01_01_02. В Йоксель таблица вошла хорошо, но сохраненная оттуда в формате XLS опять же в Excel показывает только 256 колонок..
2. сохранятьв эксель - через Йоксель
при регистрации - админские права и отключение всяких UAC.
.
по крайней мере уодого из клиентов тоже была такая проблема - но я как-то быстро с этим разобрался, но точного рецепта не дам - не помню просто
Решение с mxl_doctor.dll - не самое лучшее, от него нужно отказаться в сторону йокселя, который тоже не требует регистрации в реестре и работает не в пример быстрее
на йокселе работает сохранение в эксель вот здесь у меня
Наверняка эти файлы будут обрабатываться не в ручную.
Зачем это все шаманство с установкой непонятно каких dll на базу бухгалтерии предприятия?
Ну в самом простом случае можно сохранить выборку просто в текстовый csv файл как
Номер;Название;Цена;
1;Товар1;50;
1;Товар2;100;
Откроется в любом ms excel
.
и да, конечно, за сохранение данных в эксель - если эти данные потом предполагается автообрабатывать - надо убивать на месте. С иксемелем полегче, но вообщем не убивать а 20 лет урановых рудников.
чем-то она лучще MXLdoctor (чем, не помню...)
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 14186
Создание 09.07.06 00:00
Обновление 29.12.09 00:00
Просмотры 67826
Загрузки 10797
Рейтинг
199
Комментарии 152
Код открыт Не указано
Рубрики Загрузка и выгрузка в Excel Работа с интерфейсом Разработка внешних компонент
Кому Для всех
Тип файла Внешняя обработка (ert,epf)
Платформа
Оперативный учет 7.7
,
Бухгалтерский учет 7.7
,
Расчет 7.7
Конфигурация 1C77
Операционная система Windows
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)