Невалидный XLSX при сохранении Табличного документа

21.10.17

Интеграция - Загрузка и выгрузка в Excel

Ошибка открытия XLSX файлов, созданных при сохранении Табличного документа. (Невалидный формат файла)

Обнаружил сегодня ошибку - Табличный документ при записи (интерактивно или программно) в формате XLSX на некоторых сочетаниях ОС+Платформы формирует невалидный файл, который не будет нормально открываться на старых версиях OpenOffice/LibreOffice (проверено на 3.4.0, которых достаточно много у клиентов), но самое главное - неверно показывается во почтовых вложениях на мобильных телефонах (Iphone) и в предпросмотрах вложений Gmail. Наверняка будут проблемы и в скриптах типа PHP-XLSX.

  Ошибка заключается в неправильном регистре наименования одного из xml файлов внутри xlsx. Файл должен называться "sharedStrings.xml", а 1С сохраняет его как "SharedStrings.xml", из-за чего становятся недоступными ссылки вида 
PartName="/xl/sharedStrings.xml" в файле [Content_Types].xml
Target="sharedStrings.xml"/> в файле workbook.xml.rels

  Соответственно воспроизвести ошибку просто  - Файл - Новый Табличный документ - Сохранить как - xlsx - полученный файл распаковать, зайти в подкаталог xl и сразу будет видно как сохранило - "sharedStrings.xml" или "SharedStrings.xml"

При этом ошибка воспроизводится не на всех платформах и версиях ОС, вот проверенные варианты:
Windows 10 Pro x64, 8.3.10.2505 x64 - ошибки нет, тот же компьютер после установки 8.3.10.2580 x86 - ошибки нет
Windows Server 2012 R2 Standard x64, 8.3.10.2561 x86  - ошибка есть
Windows Server 2008 R2 Enterprise x64, 8.3.10.2505 x86  - ошибка есть
Ubuntu 14.04.05 LTS x64, 8.3.9.1850 x64 - ошибка есть
Windows 7 Pro x86, 8.3.8.2088 x86 - ошибка есть

В v8@1c.ru отослал, но у меня там несколько раз отклоняли баг-репорты под предлогами неуказания рег. номеров и прочей не относящейся к багу информации, так что не факт что не получу ответ вида "Сообщение не принято к рассмотрению и ссылка на него в дальнейшем не возможна". Поэтому публикую тут чтобы по поиску люди могли найти проблему.

Примерный код исправления ошибки (ИмяФайла - полный путь к файлу XLSX): 

//ИмяФайла - полный путь к файлу XLSX

ИмяПапки = КаталогВременныхФайлов()+"zip"+Формат(ТекущаяДата(),"ДФ=yyyyMMdd_hhmm");
СоздатьКаталог(ИмяПапки);
Архив = Новый ЧтениеZipФайла(ИмяФайла);
Архив.ИзвлечьВсе(ИмяПапки);
Архив.Закрыть();

УдалитьФайлы(ИмяФайла);

//корректировка ошибки 1С SharedStrings.xml
ФОшибки = Новый Файл(ИмяПапки+"\xl\SharedStrings.xml");
Если ФОшибки.Существует() Тогда
    ПереместитьФайл(ИмяПапки+"\xl\SharedStrings.xml",ИмяПапки+"\xl\sharedStrings.xml");
КонецЕсли;

Архив = Новый ЗаписьZipФайла(ИмяФайла);
Архив.Добавить(ИмяПапки+"\*.*",РежимСохраненияПутейZIP.СохранятьОтносительныеПути,РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
Архив.Записать();

УдалитьФайлы(ИмяПапки);

P.S. Пришел ответ от 1С:

Данная проблема исправлена начиная с версии 8.3.10.1515, для режимов совместимости 8.3.10 и выше - имя xml-компонента общих строк формируется с маленькой буквы: sharedStrings.xml В режиме совместимости с 8.3.9 остается старое поведение - имя xml-компонента общих строк формируется с большой буквы: SharedStrings.xml

Невалидный формат XLSX ТабличныйДокумент v8

См. также

SALE! 10%

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 9504 руб.

29.10.2014    210239    621    524    

439

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 11.12.2023, версия 9.5 - 9.9)

13200 руб.

20.11.2015    150756    365    375    

501

Маркетплейсный загрузчик для 12-ти маркетплейсов в "БП 3", "УТ 11", "КА 2", ERP, УНФ

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 Бухгалтерский учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы сделаете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, "Детский мир", Казань-Экспресс, "Леруа Мерлен", ЭНФАНТА (Акушерство), ЛаМода, Летуаль, "Твой дом" в документы "Отчет комиссионера (агента) о продажах" и другие, может работать в "Бухгалтерия 3", "Бухгалтерия 3 КОРП", УТ 11, УНФ, КА 2, ERP. Возможность подключить любые маркетплейсы. Анализ продаж ОЗОН. 30 дней БЕСПЛАТНОГО пользования!

1800 руб.

12.08.2021    31908    220    63    

118

Загрузка данных отчета о реализации товаров из Excel файла СберМегаМаркет

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Загрузка данных отчета о реализации товаров из сервиса СберМегаМаркет для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11 и Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".

4800 руб.

07.06.2022    15088    79    0    

60

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    101410    296    173    

312

SALE! 20%

Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы

Загрузка и выгрузка в Excel Оптовая торговля Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

5000 4000 руб.

09.11.2016    214968    923    886    

939
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. МихаилМ 21.10.17 12:54 Сейчас в теме
проще поправить экзешник (dll)
4. delat 30 13.02.23 14:32 Сейчас в теме
(1) МихаилМ а есть конкретное решение, что и где поправить
2. Armando 1399 21.10.17 15:44 Сейчас в теме
неуказания рег. номеров

Что мешает указать рег номер?
У меня для общения с v8 создан шаблон с кодом партнёра и рег номером.
3. saddy 5 24.10.17 19:36 Сейчас в теме
Ответ от разработчиков:

Данная проблема исправлена начиная с версии 8.3.10.1515, для режимов совместимости 8.3.10 и выше - имя xml-компонента общих строк формируется с маленькой буквы: sharedStrings.xml В режиме совместимости с 8.3.9 остается старое поведение - имя xml-компонента общих строк формируется с большой буквы: SharedStrings.xml
5. delat 30 11.09.23 12:00 Сейчас в теме
Актуально для режима совместимости ниже 8.3.10, перепаковка описанная в статье не помогла, PWBI не читает. Из ситуации вышли "COMОбъект("Excel.Application")" открываем и записываем по новой.
6. saddy 5 11.09.23 23:38 Сейчас в теме
(5) А у вас точно эта проблема - с регистром имени файла? Пришлите файл примера для интереса пожалуста.
Оставьте свое сообщение