Имя: Пароль:
1C
1C 7.7
v7: Загрузка процессора 100%
,
0 gni
 
25.02.15
10:05
Здравствуйте!

Имеется ПУБ, файловая, пользователи работают в терминале.
С недавних пор (буквально несколько дней) началась такая ерунда: формируем отчет и сохраняем его в Excel. Отчет в 1С формируется нормально (т.е. недолго и без подвисаний), а при сохранении в xls процессор (точнее, один из 8 в мониторе ресурсов) грузится на 100%. Сохраняется отчет до нескольких минут, после этого все нормально работает. Файлик то получается небольшой - около 1,5 мб (около 8-10 тыс строк, 3 колонки). До недавних пор таких задержек не было. Никаких обновлений, изменений не делал. С чего такая фигня началась - не пойму. Отключение антивируса никак не влияет.
Подскажите, куда можно посмотреть?

Спасибо.
1 ДенисЧ
 
25.02.15
10:07
8-10 тысяч строк для 77 при сохранении в ексель - уже многовато.
Увеличился размер отчёта, достиг предела опеределнного
2 kortun
 
25.02.15
10:07
ищи информацию по ёкселю
3 ssamm
 
25.02.15
10:11
выставь перед сохранением фиксированную высоту строк в отчете, сохранится моментально
4 shag008
 
25.02.15
10:17
(3) что значит фиксированную высоту? Убрать "Переносить" с настройках ячеек?
5 ssamm
 
25.02.15
10:21
(4) Выдели весь отчет, правой кнопкой на заголовке строки -> Высота строки, поставь например 10. Сохраняй.
6 ssamm
 
25.02.15
10:24
Ну или формируй отчет через Йоксель
7 shag008
 
25.02.15
10:30
(5) ок
8 Дотошный
 
25.02.15
10:39
(7) ок - в смысле работает?
9 gni
 
25.02.15
11:36
(5) Действительно, помогает!
А на чем это решение основано? Раньше почему то и так работало нормально. Может быть можно как-то отчет сразу сделать, чтобы он быстро сохранялся? Одинаковую высоту строк в самом шаблоне проставил - все равно долго сохраняет.
10 Ёпрст
 
25.02.15
11:45
(0) это [:]||||||||||||||||||||[:]
11 shag008
 
25.02.15
11:46
(8) ок - в смысле, понял что означает "фиксированная высота"
12 gni
 
25.02.15
11:52
Вдогонку (9).
Все получилось, большое спасибо.
Выделил в шаблоне ВСЕ строки и сделал одной высоты, как указано в (5). Потом те строки, которые должны отличаться по высоте (заголовок) увеличил. Сейчас все отлично.

Большое спасибо.
13 ssamm
 
25.02.15
12:05
(12) раньше работало и без этого, потому как меньше строк было. Это древний глюк семерки
14 ssamm
 
25.02.15
12:06
Если надо чтоб сразу все норм было, пользуй Йоксель.
15 DeiMos
 
25.02.15
12:18
Обработка "Быстрое сохранение таблиц 1С (mxl) в формате Excel
=============================================================

Обработка создана для решения двух существующих проблем 1С:Предприятия:

    * медленное сохранение табличных документов в формате Microsoft Excel.
    * некачественное сохранение табличных документов в формате Microsoft Excel.
    
Проблема 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,
и нажмите на созданную в Конфигураторе кнопку. В открывшейся форме укажите,
куда следует сохранить табличный документ и нажмите кнопку "Сохранить".

О программе
===========
Для сохранения табличных документов 1С в формат Excel использована
внешняя компонента "Йоксель". Кроме сохранения таблиц в Excel Йоксель
обладает еще следующими возможностями:
    - прямое (без наличия Excel) чтение файлов Excel и конвертирование их в формат
    табличных документов 1С с сохранением форматирования;
    
    - преобразование табличных документов в графические файлы форматов
    JPEG, PNG, BMP;
    
    - отображение табличных документов на диалоговых формах 1С:Предприятия
    с возможностью построения таблиц в режиме ввода данных
    нефиксированной структуры.
    
Сайт проекта: http://yoksel.net.ru

Для получения активного табличного документа в 1С:Предприятии использована
внешняя компонента FormEx. Компонента реализует ряд возможностей по управлению
интерфейсом 1С:Предприятия и ряд других сервисных функций.

Страница компоненты: http://dorex.ru/?projects&formex

Связаться с автором данной обработки можно по адресу: [email protected]
16 dk
 
25.02.15
12:21
Сохранение в файловой 8-ке из MXL в XLSX рулит ))
700 колонок легко, а йоксель сдулся
2 + 2 = 3.9999999999999999999999999999999...