Поддержка выгрузки в Excel 2007 для 1С 7.7 в одну строку

08.07.24

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

Внешняя компонента 1С 7.7. для сохранения таблиц в формате Excel 2007.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Поддержка выгрузки в Excel 2007 для 1С 7.7 в одну строку:
.zip 11,00Mb ver:0.10
21
21 Скачать (1 SM) Купить за 1 850 руб.

Внешняя компонента, умеет сохранять таблицы в формате xlsx, html и PDF.

При загрузке перехватывает штатное интерактивное и программное сохранение в Excel, HTML и TXT. В диалоге выбора файла заменяет вариант выбора ".xls" на ".xlsx" и ".txt" на "PDF"

Компонента подключается так:

ПодключитьВнешнююКомпоненту("AddIn.Moxel.Converter");

Для добавления поддержки формата выгрузки в Excel 2007 и PDF этого достаточно.

Поддерживается сохранение рисунков, надписей и внедренных OLE объектов. 

Белый фон картинок станет прозрачным при сохранении (как на первом скриншоте), если в свойствах узора картинки установить цвет "Авто".

Для выгрузки в html и PDF можно создать объект конвертера :

Таб = СоздатьОбъект("Таблица");
Таб.Вывести();

Конвертер = СоздатьОбъект("AddIn.Moxel.Converter");

Конвертер.Присоединить(Таб);

ИмяФайла = Конвертер.Записать("Тест.html", 2); //Запись в html

ИмяФайла = Конвертер.Записать("Тест.pdf", 3); //Запись в pdf

 

У объекта имеется метод для включения/отключения перехвата штатного сохранения:

Конвертер = СоздатьОбъект("AddIn.Moxel.Converter");

Если Конвертер.ПерехватитьЗапись(1) = 1 Тогда
	Сообщить("Перехват записи включен");
Иначе
	Сообщить("Перехват записи не включен");
КонецЕсли;

Если Конвертер.ПерехватитьЗапись(0) = 1 Тогда
	Сообщить("Перехват записи выключен");
Иначе
	Сообщить("Перехват записи не выключен");
КонецЕсли;

В архиве находится обработка с примерами.

 

Для работы требуется .Net 4.6.2

Для установки нужно распаковать архив на локальный диск, и запустить register.cmd с правами администратора. Два раза нажать Enter.

 

upd 08.04.2019 Новая версия

Добавлено чтение настроек страницы.

Теперь при сохранении в xlsx и PDF к документу применяются настройки страницы, установленные через "Файл-Параметры страницы" и Таблица.ПараметрыСтраницы().

Применяются: 

Размер бумаги

поля слева/справа/сверху/снизу

Ориентация страницы

Для xlsx применяется масштаб и "вписать в страницу по ширине".

Добавлен перехват штатного сохранения в HTML 

Теперь штатное сохранение таблицы в HTML перенаправляется в компоненту аналогично xlsx

 

upd 16.04.2019 Новая версия

Добавлены разрывы страниц при сохранении в Excel.

Для экономии памяти приложения 1С конвертация таблиц, занимающих больше 2 Мб вынесена во внешний процесс.

 

upd 24.05.2020 Новая версия

Если в ячейке есть символ переноса строки, то при экспорте в Excel устанавливается галка "Перенос по словам"

 

upd 21.06.2020 Новая версия

Исправлена ошибка GDI+ если в таблице есть объекты "Картинка".

Доработано отображение прогресса при длительных сохранениях

 

upd 23.06.2020 Новая версия

Доработано форматирование объединенных ячеек.

В варианты сохранения добавлен формат PDF вместо TXT

Для программного сохранения нужно вызвать:
 

Таб.Записать(ИмяФайла, 0);// - MOXEL 
Таб.Записать(ИмяФайла, 1);// - XLSX 
Таб.Записать(ИмяФайла, 2);// - HTML 
Таб.Записать(ИмяФайла, 3);// - PDF 

 

При интерактивном сохранении пункт "Текстовый файл" заменен на "PDF"

Обновлено описание.

 

upd 25.06.2020 новая версия

Форматирование в PDF доработано.

Исправлена ошибка с чтением параметров страницы.

Увеличилась скорость сохранения в Excel больших файлов.

 

upd  22.03.2022 Новая версия

Исправлены некоторые баги.

Улучшена скорость работы.

Уменьшено потребление памяти.

Уменьшено количество файлов в составе компоненты.

 

upd  26.06.2024 Новая версия

Исправлена ошибка сохранения в Excel повторяющихся областей.

Добавлено сохранение в Excel области печати

Небольшие оптимизации

 

upd  08.07.2024 Новая версия

Исправлена ошибка форматирования чисел при экспорте в Excel. Теперь и запятая и точка в качестве разделителя обрабатывается корректно.

Для работы требуется .Net Framework v4.6.2

Т.к. разработка судя по всему спросом не пользуется - исходники выложены на github.  

Внешняя компонента 7.7 Excel 2007 PDF

См. также

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

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

3588 руб.

29.07.2021    22685    15    22    

16

Разработка внешних компонент 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    8783    23    17    

34

Разработка внешних компонент Системный администратор Программист Платформа 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    5237    1    0    

3

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

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

1200 руб.

02.12.2021    6211    2    19    

4

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

Выполняет выгрузку товаров (всех, только с признаком в прайсе, только из указанной папочки) с гибкой настройкой выгружаемых данных. Формируется файл в формате XLSX подходящий для прямой удаленной загрузки в кассовый аппарат АТОЛ 91Ф/92Ф и им подобных, имеющих управление через Личный кабинет АТОЛ (lk.atol.ru).

1 стартмани

31.01.2021    8348    2    &-rey    1    

4

Разработка внешних компонент Защита ПО и шифрование Программист Платформа 1С v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    9391    28    mdbruyfn    10    

9

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

Компонента позволяет использовать различные веб-сервисы интернет-ресурсов, например работать с онлайн-кассой через API, предоставленное ее разработчиком. Тестировалась на платформе 1С релиза 7.70.027.

1 стартмани

14.11.2019    19163    103    mdbruyfn    104    

18

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

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

26400 руб.

09.04.2019    16444    2    8    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. selesta 18 12.08.19 12:58 Сейчас в теме
будет сохранять больше 65ти тысяч строк?
3. dvk09 2 13.08.19 06:20 Сейчас в теме
(1) Тоже интересен ответ на этот вопрос.
4. MadDAD 136 17.08.19 13:33 Сейчас в теме
(1) именно для этого и делалось.
28. M_W_W 32 03.06.20 14:16 Сейчас в теме
(4) Отчет 23 000 строк... Файл xlsx с нулевым размером, появляется мгновенно. И, потом, задумывается на всегда... (более 10 минут ждал - надоело, снял задачу.) Может я что-то не так делаю? Не большие ПФ, сохраняет вообще без проблем... Комп - винда 7, 32 бита... Памяти по максимуму, что может эта система видеть. Физически 8 гигов...
По трем кнопкам, в диспетчере задач, виден процесс, который виснет:
Прикрепленные файлы:
29. MadDAD 136 03.06.20 14:19 Сейчас в теме
(28)

По трем кнопкам, в диспетчере задач, виден процесс, который виснет:


Внизу в 1С в строке статуса прогресс конвертации виден?
32. M_W_W 32 03.06.20 14:25 Сейчас в теме
(29) Нет ничего там...

Сейчас, прибью процесс, сохраню моксель и выложу...
Прикрепленные файлы:
30. M_W_W 32 03.06.20 14:20 Сейчас в теме
+(28) Если прибить этот процесс, то управление в 1С возвращается, аварийно закрывать не приходится, но екселевский файл так и остается нулевого размера...
31. MadDAD 136 03.06.20 14:22 Сейчас в теме
(30)
Могу посмотреть как и прошлый раз с тестовым файлом.

Какой объем у файла если сохранять в MXL?

У меня тестовый на 80 мб сохранялся порядка 6 минут на wun7 x64.
37. M_W_W 32 03.06.20 21:55 Сейчас в теме
(31) Только до компа добрался... MXL - 8677 кб. Файл в архиве сообщения 33.
52. MadDAD 136 22.06.20 22:00 Сейчас в теме
(28)
Отчет 23 000 строк...


Проблема в объединенных ячейках в каждой строке.
Либа, отвечающая за формат xlsx очень медленно выполняет объединение ячеек. Пока не придумал как решить.
Гарантированно помогает если убрать объединение ячеек.

В последней версии поправил индикацию прогресса.
2. CheBurator 2712 12.08.19 20:50 Сейчас в теме
Будет ли нормально сохранятся картинки, помещенные в рамках ячеки мокселя? при штатном сохранении в эксель - при формировании печформы в 1С - все норм. При открытии сохранееной печформы в экселе - вставленные картинки имеют измененные визуальные размеры.
5. MadDAD 136 17.08.19 13:34 Сейчас в теме
(2) Положение и размеры должны сохраняться.
6. CheBurator 2712 17.08.19 19:01 Сейчас в теме
(5) это хорошо, проверим....
" и запустить register.cmd с правами администратора."
- в сервер вин64 2008 - зарегистрируется без дополнительного шаманства?
7. MadDAD 136 19.08.19 23:37 Сейчас в теме
(6)
это хорошо, проверим....
" и запустить register.cmd с правами администратора."
- в сервер вин64 2008 - зарегистрируется без дополнительного шаманства?


Да на нем тестировалось
8. Xershi 1555 04.10.19 20:38 Сейчас в теме
Есть клиент у него стоит 1С 7.7.
Жалоба при сохранении печатной формы в эксель обрезает текст до 255 символов.
Как я понял связано с тем что семерка сохраняет в 95 экселе.
Можете расписать в публикации по шагам, что нужно из окружения, компонент и кода сделать, чтобы появилось такое меню как у вас на картинке для экселя 2007?
Судя из описания нужно скачать компоненту, запустить рядом батник. И допилить в конфе при старте строку кода которую вы указали, или же внешней обработкой это запускать при надобности?
9. CheBurator 2712 04.10.19 21:53 Сейчас в теме
(8) можно поставить йоксель и сохранять через него, он в варианте 2007 сохраняет.
плюс к этому плюшки в виде группировки стандартных отчетов с плюсиками слева как в экселе
10. Xershi 1555 05.10.19 00:35 Сейчас в теме
(9) сказать админам, чтобы поставили ПО и тогда семерка будет работать без проблем?
20. MadDAD 136 10.10.19 11:14 Сейчас в теме
(8)
Жалоба при сохранении печатной формы в эксель обрезает текст до 255 символов.
Как я понял связано с тем что семерка сохраняет в 95 экселе.
Можете расписать в публикации по шагам, что нужно из окружения, компонент и кода сделать, чтобы появилось такое меню как у вас на картинке для экселя 2007?


Именно так.
- Скачать,
- распковать,
- запустить батник с правами администратора.
- Добавить в "ПриНачалеРаботыСистемы()"
Процедура ПриНачалеРаботыСистемы()
    ПодключитьВнешнююКомпоненту("AddIn.Moxel.Converter");
КонецПроцедуры


в данном случае сработает и
 ЗагрузитьВнешнююКомпоненту("v7Moxel.dll");


После этого в меню сохранения вариант "Excel" заменится на "Excel 2007"
И сохранение в html будет тоже делаться через компоненту. HTML сохраняется в виде аналогичном исходному документу а не так как это делает сама 1С.

Для работы обязателен .Net 4.6.

Никакие внешние обработки не нужны.

Если же нужно сделать сохранение в pdf - тогда можно либо воспользоваться перехватом меню при помощи RWidjets и сделать свою программную реализацию выбора варианта сохранения, либо сделать дополнительную кнопочку на панели инструментов - как советует CheBurator в (13)
11. CheBurator 2712 05.10.19 13:23 Сейчас в теме
это ВК для 77.
набери в яндексе "проект Йоксель". там в итоге ВК скопировать в папку с экзешника 77 (или в папку с базой) и загрузить ВК при старте системы.
здесь на портале тоже поищи - ставишь кнопку на тулбар и она делает группировки для типовых отчетов ТИС.
а если сам программишь, то возможности йокселя сам применишь тоже всякие.
12. Xershi 1555 06.10.19 11:40 Сейчас в теме
(11) так в итоге тоже самое. Что я поставлю ВК автора и надо будет строчку кода писать при старте или запускать внешнюю обработку ее активирующую, что Йоксель. Но Йоксель еще надо установить как ПО. А эксель 2007 уже стоит.
Сейчас проверил - сохранил текст более 255 символов в ячейке из 2013 экселя в 95. Открываю и текст отбрезан до 255 символов.
13. CheBurator 2712 06.10.19 19:27 Сейчас в теме
(12) немножко иначе.
эта публикация требует Net 4.x
он не везде может быть установлен.
Йоксель в этом смысле проще - с ним при установке возни меньше. вдобавок Йоксель кроме сохранения в эксель имеет и другие возможности (чтение экселя 2-3 строками кода, работа с табличным документом и прочее всякое полезное).
установка Йокселя "как ПО" - проста, это может и сам разработчик 1С сделать?
- скопировать йоксель в папку с программой или в папку с базой (я предпочитаю в папку с программой, чтобы не плодить разные версии в разных базах)
- прописать строку загрузки йокселя (это можно сделать и в обработке которая формирует печформу, например) при старте 1С
- запустить 1С один раз с правами администратора и выполнить загрузку йоксела (предыдущий пункт). Вполне возможно что запуск под правами администратора и не понадобится.
.
затем уже, если возможностей йокселя не будет хватать\чтото не то - тогда пробовать эту разработку.
14. Xershi 1555 07.10.19 01:12 Сейчас в теме
(13) думаю отличный вариант. Попробую отпишу результат.
15. CheBurator 2712 07.10.19 01:27 Сейчас в теме
(14) ага, сам йоксель найдешь в яндексе "проект йоксель"
всяких фич полезных потом здесь на портале
16. Xershi 1555 07.10.19 15:59 Сейчас в теме
(15) так что-то я не понял, а как его активировать?
//ПодключитьВнешнююКомпоненту("SpreadSheet.dll") ругается.
ЗагрузитьВнешнююКомпоненту("SpreadSheet.dll") //работает

Без ВК получается сохраняем в mxl и открываем через ПО (установки не требует). Далее уже можно пересохранить в лист эксель 2003.
Для чего ВК тогда?
17. CheBurator 2712 07.10.19 23:28 Сейчас в теме
(16) вот это внедри в конфу.
если все это сложно ;-) - ну тогда, да, ставь эту разработку.
18. Xershi 1555 08.10.19 10:00 Сейчас в теме
(17) 2 строка кода ничего не дает. Все равно сохраняет в 95 экселе.
19. CheBurator 2712 08.10.19 21:04 Сейчас в теме
(18) чего-то в (17) ссылки не вижу.
повторю
https://infostart.ru/public/18989/
.
1. вешаешь на панель кнопку с вызовом обработки их этой публикации.
2. допустим сформирован обычный печформа.
3. жмакаешь кнопку из упомянутой публикации - получаешь "переделанный" отчет (плоский или с группировками если надо).
Меню-Файл-Сохранить - выбираешь нужный формат https://www.screencast.com/t/50OgjMbf3qsf
В открытом экселе все норм https://www.screencast.com/t/6OVmmyYa

напиши в личку свое мыло - я тебе обработку дам, повесить ее на кнопку - оно удобнее сохранять будет сразу с лоп.плюшками
21. M_W_W 32 23.05.20 11:30 Сейчас в теме
Привлекло то, что одной строчкой загрузки компоненты, просто подменяется устаревший формат на новый. В Йокселе конечно возможностей больше, но, тут простота встраивания... Работает, в принципе - хорошо. Но... что не так с переносом текста в ячейках-? Такое ощущение, что не корректно понимает объединенные по вертикали ячейки, с выравниванием "по центру", и по вертикали, и по горизонтали.
Вот:
22. M_W_W 32 23.05.20 11:34 Сейчас в теме
+(21) Думаю, если в самом мокселе убрать объединенные две строки в заголовках колонок, и просто сделать одну строку двойной высоты, то все будет работать. Но, это в этом примере так можно, а бывает, когда без объединенных по вертикали ячеек не обойтись...
23. M_W_W 32 23.05.20 11:45 Сейчас в теме
+(21)(22) Нет, тут дело в другом - не переносится свойство ячейки "Переносить по словам". Если в екселе зайти в свойство ячейки, и поставить эту "галочку", то все становится красиво. И в то-же время, в самой таблице документа, переносы отрабатывают, галка туда попадает автоматом... Но, там строки одиночные, без объединения по вертикали.
24. MadDAD 136 23.05.20 11:48 Сейчас в теме
(23)
+(21)(22) Нет, тут дело в другом - не переносится свойство ячейки "Переносить по словам". Если в екселе зайти в свойство ячейки, и поставить эту "галочку", то все становится красиво. И в то-же время, в самой таблице документа, переносы отрабатывают, галка туда попадает автоматом... Но, там строки одиночные, без объединения по вертикали.


Могу посмотреть что там происходит если пришлете MXL для теста.
25. M_W_W 32 23.05.20 12:33 Сейчас в теме
Вот, во вложении.
Там и моксель исходный, и то, что на выходе получается.
Там в этих проблемных ячейках - свойство "Контроль" в положении "Авто" стоит:



Похоже, это не обрабатывается...
Прикрепленные файлы:
Поступление.zip
26. MadDAD 136 24.05.20 22:57 Сейчас в теме
(25)
Там и моксель исходный, и то, что на выходе получается.


Доработал так. Если в ячейке есть символ переноса строки, то при экспорте в эксель устанавливается галка "Перенос по словам"

https://github.com/DmitryDreytser/v7Moxel/releases/tag/0.6
Прикрепленные файлы:
PreRelease_0.6.zip
27. M_W_W 32 25.05.20 08:16 Сейчас в теме
Ага... Так вроде все отлично!

Спасибо.
33. M_W_W 32 03.06.20 14:28 Сейчас в теме
Вот, моксель в архиве... Может, по тому, что цвет фона ячеек отличный от стандартного, белого?
Прикрепленные файлы:
Ведомость.zip
34. M_W_W 32 03.06.20 14:50 Сейчас в теме
+(33) Не, выделил лист перед сохранением, убрал желтый фон - ни на что не повлияло, все равно висит...
35. MadDAD 136 03.06.20 14:52 Сейчас в теме
(34)Фон тут ни при чем.
На скорость может существенно влиять автовысота, т.к. для каждой строки тогда считается высота. Это затратно.
Посмотрю как будет время.
38. CheBurator 2712 05.06.20 23:39 Сейчас в теме
(35) хм.. йоксель при автовысоте нормально сохраняет..
39. MadDAD 136 05.06.20 23:43 Сейчас в теме
(38) Здесь по скорости тоже все нормально с автовысотой. Проблема в чем-то другом.

Проблема с чтением таблицы из памяти 1С. Йоксель для конвертации сериализует таблицу во временный буфер в памяти и оттуда заново читает. У меня реализовано похожим образом, но конвертация вынесена во внешний x64 процесс, чтобы не отжирать память у 1С.
42. CheBurator 2712 06.06.20 00:13 Сейчас в теме
(39) йоксель еще Ужос по моей просьбе дорабатывал был глючок когда много одинаковых картинок в таблице (падал/проблемы в йокселе были когда отчет "универсальный журнал документов" сохранял, там пиктограммки по строке в виде папочек были)
. я вот не уверен что это изменение вошло в общий релиз который сейчас окончательный.
40. CheBurator 2712 06.06.20 00:03 Сейчас в теме
(33) проверил у себя.
у меня сохранил Йокселем за 2-3 сек. (Сервак интел ксеон Е5530, 2.4ГГц)
формат в экселе - 1-в 1 как моксель (скрин не выкладываю поэтому)
36. M_W_W 32 03.06.20 15:31 Сейчас в теме
Ради эксперимента, я все-таки дождался. Чуть меньше часа(~52 минуты), она все-таки сохранилась...

И строка шапки, шестая, переносы не сработали.
Прикрепленные файлы:
Ведомость2.zip
41. CheBurator 2712 06.06.20 00:10 Сейчас в теме
(36) написал чуть выше. 2-3 сек.
сейчас даже видео выложу.
.
https://my-files.su/qyik2i
43. M_W_W 32 06.06.20 08:28 Сейчас в теме
Ну, да, через Йоксель сохраняется быстро, вообще без проблем.
Но, в этой разработке привлекает именно простота использования, как для пользователя - вообще ни о чем думать не надо, просто в штатном меню пункт подменен, так и для программиста - только ВК загрузить... С Йокселем так не получается, это по любому отдельная обработка, хоть и с бОльшими возможностями...

Может у меня проблема в том, что система 32 бита? Исходный файл значительно больше, чем ОЗУ... Свопит не корректно? С типовыми снеговиками постоянно проблемы, особенно при обновлениях... Может и здесь что-то "родственное"-?
51. MadDAD 136 21.06.20 23:10 Сейчас в теме
(43)
Ну, да, через Йоксель сохраняется быстро, вообще без проблем.
Но, в этой разработке привлекает именно простота использования, как для пользователя - вообще ни о чем думать не надо, просто в штатном меню пункт подменен, так и для программиста - только ВК загрузить... С Йокселем так не получается, это по любому отдельная обработка, хоть и с бОльшими возможностями...

Может у меня проблема в том, что система 32 бита? Исходный файл значительно больше, чем ОЗУ... Свопит не корректно? С типовыми снеговиками постоянно проблемы, особенно при обновлениях... Может и здесь что-то "родственное"-?


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

Так же можно попробовать удалить taskrunner.exe. Новая версия компоненты тогда будет сохранять фйл без использования временного файла.

https://github.com/DmitryDreytser/v7Moxel/releases/tag/0.7
44. ironn 5 17.06.20 17:47 Сейчас в теме
Добрый день!
Почему-то не хочет сохранять в PDF, если в таблице есть картинки - "В GDI+ возникла ошибка общего вида."
При сохранении в xlsx то же самое. В описании вижу на примерах подпись в таблице, так что вопрос о том, работает ли с картинками вообще, снят. А в чем может быть причина? Не тот формат картинки?
Или дело в версии .NET Framework 4.8.3761.0 ?

Сообщение при регистрации
D:\1C\moxel>C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe "D:\1C\Moxel\v7Moxel.dll" /codebase
Microsoft .NET Framework Assembly Registration Utility 4.8.3761.0
для Microsoft .NET Framework 4.8.3761.0
© Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

RegAsm : warning RA0000 : Регистрация неподписанной сборки с использованием параметра /codebase может вызвать конфликт д
анной сборки с другими приложениями, которые могут быть установлены на том же компьютере. Параметр /codebase предназначе
н только для подписанных сборок. Присвойте сборке строгое имя и повторите регистрацию.
Типы зарегистрированы успешно

Из мелкого на скриншотах надпись "ПДВ:" - если ячейка маленькая и в ней текст выровнен по правому краю, то он выводится как будто выровнен по левому краю.
Прикрепленные файлы:
45. MadDAD 136 17.06.20 18:57 Сейчас в теме
(44) Добрый день! С картинками проблем быть не должно. При сохранении в Эксель тоже выдает ошибку? Можете прикерпить исходную таблицу в формате 1С -mxl, чтобы я мог повторить ошибку?

Картинка в таблице выведена стандартными средствами 1С или какой-то сторонней библиотекой?


По выравниванию - видимо так происходит из-за того что слишком маленькая ячейка. Это тоже в PDF или в Excel?
62. MadDAD 136 26.06.20 00:46 Сейчас в теме
(44)
на скриншотах надпись "ПДВ:" - если ячейка маленькая и в ней текст выровнен по правому краю, то он выводится как будто выровнен по левому краю.


Доработано в последней версии.
46. ironn 5 17.06.20 21:25 Сейчас в теме
Выравнивание в PDF. Вывод стандартно средствами 1С.
И еще особенность - если загрузить сохраненную таблицу в обработку ТестMoxel.ert "Загрузить таблицу", то в открывшейся таблице все рисунки продублированы, один над другим в два слоя. Если открыть стандартно, то все ок.
В табличных файлах верхнюю строку с рисунками-кнопками можно удалить. Пробовал и с ней и без - одинаково.
tmpD515.tmp.mxl - записанная после открытия обработкой с продублированными рисунками.
Прикрепленные файлы:
Неподтвержденная-1.mxl
tmpD515.tmp.mxl
47. ironn 5 18.06.20 15:41 Сейчас в теме
Дополнение
В первой строке таблицы рисунки-кнопки с "Расшифровкой" типа "Списокзначений". Так вот при загрузке из памяти, возникает ошибка
"<<?>>{"VL",{{{"S","0","0","0","0","0","СохранитьРисунок"},"Действие"},{{"N","0","0","0","0","0","1"},"УдалитьНачальнаяСтрока"},{{"N","0","0","0","0","0","2"},"УдалитьКоличествоСтрок"},{{"S","0","0","0","0","0","!Тестовый контрагент"},"КонтрагентНаименование"},{{"S","0","0","0","0","0","Счет на ЭЦП для"},"НазваниеДокумента"},{{"S","0","0","0","0","0","JPG"},"ФорматРисунка"}}}
Неопознанный оператор"
В принципе, строку с кнопками я удаляю перед сохранением, поэтому это не критично. И при чтении таблицы из памяти Конвертер.ЗагрузитьИзПамяти(Таб);, - открывается диалог выбора файла. Думал, что будет загружаться "Таб". созданная при открытии обработки, или это потому, что она пустая?
48. ironn 5 19.06.20 02:48 Сейчас в теме
По поводу диалога открития файла - тупо не заметил в Процедуре ИзПамяти() строчку - ВЫбратьФайл(); :)
А дублирование рисунков - в Процедуре ВыбратьФайл() сначала таблица открывается, а потом поверх выводится
	Таб = СоздатьОбъект("Table");
		Таб.Открыть(ИмяКаталога + ИмяФайла);
		//Таб.ИсходнаяТаблица(ИмяКаталога + ИмяФайла);
		//Таб.Вывести();
		таб.Показать();

Но проблему это не решило, все равно "В GDI+ возникла ошибка общего вида."
PS:
Поюзал таблицу в обработке - там картинки вставлены как OLE объект и сохраняется без проблем. А если вставить как картинку, возникает вышеуказанная ошибка.
49. MadDAD 136 19.06.20 10:04 Сейчас в теме
(48) Пока не было времени посмотреть. Постараюсь на выходных.

Если интересно - исходники выложены на гитхабе, в статье есть ссылка на репозитарий.
50. MadDAD 136 21.06.20 23:02 Сейчас в теме

(48)
"В GDI+ возникла ошибка общего вида."


Исправил ошибку.

https://github.com/DmitryDreytser/v7Moxel/releases/tag/0.7
56. ironn 5 23.06.20 23:19 Сейчас в теме
(50)
Исправил ошибку.


Благодарю! Установил обновленную версию - работает!
53. M_W_W 32 23.06.20 09:32 Сейчас в теме
Добрый день!
Еще ошибка... То, что там долго сохраняет большие таблицы, это конечно плохо, но не смертельно, не так это и часто надо. Но, ломает формат ячеек с объединением по горизонтали - это вообще не порядок. Во вложении архив акта в мокселе и то, что получается в экселе...
Прикрепленные файлы:
Акт.rar
54. MadDAD 136 23.06.20 10:57 Сейчас в теме
(53)
Еще ошибка...

Добрый день, это последняя версия так делает?
55. M_W_W 32 23.06.20 11:23 Сейчас в теме
Да, скачал из поста №50, удалил taskrunner.exe из папки бин и скопировал все из архива туда, с заменой...
57. MadDAD 136 24.06.20 01:10 Сейчас в теме
(55) Доработал.
Свежая верся тут. и тут
58. M_W_W 32 24.06.20 11:36 Сейчас в теме
(57) Я конечно уже надоел своими придирками... Но, ИМХО в Ваших интересах "вылизать" продукт до максимально-идеального состояния...
Вот, следующая порция косячков... Выравнивание в ячейке по правому краю(в PDF, в эксель вроде нормально). И отсутствие линий, для "подписей"...
Все в архиве во вложении. На картинке, дополнительно, на что обратить внимание.(Без налога(НДС): уехало...)
Прикрепленные файлы:
ПечФормы.rar
59. MadDAD 136 25.06.20 11:38 Сейчас в теме
(58)
Ваших интересах "вылизать" продукт до максимально-идеального состояния
Честно говоря, нет. Т.к. продукт узкоспециализированный, предназначен для отмирающей платформы, я не продаю его за деньги, а исходники лежат в общем доступе. Но, все же, я как автор заинтересован в завершенности разработки. Именно поэтому я не бросаю проект и продолжаю его по мере возможности дорабатывать, хотя от 1С я уже год как отошел. И я очень благодарен за тестирование и обратную связь, потому как у меня самого нет возможности все протестировать в т.н. "боевых" условиях с разнообразными вариантами применения.

Но хватит лирики. Больше технических подробностей богам технических подробностей:
PDF формируется при помощи движка WebKit из отрендеренного HTML, поэтому присутствуют ограничения связанные с форматированием таблиц в HTML. Именно поэтому текст из PDF тут можно копировать и сам файл занимает значительно меньше места чем в случае с Yoksel, который делает PDF из набора картинок.

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

По поводу отсутствия подписей в Excel - да, это баг, подписи сделаны "картинками" - надписями, они вроде бы корректно обрабатываются в HTML и PDF. С этим постараюсь разобраться.


Из фишек последней версии - переделан перехват сохранения. Штатный формат TXT заменен на PDF. Т.е. поддержка PDF теперь так же делается в одну строку.
60. M_W_W 32 25.06.20 12:48 Сейчас в теме
(59)
Из фишек последней версии - переделан перехват сохранения. Штатный формат TXT заменен на PDF. Т.е. поддержка PDF теперь так же делается в одну строку.


Да, это то, что надо. Уже оценил. Формат "текст", там даром не нужен, а вот PDF вместо него - самое то.
61. MadDAD 136 26.06.20 00:38 Сейчас в теме
(58)
Выравнивание в ячейке по правому краю(в PDF, в эксель вроде нормально). И отсутствие линий, для "подписей"...


Форматирование в PDF поправлено, линии возвращены..
Так же увеличилась скорость сохранения в Excel больших файлов. TaskRunner удалять не нужно.

С надписями в Excel проблема пока не решена

https://github.com/DmitryDreytser/v7Moxel/releases/tag/0.9
63. M_W_W 32 26.06.20 12:18 Сейчас в теме
Ну, если еще не надоело - вот порция "обратной связи".
Высота ячеек и в экселе, и в пдф. В Экселе еще рвет по высоте, строка сверху и снизу, между ними пустое место. На скриншоте видно.

По скорости - сильно большие файлы не проверял, но, этот(~6500 строк) в эксель сохраняется мгновенно, в ПДФ около минуты...
Прикрепленные файлы:
Остатки.zip
64. 4ndr3j 02.07.20 11:38 Сейчас в теме
Автор, поправь пожалуйста архив на githab'e, там нет v7Moxel.dll в папке.
65. MadDAD 136 02.07.20 11:43 Сейчас в теме
(64) только что проверил, все есть
Прикрепленные файлы:
66. zzhiraf_ 73 31.07.20 11:31 Сейчас в теме
Сохранение в ексель 2007 работает. Торговля. 1С 7.7 SQL.
67. alyuev 204 07.08.20 13:22 Сейчас в теме
Неправильно форматирует ячейки, объединенные с помощью флажка "по выбранным колонкам" - в PDF и в XLSX. Версия сборки ВК 0.9.
Прикрепленные файлы:
68. MadDAD 136 08.08.20 00:55 Сейчас в теме
(67) На выходных посмотрю.
69. Tolpinski 68 24.09.20 09:22 Сейчас в теме
Вылетает с ошибкой.
Строк 64433, 15 колонок, плоский вариант по отчета по проводкам.
Прекращается работа TaskRunnner

И это файл за квартал, а хотят за год выгружать.
70. MadDAD 136 24.09.20 10:10 Сейчас в теме
(69) что за ошибка? И если можно - файл для примера, чтобы можно было отладиться.
71. MadDAD 136 28.09.20 01:46 Сейчас в теме
(69)
Нашел ошибку. Попробуйте эту версию.
Прикрепленные файлы:
binary_0.10.zip
72. Tolpinski 68 28.09.20 10:23 Сейчас в теме
(71) Файл на 64к строк сохранил, а его же увеличенный в 2 раза, через копи-паст, уже не хочет, симптомы те же.
И прогресс сохранения странный, 0%, 2%, 6%, готово!
Файл сохранялся минут 5, на i5-7400
73. MadDAD 136 28.09.20 10:25 Сейчас в теме
(72)
И прогресс сохранения странный, 0%, 2%, 6%, готово!

Я распараллелил создание строк в таблице, поэтому прогресс скачками.

Ошибку постараюсь сегодня посмотреть.
74. MadDAD 136 28.09.20 15:28 Сейчас в теме
(72) Новая версия.
Прикрепленные файлы:
Debug.zip
75. Tolpinski 68 29.09.20 14:07 Сейчас в теме
(74)Не помогло для файла на 260т строк, 130т сохранило.
Если сохранять через меню файл, то ошибка прежняя, если через обработку, загрузка в память и сохранение, то выдало: Не удалось загрузить файл или сборку "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" либо одну из их зависимостей. Недостаточно памяти для обработки команды. (Исключение из HRESULT: 0x80070008)
76. MadDAD 136 29.09.20 14:12 Сейчас в теме
(75)а taskrunner.exe не удален из папки случайно? Судя по всему не хватает памяти у процесса чтобы экспортировать в Эксель. Для этого сохранение происходит в отдельном x64 процессе - taskrunner. Ну и винда должна быть x64.
77. MadDAD 136 29.09.20 15:28 Сейчас в теме
(75)
Не помогло для файла на 260т строк, 130т сохранило.
Если сохранять через меню файл, то ошибка прежняя, если через обработку, загрузка в память и сохранение, то выдало: Не удалось загрузить файл или сборку "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" либо одну из их зависимостей. Недостаточно памяти для обработки команды. (Исключение из HRESULT: 0x80070008)


Есть еще такая версия. Пока в ней нет картинок, но памяти жрет меньше и работает чуть быстрее.
Прикрепленные файлы:
Debug.zip
78. MadDAD 136 29.09.20 15:33 Сейчас в теме
(77)
И нужно понимать, что до бесконечности увеличивать количество строк не получится - у 1С 7.7 ограничение по памяти примерно в 1.7 гиг.

Формат excel 2007 довольно прожорлив по памяти.

Как вариант - можно сделать обработку файла частями, это будет сильно медленней, но экономичней по памяти. Ну и не бесплатно.
79. Tolpinski 68 30.09.20 13:44 Сейчас в теме
(78) О бесконечности речь не идёт, но 7ка спокойно сохраняет и больше 300к строк, причём очень быстро, и 8ка "работа с файлами" такой же объём пересохраняет в xlsx без проблем. При формировании таких отчетов память
использованная и до гига не дорастает, до 1.7 далеко.

Проблема одна, бухгалтера, которые забывают эту цепочку.
80. MadDAD 136 30.09.20 14:47 Сейчас в теме
(79)
О бесконечности речь не идёт, но 7ка спокойно сохраняет и больше 300к строк, причём очень быстро, и 8ка "работа с файлами" такой же объём пересохраняет в xlsx без проблем. При формировании таких отчетов память
использованная и до гига не дорастает, до 1.7 далеко.

Проблема одна, бухгалтера, которые забывают эту цепочку.


Версию из (77) не проверяли?
81. Tolpinski 68 01.10.20 09:36 Сейчас в теме
(80)
Работает!
Картинки к чёрту, хотя 1С и любит через них "подписи рисовать".

Вопрос, сохранение все имеющиеся ядра будет использовать? На сервере не хотелось бы видеть загрузку под 100%, админы не одобрят.
82. MadDAD 136 01.10.20 11:03 Сейчас в теме
(81)
Вопрос, сохранение все имеющиеся ядра будет использовать?


Сейчас сделано так чтобы использовались все ядра, для скорости. Можно ограничить.

2-х будет достаточно?
83. Tolpinski 68 01.10.20 15:36 Сейчас в теме
(82) да и 4 будет хорошо, а лучше бы настраиваемым сделать, ну или на крайний случай оставлять 1/4 ядер не загруженными.

С экселем такая же беда у нас, макросы запустят, сервер ложится, в 1с ошибки транзакции :) База и терминал, одна машина.
84. Tolpinski 68 02.10.20 09:46 Сейчас в теме
На 2008R2 всё плохо, даже файл на 64к строк не сохраняется, последняя версия без картинок. Система на 2х Xeon 6254

Ошибка
85. MadDAD 136 02.10.20 11:14 Сейчас в теме
(84)
На 2008R2 всё плохо, даже файл на 64к строк не сохраняется, последняя версия без картинок. Система на 2х Xeon 6254


Ошибка с чтением таблицы.

С подключенной компонентой сохранение в mxl работает нормально?
86. eXtremeDS 10.02.21 00:19 Сейчас в теме
При попытке сохранения каталога товара с картинками/фотографиями в формате pdf - 1С выдает ошибку об вызове исключения, при попытке сохранения в ексель 2007 вообще критует.
(если файл сохранять в ексель штратными методами тогда весит ~ 300мб, могут быть файлы и побольше)
Прикрепленные файлы:
87. MadDAD 136 10.02.21 00:22 Сейчас в теме
(86)
При попытке сохранения каталога товара с картинками/фотографиями в формате pdf - 1С выдает ошибку об вызове исключения, при попытке сохранения в ексель 2007 вообще критует.


Скиньте, пожалуйста сюда проблемный файл в формате 1С, разберусь.

И еще хорошо бы скрин/текст сообщений об ошибках
88. eXtremeDS 10.02.21 00:25 Сейчас в теме
(87)
Сейчас постараюсь выловить ошибку, при попытке сохранения в ексель ошибка на 1-5 секунт вылетает и окно 1с улетает, а в процесах висит
89. MadDAD 136 10.02.21 00:26 Сейчас в теме
(88) Есть еще такая версия, оптимизированная и с поддержкой картинок.
Прикрепленные файлы:
Debug.zip
90. eXtremeDS 10.02.21 00:26 Сейчас в теме
вот ошибка при сохранении в ексель
Прикрепленные файлы:
91. MadDAD 136 10.02.21 00:28 Сейчас в теме
(90) Не хватило памяти...

Система 64-разрядная?
Файл TaskRunner.exe из каталога не удален?
92. eXtremeDS 10.02.21 00:31 Сейчас в теме
(91)
10 x64 - из каталога 1с? или из каталога откуда регистрировалась библиотека?
93. MadDAD 136 10.02.21 00:32 Сейчас в теме
(92)
из каталога откуда регистрировалась библиотека
94. eXtremeDS 10.02.21 00:34 Сейчас в теме
(93) всё на месте, попробовал только что версию из (89) ошибки те же
95. MadDAD 136 10.02.21 00:35 Сейчас в теме
(94)
Тогда мне нужен файл, чтобы воспроизвести ошибку и посмотреть в чем проблема.
96. eXtremeDS 10.02.21 00:37 Сейчас в теме
(95) Сохранить штатными методами в ексель? Или какой файл нужен?
97. MadDAD 136 10.02.21 00:40 Сейчас в теме
(96) Сохранить штатными средствами в формате 1с. MXL
98. eXtremeDS 10.02.21 00:43 Сейчас в теме
99. MadDAD 136 10.02.21 08:13 Сейчас в теме
(98)ок. В ближайшее время посмотрю.
Оставьте свое сообщение