Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 мая 2024, 23:57

Сохранение Табличного Документа в Excel (повреждение файла)

Автор AIFrame, 26 окт 2015, 12:06

0 Пользователей и 1 гость просматривают эту тему.

AIFrame

1С:Предприятие 8.2 (8.2.19.116)
"Управление торговлей", редакция 10.3 (10.3.29.1)

Есть обработка "ПечатьПрайсЛистаСФото", которая по макету заполняет прайс для его сохранения манагерами в excel.
Проблема существует уже давно (больше года) и решать ее пробовали разными путями.
Суть заключается в следующем: при сохранении прайса в xls с большим кол-вом картинок в нем (изображения номенклатуры), мы на выходе получаем нечитаемый прайс с поехавшими колонками и отсутствием группировок. Берем <100 позиций - все прекрасно, но после того, как число строк превышает N, все едет к чертям (не 64к строк, меньше, гораздо меньше. У нас номенклатуры в разделе Товары всего 9к, из них на остатках максимум 4к позиций).
Если вывод картинок убрать - этот же прайс сохранит без проблем.

В настоящий момент проблема замазаны костылем:

Процедура КоманднаяПанельСохранение(Кнопка)
СтандартнаяОбработка = Ложь;
Режим = РежимДиалогаВыбораФайла.Сохранение;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = КаталогВременныхФайлов()+"";
Текст = "ru = ""Текст""; en = ""Text""";
Фильтр = НСтр(Текст)+"(*.mxl)|*.mxl";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите файлы";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
Иначе
Возврат;
КонецЕсли;
    ПутьБезПробелов = СтрЗаменить(ИмяФайла, " ", "_");
    ПутьБезПробелов = СтрЗаменить(ИмяФайла, ",", "_");
Состояние("Запись в MXL");
ЭлементыФормы.ДокументРезультат.Записать(ПутьБезПробелов,ТипФайлаТабличногоДокумента.MXL);

Состояние("Открытие обработки MXL");
Ком = "\\1csrv\price.bat " + ПутьБезПробелов;
КомандаСистемы(Ком);
КонецПроцедуры

Батник запускает FilesWorkshop, где манагер макросом пересохраняет его в excel, потом открывается эксель и манагер макросом же ужимает в нем картинки.
Парадоксальность этого в том, что библиотека moxel из платформы 1с8 (любой) с таким прайсом справиться не может, а moxel из FilesWorkshop от тех же 1С-ников - может.

Пробовали формировать excel через OLE - не торт, нет группировок, криво формирует (слишком много гемора до достижения универсальности).
Думали, что проблема в самих изображениях - выгружал, конвертировал\сжимал, загружал обратно - нет эффекта.

Пробовали толстым клиентом (Работаем по RDP) - то же самое.

Копи-паст из ДокументРезультат напрямую в excel выдает ошибку APPCRASH сходу (при копировании любой ячейки).

Вопрос следующий: может мы чего-то не знаем и делаем не так? Я понимаю, что 1С формирует xls по каким-то своим уникальным правилам, но есть ли путь заставить его формировать файл буквально построчно своими штатными библиотеками, ибо, сдается мне, при выгрузке больших объемов двоичных данных он тупо загибается?

Теги: 1C8.2 excel 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск