[MXL to XLS]

17.03.08

Разработка - Разработка внешних компонент

Решаем две существующие проблемы 1С:Предприятия:

    * медленное сохранение табличных документов в формате Microsoft Excel.
    * некачественное сохранение табличных документов в формате Microsoft Excel.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?]
-
.1205122064 1,01Mb
2883
2883
0 SM
Скачать
Проблема 1: Медленное сохранение.
=================================
Суть состоит в том, что время, которое нужно 1С для сохранения, резко возрастает при увеличении объема сохраняемого документа. Если небольшие документы объемом до 1-2 тыс. строк 1С сохраняет еще за приемлемое время, то документы объемом выше 10 тыс. строк могут сохраняться несколько часов (или даже суток).

Проблема 2: Некачественное сохранение.
======================================
Штатный конвертер 1С не отличается высоким качеством. Например, конвертер не поддерживает текст в ячейках длиной более 255 символов: при сохранении более длинный текст будет усекаться. Также не поддерживаются ячейки с поворотом текста, часто ячейки с многострочным текстом имеют высоту в одну строку, часто не переносятся многострочные объединения ячеек и другое. Подробнее можно посмотреть на этой странице: http://yoksel.net.ru/ProblemyStandartnogoMxl2Xls

Данная обработка решает эти проблемы.

Скоростные характеристики.
==========================
Отчет "Анализ продаж", 18 тыс. строк: 4,46 сек.
Отчет "Анализ продаж", 78 тыс. строк: 17,23 сек.
Отчет "Анализ продаж", 184 тыс. строк: 24,44 сек.

(Для таблиц объемом больше 65536 строк сохраняется только 65536 строк - поэтому разница между временем 78 тыс. и 184 тыс. строк невелика)

Тестовая таблица 10 тыс. строк x 256 столбцов (2,5 млн. ячеек): 57,32 сек.

Преимущества программы по сравнению с другими решениями
=======================================================

Для ускорения сохранения часто используется решение, известное под названием "патч Ромикса". Решение связано с модификацией кода 1С (патчем).
Отсюда вытекают основные проблемы решения:
- Проблемы при смене релиза 1С - при изменении релиза патч может перестать работать или вообще приведет к нестабильной работе 1С (аварийные завершения и возможность потери данных).

- Потенциальная ненадежность: т.к. исходных кодов 1С в открытом доступе нет, то и нет стопроцентной уверенности в корректности произведенной модификации.

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

Другая проблема патча - "все равно медленно". В случае использования табличных документов со сложным форматирование сохранение все равно производится достаточно медленно. Компонента Йоксель сохраняет таблицы со сложным форматирование быстро.

Для решения проблем некачественного сохранения табличных документов в Excel часто применяют различные обработки, которые работает с Excel по технологии OLE-Automation и либо выполняют конвертирование документов полностью самостоятельно, либо сначала конвертируют документ стандартным конвертером, а потом исправляют допущенные конвертером ошибки.

Основной недостаток подобного решения: медленно. Обработки написаны на встроенном языке 1С:Предприятия и, значит, работают медленно, т.к. программный код интерпретируется. Далее, тормоза вносит использование OLE-Automation - данная технология никогда не предназначалась для обмена большими объемами данных.

Другой недостаток: необходимость наличия Excel. В связи с ужесточением ситуации с нелицензионным ПО, предприятия часто отказываются от использования Microsoft Office и переходят на свободное программное обеспечение (OpenOffice). Поэтому Excel может и отсутствовать. Также бывают ситуации, когда наличие Excel на компьютере нежелательно - например, в случае терминального сервера.

Компонента Йоксель не требует наличия Excel, поэтому может использоваться там, где Excel отсутствует. Также Йоксель написан на компилируемом языке - поэтому работает быстро.


Установка
=========
Для установки нужно следующее:

1) Если у вас еще не установлена FormEx или 1С++ версии 2.0, скопируйте компоненту FormEx (файл FormEx.dll) в каталог с программными файлами 1С (например, в каталог C:/Program Files/1Cv77/BIN).

2) Если у вас еще не установлена компонента Йоксель, скопируйте файл "SpreadSheet.dll" в каталог с программными файлами 1С (например, в каталог C:/Program Files/1Cv77/BIN).

(если нет возможности разместить внешние компоненты в каталоге программных файлов, то можно поместить компоненты в каталог информационной базы)

3) Скопируйте файл "Быстрое сохранение mxl в xls.ert" в подкаталог "ExtForms" каталога информационной базы.

4) В "Конфигураторе" добавьте на какую-нибудь панель инструментов кнопку следующего вида:
- Объект: "Задача".
- Команда: "Задача.Выполнить".
- Подсказка и короткая подсказка: "Сохранение таблицы в Excel"
- Параметры - Формула: "ОткрытьФорму ("Отчет",,КаталогИБ () + "ExtForms/Быстрое сохранение mxl в xls.ert")"

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

См. также

Разработка внешних компонент WEB-интеграция Программист Платформа 1С v7.7 Конфигурации 1cv7 Платные (руб)

Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и даже, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async или синхронный клиент HTTP для 1С 7.7 (публикация № 1152364) можно наладить обмен данными между удаленными информационными базами. С помощью компоненты HTTP_Async можно сначала послать несколько запросов к сайтам, веб-сервисам (в т.ч. к HttpSrv7), а затем обрабатывать данные по мере их поступления. Компонента GISMT в дополнение к HTTP_Async имеет функцию цифровой подписи и, таким образом, имеет все возможности для работы с API ГИС МТ "Честный знак" непосредственно из среды 1С 7.7.

2000 руб.

27.05.2022    8264    21    17    

32

Разработка внешних компонент Системный администратор Программист Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Россия Платные (руб)

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.

7200 руб.

19.04.2023    4989    1    0    

3

Работа с интерфейсом Логистика, склад и ТМЦ Системный администратор Программист Пользователь Платформа 1С v7.7 1С:Торговля и склад 7.7 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Решение для разработчика и конечного пользователя для работы с фотографиями номенклатуры: систематизация, хранение, отображение, а также выгрузка на Яндекс-Диск и FTP (кроме версии лайт). Поддерживаются графические форматы: bmp, jpg, gif, tiff, а также png - не поддерживаемый штатными средствами 1С. Выполнено без использования внешних компонент (кроме функции выгрузки на FTP). Поставляется как в виде пустой конфигурации с набором объектов и модулей для работы с фото, так и в виде обновления к 1С:Торговля и склад 7.7. Выполнено в двух версиях: "полная" и "лайт".

5000 руб.

18.10.2022    5531    1    45    

4

Разработка внешних компонент Программист Платформа 1С v7.7 Платные (руб)

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

1200 руб.

02.12.2021    6001    2    19    

4

Банковские операции Загрузка и выгрузка в Excel Бухгалтер Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет Платные (руб)

Решение предоставляет комплексную загрузку банковской выписки из CSV, XLS, TXT файла в 1С 7.7 любой конфигурации. Позволяет создавать документы выбранного вида, например "Строка выписки банка (приход/расход)", или многострочный табличный документ, например Выписка, для каждой операции из загружаемого файла банковской выписки. Загружает реквизиты документа, а также создаёт контрагентов и другие необходимые элементы справочников.

3588 руб.

29.07.2021    21435    13    22    

14

Разработка внешних компонент Программист Пользователь Платформа 1С v7.7 Платформа 1С v8.3 Транспорт, автопарки, такси Россия Платные (руб)

Программа "Компонента приёма веса для 1С, версия 3.0" позволяет принимать и заносить вес с весов непосредственно в программу "1С" - то есть, прием веса осуществляется целиком и полностью из программы "1С".

26400 руб.

09.04.2019    16255    2    8    

5

Загрузка и выгрузка в Excel ККМ Системный администратор Платформа 1С v7.7 1С:Торговля и склад 7.7 Управленческий учет Платные (руб)

Выгрузка из 1C версии 7.7 ТиС (Торговля и Склад) в EXCEL для дальнейшей загрузки в кассы ЭВОТОР, с помощью обработки обмен через EXCEL ( которая выбирается на сайте ЭВОТОР в магазине приложений). Полная версия без ограничений. Демоверсия позволяет выгружать только 5 строк номенклатуры(группы товаров). Демоверсия обладает такими же характеристиками что и полная за исключением того, что выгружает 5 строк неважно чего группы или номенклатуры (текст обработки зашифрован). Если у вас одна позиция номенклатуры или 5 позиций без групп, тогда Демоверсия для Вас. Если вдруг выскакивает ошибка по запуску обработки попробуйте запустить 1с с правами администратора

3000 руб.

19.06.2017    50141    9    26    

14

Разработка внешних компонент Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обновленная версия внешней компоненты для работы с базами данных SQLite и прямыми запросы в ДБФ-базах 1С.

1 стартмани

07.11.2016    33730    37    Djelf    43    

37
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. mikukrnet 182 12.03.08 12:27 Сейчас в теме
Вроде работает!

Но 2 вопроса
1) есть ли проверка на доступность таблицы отчета (Таб.Защита(1))?
2) не работает, когда ПФ используется с формой самого отчета
samamoiloff; Ужас бухгалтера; +2 Ответить
2. Ужас бухгалтера 221 12.03.08 12:32 Сейчас в теме
(1)
1. Проверки нет. Исправлю
2. Понятно, исправлю.
samamoiloff; +1 Ответить
3. Ужас бухгалтера 221 17.03.08 09:45 Сейчас в теме
Исправлено:
1) Если таблица защищена, то сохранение в XLS отключается.
2) Добавлено сохранение таблицы, присоединенной к форме отчета. При этом контроль защиты таблицы производится аналогично пункту 1.
samamoiloff; +1 Ответить
4. Ужас бухгалтера 221 17.03.08 20:35 Сейчас в теме
Скачавшим обработку до 17 марта 2008 г. 20:37 по московскому времени рекомендуется загрузить обработку повторно или взять обновленную компоненту Йоксель со страницы хотфиксов: http://yoksel.net.ru/Hotfixes

Исправлена серьезная ошибка: некоторые числовые значения могли сохраняться некорректно. Например, число “131540.75” сохранялось как “272630697.”.
samamoiloff; +1 Ответить
5. viddik 241 17.04.08 12:52 Сейчас в теме
Баг (фича): текст, являющийся формулой Excel при конвертировании не опознается как формула. По крайней мере OpenOffice-ом. При конвертации через OLE используется свойство Ячейка.FormulaR1C1, если текст начинается с "=", и все работает. Хочу, чтоб в Йокселе тоже работало!!! :)
6. viddik 241 17.04.08 13:06 Сейчас в теме
Хотя это все-таки проблема скорее OpenOffice. Просто конвертация через мелкомягкое OLE автоматически приводит текст с ссылками в стиле R1C1 к виду A1 при необходимости, а у опена с этим проблемы.... :(
7. tikhon 10.06.08 11:21 Сейчас в теме
Скажите подалуйста, а работает ли эта программка с 1С.8?

Спасибо.
8. Ужас бухгалтера 221 10.06.08 21:12 Сейчас в теме
(7) Здесь: http://yoksel.net.ru/Hotfixes
можно скачать Йоксель в виде самостоятельного прилоежния (exe), которое умеет читать файлы Excel и сохранять листы из них в виде файлов mxl.
9. angro 09.08.08 14:31 Сейчас в теме
10. Robert Ingil 19.02.09 15:55 Сейчас в теме
Очуметь!
Реально помогла вещица.
11. Andzhej 22.03.09 02:27 Сейчас в теме
12. Andzhej 22.03.09 02:55 Сейчас в теме
Глючит. Говорит не обнаружено таблицы, хотя она есть - сформирована отчетом.
13. Andzhej 22.03.09 03:07 Сейчас в теме
а ее регить не нужно regsvr32?
14. Ужас бухгалтера 221 17.06.09 08:04 Сейчас в теме
Всем заинтересовавшимся данной обработкой советую также обратить внимание на эту: http://infostart.ru/projects/3387/
Она, в принципе, тоже может использоваться для преобразования MXL->XLS, однако дополнительно еще может добавить группы строк и колонок к отчету.

Также не забывайте обновлять SpreadSheet.dll. Обновленные версии выкладываются здесь: http://yoksel.net.ru/Hotfixes
misha3010; +1 Ответить
15. triGGer 30.10.09 12:58 Сейчас в теме
16. protas 30.11.09 20:27 Сейчас в теме
Да, уж! Валялась у меня одна dll`ка, все руки не доходили полазить по интернету, разобраться как ее подключить. Хотя частенько появлялась потребность именно в таком функционале. А тут - нате вам, все готовенькое.
Спасибо !!!
17. BlueWind 02.07.10 22:46 Сейчас в теме
Натолкнулся на проблему - сохраненную как штатными средствами 1с, так и с использованием Йокселя, таблицу, в которой более 256 колонок Excel не открывает. Пишет "Невозможно прочитать файл" и далее "В книге ххх обнаружено содержимое, которое не удалось прочитать", затем предлагает восстановить, но результат никакой (Office 2003, 2007) - в сохраненной таблице присутствует 256 колонок, а за ними - пустота.
18. Ужас бухгалтера 221 05.07.10 00:11 Сейчас в теме
(17) Йоксель сохраняет в формате Excel 97. Там поддерживается только 256 колонок. Чтобы Excel не ругался на файлы, созданные Йокселем из документов, содержащих больше 256 колонок, нужно взять более новую версию. В новой версии проверяется количество колонок и сохраняется только 256.
19. BlueWind 05.07.10 01:42 Сейчас в теме
(18) Ясно. Спасибо.

А может, есть возможность добавить в Йоксель поддержку Excel 2007 (в части большего количества колонок)?
20. Ужас бухгалтера 221 05.07.10 18:09 Сейчас в теме
(19) Возможность-то есть, но временнЫх ресурсов нет. :) Когда-нибудь, может быть.
Пока можно сохранять в mxl и с ним посылать Yoksel stand-alone, например.
21. BlueWind 06.07.10 02:38 Сейчас в теме
(20) Такой вариант я пробовал (Yoksel stand-alone 1.1.2.0) - Excel 2007 так же сообщает "В книге ххх обнаружено содержимое, которое не удалось прочитать"...

Пока что проходит единственный вариант - это сохранение в HTML и переименование файла в xls. Excel 2007 файл принимает, но нужно перенастраивать разделители, что добавляет в схему еще один минус (первый - собственно Excel 2007, но без него уж никак в этой ситуации не обойтись)...

Будем как-то извращаться.. и ждать появления временнЫх ресурсов..)
22. Ужас бухгалтера 221 06.07.10 10:32 Сейчас в теме
(21) Это старая версия. Новая здесь: http://yoksel.net.ru/Hotfixes

Я имел в виду не поддержку количества столбцов. А просто отсылку контрагенту обычного mxl-файла вместе с Yoksel.exe в качестве вьюера. У mxl уже нет таких ограничений на количество колонок.
23. wad_str 17.11.11 06:56 Сейчас в теме
Работает! Только проблемка с сохранением на сетевые ресурсы, ( база на сервере, а на раб станцию не сохраняет)
24. VladimirV 17.11.11 07:51 Сейчас в теме
очень помогла эта обработка при выгрузки в excel отчетов с програмно объединенными ячеками. Спасибо
25. cargobird 307 07.06.12 21:29 Сейчас в теме
Сделал на её основе отправку по почте печатной формы документа в экселевском формате, спасибо!
26. e-lexa 164 10.08.12 07:04 Сейчас в теме
Работает отлично, но если сохранять на сетевые ресурсы время сохранения увеличивается с нескольких секунд до нескольких минут.
27. Solikamsk 2 02.04.18 10:14 Сейчас в теме
Долгое время пользовались этой обработкой, пока не появились диаграммы - она с диаграммами не работает.. Я попробовал 1cv8fv.exe от 1С, но там сетку не выводит, плюс другие ошибки формата.. Какие-то есть обходные варианты? Сохранить внешними компонентами график в файл, вставить как картинку?...
28. CheBurator 3126 02.04.18 12:50 Сейчас в теме
Посмотри обработку Маляева по расширению возможности графики
Оставьте свое сообщение