(4) Отчет 23 000 строк... Файл xlsx с нулевым размером, появляется мгновенно. И, потом, задумывается на всегда... (более 10 минут ждал - надоело, снял задачу.) Может я что-то не так делаю? Не большие ПФ, сохраняет вообще без проблем... Комп - винда 7, 32 бита... Памяти по максимуму, что может эта система видеть. Физически 8 гигов...
По трем кнопкам, в диспетчере задач, виден процесс, который виснет:
+(28) Если прибить этот процесс, то управление в 1С возвращается, аварийно закрывать не приходится, но екселевский файл так и остается нулевого размера...
Проблема в объединенных ячейках в каждой строке.
Либа, отвечающая за формат xlsx очень медленно выполняет объединение ячеек. Пока не придумал как решить.
Гарантированно помогает если убрать объединение ячеек.
Будет ли нормально сохранятся картинки, помещенные в рамках ячеки мокселя? при штатном сохранении в эксель - при формировании печформы в 1С - все норм. При открытии сохранееной печформы в экселе - вставленные картинки имеют измененные визуальные размеры.
(5) это хорошо, проверим....
" и запустить register.cmd с правами администратора."
- в сервер вин64 2008 - зарегистрируется без дополнительного шаманства?
Есть клиент у него стоит 1С 7.7.
Жалоба при сохранении печатной формы в эксель обрезает текст до 255 символов.
Как я понял связано с тем что семерка сохраняет в 95 экселе.
Можете расписать в публикации по шагам, что нужно из окружения, компонент и кода сделать, чтобы появилось такое меню как у вас на картинке для экселя 2007?
Судя из описания нужно скачать компоненту, запустить рядом батник. И допилить в конфе при старте строку кода которую вы указали, или же внешней обработкой это запускать при надобности?
(8) можно поставить йоксель и сохранять через него, он в варианте 2007 сохраняет.
плюс к этому плюшки в виде группировки стандартных отчетов с плюсиками слева как в экселе
Жалоба при сохранении печатной формы в эксель обрезает текст до 255 символов.
Как я понял связано с тем что семерка сохраняет в 95 экселе.
Можете расписать в публикации по шагам, что нужно из окружения, компонент и кода сделать, чтобы появилось такое меню как у вас на картинке для экселя 2007?
Именно так.
- Скачать,
- распковать,
- запустить батник с правами администратора.
- Добавить в "ПриНачалеРаботыСистемы()"
После этого в меню сохранения вариант "Excel" заменится на "Excel 2007"
И сохранение в html будет тоже делаться через компоненту. HTML сохраняется в виде аналогичном исходному документу а не так как это делает сама 1С.
Для работы обязателен .Net 4.6.
Никакие внешние обработки не нужны.
Если же нужно сделать сохранение в pdf - тогда можно либо воспользоваться перехватом меню при помощи RWidjets и сделать свою программную реализацию выбора варианта сохранения, либо сделать дополнительную кнопочку на панели инструментов - как советует CheBurator в (13)
это ВК для 77.
набери в яндексе "проект Йоксель". там в итоге ВК скопировать в папку с экзешника 77 (или в папку с базой) и загрузить ВК при старте системы.
здесь на портале тоже поищи - ставишь кнопку на тулбар и она делает группировки для типовых отчетов ТИС.
а если сам программишь, то возможности йокселя сам применишь тоже всякие.
(11) так в итоге тоже самое. Что я поставлю ВК автора и надо будет строчку кода писать при старте или запускать внешнюю обработку ее активирующую, что Йоксель. Но Йоксель еще надо установить как ПО. А эксель 2007 уже стоит.
Сейчас проверил - сохранил текст более 255 символов в ячейке из 2013 экселя в 95. Открываю и текст отбрезан до 255 символов.
(12) немножко иначе.
эта публикация требует Net 4.x
он не везде может быть установлен.
Йоксель в этом смысле проще - с ним при установке возни меньше. вдобавок Йоксель кроме сохранения в эксель имеет и другие возможности (чтение экселя 2-3 строками кода, работа с табличным документом и прочее всякое полезное).
установка Йокселя "как ПО" - проста, это может и сам разработчик 1С сделать?
- скопировать йоксель в папку с программой или в папку с базой (я предпочитаю в папку с программой, чтобы не плодить разные версии в разных базах)
- прописать строку загрузки йокселя (это можно сделать и в обработке которая формирует печформу, например) при старте 1С
- запустить 1С один раз с правами администратора и выполнить загрузку йоксела (предыдущий пункт). Вполне возможно что запуск под правами администратора и не понадобится.
.
затем уже, если возможностей йокселя не будет хватать\чтото не то - тогда пробовать эту разработку.
(18) чего-то в (17) ссылки не вижу.
повторю
https://infostart.ru/public/18989/ .
1. вешаешь на панель кнопку с вызовом обработки их этой публикации.
2. допустим сформирован обычный печформа.
3. жмакаешь кнопку из упомянутой публикации - получаешь "переделанный" отчет (плоский или с группировками если надо).
Меню-Файл-Сохранить - выбираешь нужный формат https://www.screencast.com/t/50OgjMbf3qsf В открытом экселе все норм https://www.screencast.com/t/6OVmmyYa
напиши в личку свое мыло - я тебе обработку дам, повесить ее на кнопку - оно удобнее сохранять будет сразу с лоп.плюшками
Привлекло то, что одной строчкой загрузки компоненты, просто подменяется устаревший формат на новый. В Йокселе конечно возможностей больше, но, тут простота встраивания... Работает, в принципе - хорошо. Но... что не так с переносом текста в ячейках-? Такое ощущение, что не корректно понимает объединенные по вертикали ячейки, с выравниванием "по центру", и по вертикали, и по горизонтали.
Вот:
+(21) Думаю, если в самом мокселе убрать объединенные две строки в заголовках колонок, и просто сделать одну строку двойной высоты, то все будет работать. Но, это в этом примере так можно, а бывает, когда без объединенных по вертикали ячеек не обойтись...
+(21)(22) Нет, тут дело в другом - не переносится свойство ячейки "Переносить по словам". Если в екселе зайти в свойство ячейки, и поставить эту "галочку", то все становится красиво. И в то-же время, в самой таблице документа, переносы отрабатывают, галка туда попадает автоматом... Но, там строки одиночные, без объединения по вертикали.
+(21)(22) Нет, тут дело в другом - не переносится свойство ячейки "Переносить по словам". Если в екселе зайти в свойство ячейки, и поставить эту "галочку", то все становится красиво. И в то-же время, в самой таблице документа, переносы отрабатывают, галка туда попадает автоматом... Но, там строки одиночные, без объединения по вертикали.
Могу посмотреть что там происходит если пришлете MXL для теста.
Вот, во вложении.
Там и моксель исходный, и то, что на выходе получается.
Там в этих проблемных ячейках - свойство "Контроль" в положении "Авто" стоит:
(34)Фон тут ни при чем.
На скорость может существенно влиять автовысота, т.к. для каждой строки тогда считается высота. Это затратно.
Посмотрю как будет время.
(38) Здесь по скорости тоже все нормально с автовысотой. Проблема в чем-то другом.
Проблема с чтением таблицы из памяти 1С. Йоксель для конвертации сериализует таблицу во временный буфер в памяти и оттуда заново читает. У меня реализовано похожим образом, но конвертация вынесена во внешний x64 процесс, чтобы не отжирать память у 1С.
(39) йоксель еще Ужос по моей просьбе дорабатывал был глючок когда много одинаковых картинок в таблице (падал/проблемы в йокселе были когда отчет "универсальный журнал документов" сохранял, там пиктограммки по строке в виде папочек были)
. я вот не уверен что это изменение вошло в общий релиз который сейчас окончательный.
(33) проверил у себя.
у меня сохранил Йокселем за 2-3 сек. (Сервак интел ксеон Е5530, 2.4ГГц)
формат в экселе - 1-в 1 как моксель (скрин не выкладываю поэтому)
Ну, да, через Йоксель сохраняется быстро, вообще без проблем.
Но, в этой разработке привлекает именно простота использования, как для пользователя - вообще ни о чем думать не надо, просто в штатном меню пункт подменен, так и для программиста - только ВК загрузить... С Йокселем так не получается, это по любому отдельная обработка, хоть и с бОльшими возможностями...
Может у меня проблема в том, что система 32 бита? Исходный файл значительно больше, чем ОЗУ... Свопит не корректно? С типовыми снеговиками постоянно проблемы, особенно при обновлениях... Может и здесь что-то "родственное"-?
Ну, да, через Йоксель сохраняется быстро, вообще без проблем.
Но, в этой разработке привлекает именно простота использования, как для пользователя - вообще ни о чем думать не надо, просто в штатном меню пункт подменен, так и для программиста - только ВК загрузить... С Йокселем так не получается, это по любому отдельная обработка, хоть и с бОльшими возможностями...
Может у меня проблема в том, что система 32 бита? Исходный файл значительно больше, чем ОЗУ... Свопит не корректно? С типовыми снеговиками постоянно проблемы, особенно при обновлениях... Может и здесь что-то "родственное"-?
Проблему с длительным сохранением пока решить не удалось.
Но сложность точно не в расчеты высоты. Библиотека, отвечающая за сохранение в Excel работает довольно медленно, пока замену ей не придумал, но переделал вывод прогресса сохранения, чтобы было видно что 1С не зависла.
Так же можно попробовать удалить taskrunner.exe. Новая версия компоненты тогда будет сохранять фйл без использования временного файла.
Добрый день!
Почему-то не хочет сохранять в PDF, если в таблице есть картинки - "В GDI+ возникла ошибка общего вида."
При сохранении в xlsx то же самое. В описании вижу на примерах подпись в таблице, так что вопрос о том, работает ли с картинками вообще, снят. А в чем может быть причина? Не тот формат картинки?
Или дело в версии .NET Framework 4.8.3761.0 ?
RegAsm : warning RA0000 : Регистрация неподписанной сборки с использованием параметра /codebase может вызвать конфликт д
анной сборки с другими приложениями, которые могут быть установлены на том же компьютере. Параметр /codebase предназначе
н только для подписанных сборок. Присвойте сборке строгое имя и повторите регистрацию.
Типы зарегистрированы успешно
Из мелкого на скриншотах надпись "ПДВ:" - если ячейка маленькая и в ней текст выровнен по правому краю, то он выводится как будто выровнен по левому краю.
(44) Добрый день! С картинками проблем быть не должно. При сохранении в Эксель тоже выдает ошибку? Можете прикерпить исходную таблицу в формате 1С -mxl, чтобы я мог повторить ошибку?
Картинка в таблице выведена стандартными средствами 1С или какой-то сторонней библиотекой?
По выравниванию - видимо так происходит из-за того что слишком маленькая ячейка. Это тоже в PDF или в Excel?
Выравнивание в PDF. Вывод стандартно средствами 1С.
И еще особенность - если загрузить сохраненную таблицу в обработку ТестMoxel.ert "Загрузить таблицу", то в открывшейся таблице все рисунки продублированы, один над другим в два слоя. Если открыть стандартно, то все ок.
В табличных файлах верхнюю строку с рисунками-кнопками можно удалить. Пробовал и с ней и без - одинаково.
tmpD515.tmp.mxl - записанная после открытия обработкой с продублированными рисунками.
Дополнение
В первой строке таблицы рисунки-кнопки с "Расшифровкой" типа "Списокзначений". Так вот при загрузке из памяти, возникает ошибка
"<<?>>{"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"},"ФорматРисунка"}}}
Неопознанный оператор"
В принципе, строку с кнопками я удаляю перед сохранением, поэтому это не критично. И при чтении таблицы из памяти Конвертер.ЗагрузитьИзПамяти(Таб);, - открывается диалог выбора файла. Думал, что будет загружаться "Таб". созданная при открытии обработки, или это потому, что она пустая?
По поводу диалога открития файла - тупо не заметил в Процедуре ИзПамяти() строчку - ВЫбратьФайл(); :)
А дублирование рисунков - в Процедуре ВыбратьФайл() сначала таблица открывается, а потом поверх выводится
Но проблему это не решило, все равно "В GDI+ возникла ошибка общего вида."
PS:
Поюзал таблицу в обработке - там картинки вставлены как OLE объект и сохраняется без проблем. А если вставить как картинку, возникает вышеуказанная ошибка.
Добрый день!
Еще ошибка... То, что там долго сохраняет большие таблицы, это конечно плохо, но не смертельно, не так это и часто надо. Но, ломает формат ячеек с объединением по горизонтали - это вообще не порядок. Во вложении архив акта в мокселе и то, что получается в экселе...
(57) Я конечно уже надоел своими придирками... Но, ИМХО в Ваших интересах "вылизать" продукт до максимально-идеального состояния...
Вот, следующая порция косячков... Выравнивание в ячейке по правому краю(в PDF, в эксель вроде нормально). И отсутствие линий, для "подписей"...
Все в архиве во вложении. На картинке, дополнительно, на что обратить внимание.(Без налога(НДС): уехало...)
Ваших интересах "вылизать" продукт до максимально-идеального состояния
Честно говоря, нет. Т.к. продукт узкоспециализированный, предназначен для отмирающей платформы, я не продаю его за деньги, а исходники лежат в общем доступе. Но, все же, я как автор заинтересован в завершенности разработки. Именно поэтому я не бросаю проект и продолжаю его по мере возможности дорабатывать, хотя от 1С я уже год как отошел. И я очень благодарен за тестирование и обратную связь, потому как у меня самого нет возможности все протестировать в т.н. "боевых" условиях с разнообразными вариантами применения.
Но хватит лирики. Больше технических подробностей богам технических подробностей:
PDF формируется при помощи движка WebKit из отрендеренного HTML, поэтому присутствуют ограничения связанные с форматированием таблиц в HTML. Именно поэтому текст из PDF тут можно копировать и сам файл занимает значительно меньше места чем в случае с Yoksel, который делает PDF из набора картинок.
По поводу уехавшей надписи - в данном случае текст "Без налога (НДС)." не влезает в соответствующую ячейку, у ячейки указано выравнивание по правому краю. 1С и Excel в таком случае отображают текст со смещением в соседнюю левую ячейку. При формировании таблицы в Html я пока не придумал как сымитировать такое же поведение. Если есть какие-нибудь мысли по этому поводу - буду рад услышать. Пока у меня в голове только один вариант - посчитать ширину текста, и если он не влезает - объединить текущую ячейку с левой. Не особо оптимально.
По поводу отсутствия подписей в Excel - да, это баг, подписи сделаны "картинками" - надписями, они вроде бы корректно обрабатываются в HTML и PDF. С этим постараюсь разобраться.
Из фишек последней версии - переделан перехват сохранения. Штатный формат TXT заменен на PDF. Т.е. поддержка PDF теперь так же делается в одну строку.
Ну, если еще не надоело - вот порция "обратной связи".
Высота ячеек и в экселе, и в пдф. В Экселе еще рвет по высоте, строка сверху и снизу, между ними пустое место. На скриншоте видно.
По скорости - сильно большие файлы не проверял, но, этот(~6500 строк) в эксель сохраняется мгновенно, в ПДФ около минуты...
(71) Файл на 64к строк сохранил, а его же увеличенный в 2 раза, через копи-паст, уже не хочет, симптомы те же.
И прогресс сохранения странный, 0%, 2%, 6%, готово!
Файл сохранялся минут 5, на i5-7400
(74)Не помогло для файла на 260т строк, 130т сохранило.
Если сохранять через меню файл, то ошибка прежняя, если через обработку, загрузка в память и сохранение, то выдало: Не удалось загрузить файл или сборку "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" либо одну из их зависимостей. Недостаточно памяти для обработки команды. (Исключение из HRESULT: 0x80070008)
(75)а taskrunner.exe не удален из папки случайно? Судя по всему не хватает памяти у процесса чтобы экспортировать в Эксель. Для этого сохранение происходит в отдельном x64 процессе - taskrunner. Ну и винда должна быть x64.
Не помогло для файла на 260т строк, 130т сохранило.
Если сохранять через меню файл, то ошибка прежняя, если через обработку, загрузка в память и сохранение, то выдало: Не удалось загрузить файл или сборку "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" либо одну из их зависимостей. Недостаточно памяти для обработки команды. (Исключение из HRESULT: 0x80070008)
Есть еще такая версия. Пока в ней нет картинок, но памяти жрет меньше и работает чуть быстрее.
(78) О бесконечности речь не идёт, но 7ка спокойно сохраняет и больше 300к строк, причём очень быстро, и 8ка "работа с файлами" такой же объём пересохраняет в xlsx без проблем. При формировании таких отчетов память
использованная и до гига не дорастает, до 1.7 далеко.
Проблема одна, бухгалтера, которые забывают эту цепочку.
О бесконечности речь не идёт, но 7ка спокойно сохраняет и больше 300к строк, причём очень быстро, и 8ка "работа с файлами" такой же объём пересохраняет в xlsx без проблем. При формировании таких отчетов память
использованная и до гига не дорастает, до 1.7 далеко.
Проблема одна, бухгалтера, которые забывают эту цепочку.
На 2008R2 всё плохо, даже файл на 64к строк не сохраняется, последняя версия без картинок. Система на 2х Xeon 6254
Ошибка
Имя сбойного приложения: TaskRunnner.exe, версия: 1.0.0.0, отметка времени: 0x5f732672
Имя сбойного модуля: KERNELBASE.dll, версия: 6.1.7601.24441, отметка времени 0x5cb935a7
Код исключения: 0xe0434352
Смещение ошибки: 0x000000000000bdfd
Идентификатор сбойного процесса: 0x4b58
Время запуска сбойного приложения: 0x01d69886827ca48f
Путь сбойного приложения: E:\1C\1SBDB\v7Moxel\TaskRunnner.exe
Путь сбойного модуля: C:\Windows\system32\KERNELBASE.dll
Код отчета: c11e5d0f-0479-11eb-bea8-000c29202bf3
Application: TaskRunnner.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.EndOfStreamException
at System.IO.BinaryReader.FillBuffer(Int32)
at System.IO.BinaryReader.ReadInt16()
at Moxel.Moxel.Load(System.IO.BinaryReader)
at Moxel.Moxel.Load(System.IO.Stream)
at Moxel.Moxel.Load(Byte[] ByRef)
at Moxel.Moxel.Load(System.String)
at Moxel.Moxel..ctor(System.String)
at TaskRunnner.Program.Main(System.String[])
При попытке сохранения каталога товара с картинками/фотографиями в формате pdf - 1С выдает ошибку об вызове исключения, при попытке сохранения в ексель 2007 вообще критует.
(если файл сохранять в ексель штратными методами тогда весит ~ 300мб, могут быть файлы и побольше)
При попытке сохранения каталога товара с картинками/фотографиями в формате pdf - 1С выдает ошибку об вызове исключения, при попытке сохранения в ексель 2007 вообще критует.
Скиньте, пожалуйста сюда проблемный файл в формате 1С, разберусь.