Ошибка экспорта табличного документа документ word 2007 не может содержать более 63 колонок

Содержание

  1. Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download
  2. [MXL to XLS]
  3. Почему не получается использовать ТабличныйДокумент для работы с Excel?
  4. Проблема при сохранении табличного документа в файл xlsx
  5. Проблема при загрузке табличного документа из файла xlsx
  6. Ньюансы (различия) чтения методом OLE и ТабДок
  7. Проблема при выводе из 1С в Excel
  8. Почему не получается использовать ТабличныйДокумент для работы с Excel?
  9. Проблема при сохранении табличного документа в файл xlsx
  10. Проблема при загрузке табличного документа из файла xlsx
  11. Ньюансы (различия) чтения методом OLE и ТабДок

Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download

[MXL to XLS]

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

Источник

Почему не получается использовать ТабличныйДокумент для работы с Excel?

Одним из полезных нововведений на платформе 8.3.6 стала возможность возможность импорта содержимого из файлов в форматах XLS (Microsoft Excel 97), Microsoft Office OpenXML (Microsoft Excel 2007- 2010) и ODS (OpenDocument) в табличный документ.
На платформе 8.3.10 появилась возможность считывания данных с отдельных листов книги EXCEL.
Данная возможность доступна как в интерактивном режиме, так и из встроенного языка.
Реализована поддержка вставки из буфера обмена областей, скопированных из Microsoft Excel и OpenOffice Calc.
Реализация импорта из EXCEL на встроенном языке стала возможна в результате нововведений в функционал объекта «ТабличныйДокумент»:
Для метода «Прочитать» объекта «ТабличныйДокумент» реализован параметр «СпособЧтенияЗначений» (Новое системное перечисление «СпособЧтенияЗначенийТабличногоДокумента»). (с) Загрузка из EXCEL

Тип: СпособЧтенияЗначенийТабличногоДокумента.
Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.
При загрузке табличного документа из формата Excel 97 — 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра.
Значение по умолчанию: Текст.

Так вот. И в excel и в mxl ячейка может содержать значение и иметь формат представления. Проблема в том, что СКД при выводе значений в табличный документ выводит только представление…

Проблема при сохранении табличного документа в файл xlsx

Если в ячейке будет код номенклатуры с лидирующими нулями — при экспорте в эксель значение ячейки их обрежет,
например было «00246100» стало «246100»:

При этом в представлении всё верно…

И да, если переименовать xlsx в zip и открыть архиватором sheet1.xml — то там будет именно «246100».

Конечно, есть ещё вариант ручной установки значения ячейки таб. документа, и он работает.
На клиенте…

Но #НаСервере установка свойства СодержитЗначение приводит к очистке. И в справке про это ничего нет…

Для регламентных не годится.

Проблема при загрузке табличного документа из файла xlsx

При загрузке файла экселя, сформированного в других языках программирования, содержимое может вообще не прочитаться (если верить гуглу при поиске заголовков этого файла выдаёт Open XML SDK 2.5),
например:

В режиме предприятия (меню Файл — Открыть) это пустой таб. документ
с 1026 столбца…

Хотя в экселе файл открывается прекрасно:

Ньюансы (различия) чтения методом OLE и ТабДок

Часть кода для сравнения этих методов:

Я конечно буду рад ошибаться, но, по-моему, нативные средства платформы по работе с Excel совсем далекоооооо не всегда применимы на практике.

Источник

Проблема при выводе из 1С в Excel

Добрый день!
Предыстория: необходимо было сделать так, чтобы из 1С формировался отчет Excel на нескольких листах с сохранением форматирования (главным образом, группировок) табличного документа. Стандартный метод Записать табличного документа создает файл с 1 листом. Поэтому было сделано так: сначала командой Записать создавался файл Excel с необходимым листом, потом лист переносился в нужную книгу:

ПостроительОтчета.Вывести(ТабДок);
ТабДок.Записать(ИмяВременныхФайлов, ТипФайлаТабличногоДокумента.XLS97);
Ексель.Workbooks(ИмяКнигиБуфера).Sheets(ИмяЛистаБуфера).Copy(Ексель.Workbooks(ИмяКнигиОтчета).Sheets(ТекущееИмяЛистаШаблонаЭксель));

И это дело прекрасно работает до тех пор пока не появляется еще один процесс Excel: либо запущенный интерактивно, либо в случае одновременного формирования из 2-х сеансов 1С на одном компьютере отчетов в Excel.

Собственно проблема: при наличии 2-ух одновременно запущенных экселей стока

не выполняется, выводится ошибка:

Ошибка при вызове метода контекста (Workbooks): Произошла исключительная ситуация (0x8002000b)

Подскажите, что можно сделать

Есть правда другой вариант сохранения данных вместе с форматированием (группировками) — выделить все и скопировать. Но данный вариант реализовать не удалось — бала другая ошибка «Ошибка при вызове метода контекста (Select): Произошла исключительная ситуация (Microsoft Office Excel): Метод Select из класса Range завершен неверно» (подробнее могу описать при необходимости). Поэтому был применен метод копирования листа целиком.

А собственно суть задачи сводится к следующему: необходимо иметь возможность выводить из 1С многостраничные отчеты Excel с группировками, при том, делать это параллельно, чтобы можно было одновременно формировать 2 и более отчетов.

Источник

Почему не получается использовать ТабличныйДокумент для работы с Excel?

Одним из полезных нововведений на платформе 8.3.6 стала возможность возможность импорта содержимого из файлов в форматах XLS (Microsoft Excel 97), Microsoft Office OpenXML (Microsoft Excel 2007- 2010) и ODS (OpenDocument) в табличный документ.
На платформе 8.3.10 появилась возможность считывания данных с отдельных листов книги EXCEL.
Данная возможность доступна как в интерактивном режиме, так и из встроенного языка.
Реализована поддержка вставки из буфера обмена областей, скопированных из Microsoft Excel и OpenOffice Calc.
Реализация импорта из EXCEL на встроенном языке стала возможна в результате нововведений в функционал объекта «ТабличныйДокумент»:
Для метода «Прочитать» объекта «ТабличныйДокумент» реализован параметр «СпособЧтенияЗначений» (Новое системное перечисление «СпособЧтенияЗначенийТабличногоДокумента»). (с) Загрузка из EXCEL

Тип: СпособЧтенияЗначенийТабличногоДокумента.
Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.
При загрузке табличного документа из формата Excel 97 — 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра.
Значение по умолчанию: Текст.

Так вот. И в excel и в mxl ячейка может содержать значение и иметь формат представления. Проблема в том, что СКД при выводе значений в табличный документ выводит только представление.

Проблема при сохранении табличного документа в файл xlsx

Если в ячейке будет код номенклатуры с лидирующими нулями — при экспорте в эксель значение ячейки их обрежет,
например было «00246100» стало «246100»:

При этом в представлении всё верно.

И да, если переименовать xlsx в zip и открыть архиватором sheet1.xml — то там будет именно «246100».

Конечно, есть ещё вариант ручной установки значения ячейки таб. документа, и он работает.
На клиенте.

Но #НаСервере установка свойства СодержитЗначение приводит к очистке. И в справке про это ничего нет.

Для регламентных не годится.

Проблема при загрузке табличного документа из файла xlsx

При загрузке файла экселя, сформированного в других языках программирования, содержимое может вообще не прочитаться (если верить гуглу при поиске заголовков этого файла выдаёт Open XML SDK 2.5),
например:

В режиме предприятия (меню Файл — Открыть) это пустой таб. документ
с 1026 столбца.

Хотя в экселе файл открывается прекрасно:

Ньюансы (различия) чтения методом OLE и ТабДок

Часть кода для сравнения этих методов:

Я конечно буду рад ошибаться, но, по-моему, нативные средства платформы по работе с Excel совсем далекоооооо не всегда применимы на практике.

Источник

  

happysan

06.11.12 — 18:08

Выдаёт ошибку при заполнении шаблона word и формировании внешней печ формы документа:

Ошибка при установке значения атрибута контекста (Text)

   Find.Replacement.Text = СокрЛП(ТекстЗамены);

по причине:

Произошла исключительная ситуация (Microsoft Word): Слишком длинный строковый параметр.

Функция замены:

Функция WordFindReplace(ОбъектВорд, ТекстПоиска, ТекстЗамены)

   
ТекстПоиска = «@» + СокрЛП(ТекстПоиска) + «@»;

   

   wdReplaceAll = 2;

   wdFindContinue = 1;

   

   Find = ОбъектВорд.Content.Find;

   Find.Text = ТекстПоиска;

   Find.Replacement.Text = СокрЛП(ТекстЗамены);

   Find.Forward = True;

   Find.Wrap = wdFindContinue;

   Find.Format = False;

   Find.MatchCase = False;

   Find.MatchWholeWord = False;

   Find.MatchWildcards = False;

   Find.MatchSoundsLike = False;

   Find.MatchAllWordForms = False;    

               
   Find.Execute(, , , , , , , , , , wdReplaceAll)

КонецФункции

Как обойти проблему?

  

happysan

1 — 06.11.12 — 18:10

пробовал делить строку в цикле по 255 символов, но в итоге результат получается последний кусок текста из 255 символов.

  

IamAlexy

2 — 06.11.12 — 18:10

не очень понимаю смысла ворда когда табличный документ в формат майкрософтворда может быть успешно сохраненным..

  

happysan

3 — 06.11.12 — 18:11

вот замена в цикле:

   ТекстПоиска = «@» + СокрЛП(ТекстПоиска) + «@»;

   

   wdReplaceAll = 2;

   wdFindContinue = 1;

   

   Find = ОбъектВорд.Content.Find;

   Find.Text = ТекстПоиска;

   Если  СтрДлина(ТекстЗамены) > 255 Тогда

       

       ОстатокТекстаЗамены = СтрДлина(ТекстЗамены);    

       i = 1;

       Пока ОстатокТекстаЗамены > 255 Цикл

           ПорцияТекстаНаЗамену255 = Сред(ТекстЗамены, i, 255);        

           Find.Replacement.Text = СокрЛП(ПорцияТекстаНаЗамену255);

           i = i + 255;

           ОстатокТекстаЗамены = СтрДлина(ТекстЗамены) — i;

       КонецЦикла;

       

   КонецЕсли;

   //Find.Replacement.Text = СокрЛП(ТекстЗамены);

   Find.Forward = True;

   Find.Wrap = wdFindContinue;

   Find.Format = False;

   Find.MatchCase = False;

   Find.MatchWholeWord = False;

   Find.MatchWildcards = False;

   Find.MatchSoundsLike = False;

   Find.MatchAllWordForms = False;    

               
   Find.Execute(, , , , , , , , , , wdReplaceAll)

  

happysan

4 — 06.11.12 — 18:12

(2) каким образом?

  

acsent

5 — 06.11.12 — 18:12

(2) сам то пробовал хоть раз?

  

IamAlexy

6 — 06.11.12 — 18:12

(5) да.. более чем здорово.

раньше тоже заморачивался всякие трудовые через шаблоны ворда хреначить…

а результат тот же что и табличный документ сохраненный в нужном формате

  

alex-pro

7 — 06.11.12 — 18:13

Че-то очень сложно.

Я делал обработку по заполнению договора, с проблемами как в (0) не сталкивался…. могу поискать кусок кода

  

alex-pro

8 — 06.11.12 — 18:14

(6)Попробовал.

«Документ Word 2007 не может содержать более 63 колонок и 32767 строк»

  

hhhh

9 — 06.11.12 — 18:16

(3) так вы Find.Execute не включили в цикл. Чего издеваетесь?

  

happysan

10 — 06.11.12 — 18:16

(2) сохранять в формате html?

  

happysan

11 — 06.11.12 — 18:20

(9) если сразу сделать в цикле Find.Execute, то цикл один раз отработает и строка поиска затрётся

  

Живой Ископаемый

12 — 06.11.12 — 18:22

2(10) почему?

  

Живой Ископаемый

13 — 06.11.12 — 18:23

2(8) а для ворд-документа очень важно содержать 63 колонки и 32767 строк? Чтобы можно было наверное распечатать все это дело?

  

happysan

14 — 06.11.12 — 18:24

Может где-то в коде не хватает ПС?

  

happysan

15 — 06.11.12 — 18:25

(3)Может где-то в коде не хватает ПС?

  

acsent

16 — 06.11.12 — 18:26

Делай. Заменить(СтрокаПоиска, ТекстЗамены+СтрокаПоиска)

  

happysan

17 — 06.11.12 — 18:31

(16) применительно к моему коду в (3), можно продемонстрировать?

  

sttt

18 — 06.11.12 — 18:40

делать людям нечего…

  

happysan

19 — 06.11.12 — 18:43

(16)у объекта word нет такого метода

  

Живой Ископаемый

20 — 06.11.12 — 18:45

2(19) поэтому его и не использууют.

а используют только те кто знает как пользоваться find и replace

  

happysan

21 — 06.11.12 — 18:47

(20) ну подсказывайте, коль есть способ решить проблему

  

acsent

22 — 06.11.12 — 18:48

(17) ну ты совсем обнаглел.

-Вы что и есть за меня будете?

-Ага!

  

Живой Ископаемый

23 — 06.11.12 — 18:49

в 2 и 5 подсказали

  

happysan

24 — 06.11.12 — 18:53

(22) не думаю, просто, этот кусок кода какая-то абстракция в данном случае.

  

Живой Ископаемый

25 — 06.11.12 — 18:58

надо думать.. если не думать, то ничего не получится.

  

happysan

26 — 06.11.12 — 19:02

вообщем, решений, не меняя принцип формирования печатной формы, нет?

  

zladenuw

27 — 06.11.12 — 19:18

c.Find.Execute

   While c.Find.Found

       Debug.Print c.Text

       ‘~~> I am assuming that the start word and the end word will only

       ‘~~> be in the start and end respectively and not in the middle

       Debug.Print Replace(Replace(c.Text, StartWord, «»), EndWord, «»)

       c.Find.Execute

   Wend

  

KAO111

28 — 06.11.12 — 20:13

  

happysan

29 — 07.11.12 — 10:44

вообщем сделал так:

   ТекстПоиска = «@» + СокрЛП(ТекстПоиска) + «@»;

   

   wdReplaceAll = 2;

   wdFindContinue = 1;

   

   Find = ОбъектВорд.Content.Find;

   Если  СтрДлина(ТекстЗамены) > 231 Тогда

       

       ОстатокТекстаЗамены = СтрДлина(ТекстЗамены);    

       i = 1;

       

       Пока ОстатокТекстаЗамены > 231 Цикл

           ПорцияТекстаНаЗамену255 = Сред(ТекстЗамены, i, 231);        

           Find.Forward = True;

           Find.Wrap = wdFindContinue;

           Find.Format = False;

           Find.MatchCase = False;

           Find.MatchWholeWord = False;

           Find.MatchWildcards = False;

           Find.MatchSoundsLike = False;

           Find.MatchAllWordForms = False;    

           

           Find.Execute(ТекстПоиска, , , , , , , , ,СокрЛП(ПорцияТекстаНаЗамену255) + ТекстПоиска, wdReplaceAll);

           i = i + 231;

           ОстатокТекстаЗамены = СтрДлина(ТекстЗамены) — i;

       КонецЦикла;

       

   КонецЕсли;

осталось перенести в word перевод строки как изначально в строке замены, как это можно организовать?

  

happysan

30 — 07.11.12 — 10:54

Как из 1с скомандовать word, чтобы он перенёс строку?

  

happysan

31 — 07.11.12 — 11:04

получилось:

   ТекстПоиска = «@» + СокрЛП(ТекстПоиска) + «@»;

   

   wdReplaceAll = 2;

   wdFindContinue = 1;

   
   Find = ОбъектВорд.Content.Find;

   

   ОстатокТекстаЗамены = СтрДлина(ТекстЗамены);    

   i = 1;

   
   Для Счетчик = 1 По СтрЧислоСтрок(ТекстЗамены) Цикл

       

       ТекСтрока = СтрПолучитьСтроку(ТекстЗамены, Счетчик);

       Find.Forward = True;

       Find.Wrap = wdFindContinue;

       Find.Format = False;

       Find.MatchCase = False;

       Find.MatchWholeWord = False;

       Find.MatchWildcards = False;

       Find.MatchSoundsLike = False;

       Find.MatchAllWordForms = False;    

       

       Если Счетчик = СтрЧислоСтрок(ТекстЗамены) Тогда

           Find.Execute(ТекстПоиска, , , , , , , , ,»» + СокрЛП(ТекСтрока), wdReplaceAll);

       Иначе

           Find.Execute(ТекстПоиска, , , , , , , , ,СокрЛП(ТекСтрока) + Символ(13)+Символ(10) + ТекстПоиска, wdReplaceAll);

       КонецЕсли;

   

   КонецЦикла;

теперь осталось организовать отступы абзацев, если кто в курсе подсказывайте, буду признателен.

  

mikecool

32 — 07.11.12 — 11:09

(31) поиск в гугле «Объектная модель Word» спасет отца русской демократии

  

happysan

33 — 07.11.12 — 12:18

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

Выдаёт ошибку при заполнении шаблона word и формировании внешней печ формы документа: Ошибка при установке значения атрибута контекста (Text)    Find.Replacement.Text = СокрЛП(ТекстЗамены); по причине: Произошла исключительная ситуация (Microsoft Word): Слишком длинный строковый параметр. Функция замены: Как обойти проблему?

пробовал делить строку в цикле по 255 символов, но в итоге результат получается последний кусок текста из 255 символов.

не очень понимаю смысла ворда когда табличный документ в формат майкрософтворда может быть успешно сохраненным..

сам то пробовал хоть раз?

да.. более чем здорово. раньше тоже заморачивался всякие трудовые через шаблоны ворда хреначить… а результат тот же что и табличный документ сохраненный в нужном формате

Че-то очень сложно. Я делал обработку по заполнению договора, с проблемами как в не сталкивался…. могу поискать кусок кода

Попробовал. «Документ Word 2007 не может содержать более 63 колонок и 32767 строк»

так вы Find.Execute не включили в цикл. Чего издеваетесь?

сохранять в формате html?

если сразу сделать в цикле Find.Execute, то цикл один раз отработает и строка поиска затрётся

2 а для ворд-документа очень важно содержать 63 колонки и 32767 строк? Чтобы можно было наверное распечатать все это дело?

Может где-то в коде не хватает ПС?

Может где-то в коде не хватает ПС?

Делай. Заменить(СтрокаПоиска, ТекстЗамены+СтрокаПоиска)

применительно к моему коду в , можно продемонстрировать?

у объекта word нет такого метода

2 поэтому его и не использууют. а используют только те кто знает как пользоваться find и replace

ну подсказывайте, коль есть способ решить проблему

ну ты совсем обнаглел. -Вы что и есть за меня будете? -Ага!

не думаю, просто, этот кусок кода какая-то абстракция в данном случае.

надо думать.. если не думать, то ничего не получится.

вообщем, решений, не меняя принцип формирования печатной формы, нет?

Debug.Print c.Text        ‘~~> I am assuming that the start word and the end word will only        ‘~~> be in the start and end respectively and not in the middle        Debug.Print Replace(Replace(c.Text, StartWord, «»), EndWord, «»)        c.Find.Execute    Wend

вообщем сделал так:    КонецЕсли; осталось перенести в word перевод строки как изначально в строке замены, как это можно организовать?

Как из 1с скомандовать word, чтобы он перенёс строку?

получилось:    КонецЦикла; теперь осталось организовать отступы абзацев, если кто в курсе подсказывайте, буду признателен.

поиск в гугле «Объектная модель Word» спасет отца русской демократии

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

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Автор magnifico61, 31 мая 2018, 16:55

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

При сохранении табличного документа в Word вылетает ошибка
«Превышена допустимая ширина документа word 2007»

в одном макете есть Таблица шириной 49 колонок.

Как обойти данную ошибку?




Уменьшить ширину документа.



Руками. Клавиатурой, мышкой и прочими устройствами ввода. Добейся, чтобы док влазил при печати на лист А4 БЕЗ автомасштаба.


это невозможно сделать, так как очень большое количество макетов и они сохраняются в разные форматы (xlsx, pdf) и проблема только с word.

Нужно решить эту проблему другим способом, не прибегая к редактированию макета

Добавлено: 01 июн 2018, 13:44


Или как вариант вывести табличный документ в ворд через com.
Может кто знает как это сделать?



Плоские шутки для третьеклассников оставь при себе.
лучше бы помог, чем всякий мусор писал


magnifico61,
Без тебя разберусь, чем мне тут заниматься.
И я уже помог. Но тебе надо родить за 2 месяца.


Теги:

  • Форум База

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Сохранение табличного документа в Word

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

Рейтинг@Mail.ru

Rambler's Top100

Поиск

Сообщение об ошибке «Документ не сохранен» может появиться при попытке сохранить файл Excel. Хотите знать, каковы причины проблемы? Как исправить ошибку и как восстановить несохраненные файлы Excel? Вот ответы.

Последнее обновление: апрель, 4th, 2019, Ian McEwan

специалист

Мнение эксперта

Витальева Анжела, консультант по работе с офисными программами

Со всеми вопросами обращайтесь ко мне!

Задать вопрос эксперту

Еще проблема листы, у которых ориентация ландшафт широкие и при сохранении в ворд, получаю ошибку Ошибка экспорта табличного документа Превышена допустимая ширина документа Word 2007 А ворде параметр — по ширине листа не рабоает FitToPagesWide. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!

Использование
=============
Переключитесь на табличный документ 1С, который требуется сохранить в Excel, и нажмите на созданную в Конфигураторе кнопку. В открывшейся форме укажите, куда следует сохранить табличный документ и нажмите кнопку «Сохранить».

Загрузка данных в табличную часть документа из Excel — 1с-просто

  • Снова откройте Excel и перейдите в «Файл».
  • Выберите «Открыть», а затем «Последние книги».
  • Здесь вы увидите список недавно сохраненных книг. Прокрутите вниз до конца, найдите «Восстановить несохраненные книги» и щелкните по нему.
  • Появится диалоговое окно со списком несохраненных файлов Excel. Найдите нужный файл и откройте его.
  • Теперь ваш файл откроется в Excel, и Excel попросит вас сохранить его. Нажмите «Сохранить как» и сохраните файл в желаемом месте.

Примечание. Все методы, упомянутые выше, предназначены для того, чтобы помочь вам получить пригодную для использования предыдущую версию файла. Однако все последние изменения, набор функций и форматирование книги Excel не сохранены.

Добавьте стандартный шрифт ко всем ячейкам и удалите цвета заливки

Однако очистка всех форматов листа может быть немного радикальным решением. Если вы предпочитаете сохранить часть форматирования в электронной таблице, лучше исправить уменьшение количества уникальных форматов ячеек. Один из лучших способов сделать это – добавить стандартизированный шрифт в электронную таблицу, чтобы все ячейки имели одинаковый шрифт.

Кроме того, удаление всех отдельных цветов заливки на листе Excel также может уменьшить количество уникальных форматов ячеек. Следуйте приведенным ниже инструкциям, чтобы стандартизировать шрифт листа и заполнить форматирование цвета.

Ошибка Экспорта Табличного Документа Документ Excel 97 не Может Содержать Более 256 Колонок • Проверка разрешений

Ошибка Экспорта Табличного Документа Документ Excel 97 не Может Содержать Более 256 Колонок • Проверка разрешений

  • Выберите параметр Без заливки , чтобы удалить все цвета заливки из электронной таблицы. Тогда все ячейки электронной таблицы будут иметь один и тот же шрифт и не будут включать какое-либо форматирование цвета заливки.

Исправить ошибки в документе Excel и сохранить несохраненные файлы Excel

Примечание. Все методы, упомянутые выше, предназначены для того, чтобы помочь вам получить пригодную для использования предыдущую версию файла. Однако все последние изменения, набор функций и форматирование книги Excel не сохранены.

специалист

Мнение эксперта

Витальева Анжела, консультант по работе с офисными программами

Со всеми вопросами обращайтесь ко мне!

Задать вопрос эксперту

Прерывание этого процесса приведет к ошибке Документ не сохранен и к тому, что один или несколько временных файлов Excel будут в папке назначения, куда вы пытаетесь сохранить. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!

Этот метод также работает со встроенной функцией Excel. Каждый раз, когда вы сохраняете файл в Excel, он также создает временный файл в том месте, которое вы указали в диалоговом окне «Сохранить как». Теперь, если ваш Excel перестает работать на полпути и аварийно закрывается, вы можете восстановить файл Excel с помощью этого временного файла.
Ошибка Экспорта Табличного Документа Документ Excel 97 не Может Содержать Более 256 Колонок • Проверка разрешений

Как исправить ошибку Microsoft Excel «Слишком много разных форматов ячеек»

  • Самый простой способ исправить ошибку « Слишком много разных форматов ячеек » – это очистить все ячейки электронной таблицы. Для этого нажмите сочетание клавиш Ctrl + A, чтобы выделить все ячейки в электронной таблице.
  • Выберите вкладку «Главная», показанную ниже.

Если сталкиваетесь с сообщением при сохранении на внешний накопитель, то, возможно поврежден или возникли проблемы с USB портом. Попробуйте переключить устройство в другой USB порт и повторить попытку.

Проверка разрешений

Во многих случаях ошибка возникает при сохранении файла Excel в каталог, на который у текущего пользователя нет полного доступа. Каждая папка имеет свои разрешения, которые обычно предоставляются администратором (или владельцем). Доступ к системным каталогам ограничивается встроенной учетной записью. Также администратор может намерено изменить разрешения на пользовательские папки.

Для изменения разрешений нужно войти в Windows под учетной записью администратора, чтобы предоставить доступ обычному пользователю.

В проводнике (Win + E) перейдите в папку, в которую пытаетесь записать документ. Сделайте шаг назад и откройте каталог, в котором вложена эта папка. Щелкните на ней правой кнопкой мыши и выберите Свойства.

На вкладке Безопасность кликните на кнопку Дополнительно.

В окне дополнительных параметров безопасности нажмите на «Изменить». Здесь изменим владельца этой папки на учетную запись пользователя.

Нажмите на Дополнительно, затем на кнопку «Найти». Отобразится список, состоящий из всех групп пользователей. Найдите свою учетную запись и кликните на «ОК». В следующем окне нажмите на «ОК».

Отметьте флажком опцию «Заменить владельца подконтейнеров и объектов», чтобы вложенные каталоги изменили принадлежность. Таким образом, не придется выполнять весь процесс повторно для существующих подкаталогов.

Нажмите «Применить» и выйдите из окна свойств. Снова откройте вкладку Безопасность и щелкните на «Дополнительно».

Отобразится окно выбора пользователей и групп. Щелкните на Дополнительно, затем на кнопку Найти. Укажите учетную запись и сохраните изменения.

Отметьте флажком опцию полного контроля и кликните на «ОК».

Отметьте флажком строку «Заменить все записи разрешений дочернего объекта наследуемыми» и кликните на «Применить».

После выполнения шагов появится полный доступ к каталогу, в который хотите сохранить таблицу.

специалист

Мнение эксперта

Витальева Анжела, консультант по работе с офисными программами

Со всеми вопросами обращайтесь ко мне!

Задать вопрос эксперту

Для этого создайте новую таблицу Excel, затем вернитесь к документу, который не сохраняется, выделите все содержимое и скопируйте нажатием на Ctrl C. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!

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

Ошибка Экспорта Табличного Документа Документ Excel 97 не Может Содержать Более 256 Колонок

  1. Проблемы с оборудованием. Ошибка может возникнуть при сохранении на флешку или внешний жесткий диск, которые частично повреждены или файл не записывается из-за неполадок порта USB.
  2. Нестабильное подключение по сети. Если сохраняете таблицу Excel через интернет, возникают случаи, когда из-за нестабильного соединения доступ к общей папке прерывается.
  3. Отсутствуют разрешения на папку. Проблема возникает при сохранении документа в каталог, на который у пользователя нет разрешения на запись.

Ну и, как полагается, еще совсем зеленым я не особо понимал что и как делается.
Так что, если кто-то из Вас только начинает погружаться в удивительный мир возможностей 1С, знайте, у Вас все впереди!
Ничего страшного в незнании чего-либо НЕТ! Всегда можно найти ответ на любой вопрос и решить практически любую задачу!

Мы используем Jasper Report 6.1.0 или 5.6.0 jar, но не можем найти ответа на него

JasperPrint jasperPrint=JasperFillManager.fillReport(sourceFileName, parameters, new JREmptyDataSource());
System.out.println("started bossssssssssssssssss");
JRDocxExporter exporter = new JRDocxExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
File exportReportFile = new File("/home/ist-140/filename.docx");
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(exportReportFile));
// exporter.setParameter(JRDocxExporterParameter.JASPER_PRINT, jasperPrint);
exporter.exportReport();

Ошибка:

net.sf.jasperreports.engine.JRException: The DOCX format does not support more than 63 columns in a table

Для 63 столбцов в пределе таблицы, какое из следующих значений истинно:

    его ограничение в формате файла /spec его ограничение в некоторых/всех версиях Word его ограничение Джаспера

Содержание

  1. Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download
  2. [MXL to XLS]
  3. Почему не получается использовать ТабличныйДокумент для работы с Excel?
  4. Проблема при сохранении табличного документа в файл xlsx
  5. Проблема при загрузке табличного документа из файла xlsx
  6. Ньюансы (различия) чтения методом OLE и ТабДок
  7. Проблема при выводе из 1С в Excel
  8. Почему не получается использовать ТабличныйДокумент для работы с Excel?
  9. Проблема при сохранении табличного документа в файл xlsx
  10. Проблема при загрузке табличного документа из файла xlsx
  11. Ньюансы (различия) чтения методом OLE и ТабДок

Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download

[MXL to XLS]

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

Источник

Почему не получается использовать ТабличныйДокумент для работы с Excel?

Одним из полезных нововведений на платформе 8.3.6 стала возможность возможность импорта содержимого из файлов в форматах XLS (Microsoft Excel 97), Microsoft Office OpenXML (Microsoft Excel 2007- 2010) и ODS (OpenDocument) в табличный документ.
На платформе 8.3.10 появилась возможность считывания данных с отдельных листов книги EXCEL.
Данная возможность доступна как в интерактивном режиме, так и из встроенного языка.
Реализована поддержка вставки из буфера обмена областей, скопированных из Microsoft Excel и OpenOffice Calc.
Реализация импорта из EXCEL на встроенном языке стала возможна в результате нововведений в функционал объекта «ТабличныйДокумент»:
Для метода «Прочитать» объекта «ТабличныйДокумент» реализован параметр «СпособЧтенияЗначений» (Новое системное перечисление «СпособЧтенияЗначенийТабличногоДокумента»). (с) Загрузка из EXCEL

Тип: СпособЧтенияЗначенийТабличногоДокумента.
Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.
При загрузке табличного документа из формата Excel 97 — 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра.
Значение по умолчанию: Текст.

Так вот. И в excel и в mxl ячейка может содержать значение и иметь формат представления. Проблема в том, что СКД при выводе значений в табличный документ выводит только представление…

Проблема при сохранении табличного документа в файл xlsx

Если в ячейке будет код номенклатуры с лидирующими нулями — при экспорте в эксель значение ячейки их обрежет,
например было «00246100» стало «246100»:

При этом в представлении всё верно…

И да, если переименовать xlsx в zip и открыть архиватором sheet1.xml — то там будет именно «246100».

Конечно, есть ещё вариант ручной установки значения ячейки таб. документа, и он работает.
На клиенте…

Но #НаСервере установка свойства СодержитЗначение приводит к очистке. И в справке про это ничего нет…

Для регламентных не годится.

Проблема при загрузке табличного документа из файла xlsx

При загрузке файла экселя, сформированного в других языках программирования, содержимое может вообще не прочитаться (если верить гуглу при поиске заголовков этого файла выдаёт Open XML SDK 2.5),
например:

В режиме предприятия (меню Файл — Открыть) это пустой таб. документ
с 1026 столбца…

Хотя в экселе файл открывается прекрасно:

Ньюансы (различия) чтения методом OLE и ТабДок

Часть кода для сравнения этих методов:

Я конечно буду рад ошибаться, но, по-моему, нативные средства платформы по работе с Excel совсем далекоооооо не всегда применимы на практике.

Источник

Проблема при выводе из 1С в Excel

Добрый день!
Предыстория: необходимо было сделать так, чтобы из 1С формировался отчет Excel на нескольких листах с сохранением форматирования (главным образом, группировок) табличного документа. Стандартный метод Записать табличного документа создает файл с 1 листом. Поэтому было сделано так: сначала командой Записать создавался файл Excel с необходимым листом, потом лист переносился в нужную книгу:

ПостроительОтчета.Вывести(ТабДок);
ТабДок.Записать(ИмяВременныхФайлов, ТипФайлаТабличногоДокумента.XLS97);
Ексель.Workbooks(ИмяКнигиБуфера).Sheets(ИмяЛистаБуфера).Copy(Ексель.Workbooks(ИмяКнигиОтчета).Sheets(ТекущееИмяЛистаШаблонаЭксель));

И это дело прекрасно работает до тех пор пока не появляется еще один процесс Excel: либо запущенный интерактивно, либо в случае одновременного формирования из 2-х сеансов 1С на одном компьютере отчетов в Excel.

Собственно проблема: при наличии 2-ух одновременно запущенных экселей стока

не выполняется, выводится ошибка:

Ошибка при вызове метода контекста (Workbooks): Произошла исключительная ситуация (0x8002000b)

Подскажите, что можно сделать

Есть правда другой вариант сохранения данных вместе с форматированием (группировками) — выделить все и скопировать. Но данный вариант реализовать не удалось — бала другая ошибка «Ошибка при вызове метода контекста (Select): Произошла исключительная ситуация (Microsoft Office Excel): Метод Select из класса Range завершен неверно» (подробнее могу описать при необходимости). Поэтому был применен метод копирования листа целиком.

А собственно суть задачи сводится к следующему: необходимо иметь возможность выводить из 1С многостраничные отчеты Excel с группировками, при том, делать это параллельно, чтобы можно было одновременно формировать 2 и более отчетов.

Источник

Почему не получается использовать ТабличныйДокумент для работы с Excel?

Одним из полезных нововведений на платформе 8.3.6 стала возможность возможность импорта содержимого из файлов в форматах XLS (Microsoft Excel 97), Microsoft Office OpenXML (Microsoft Excel 2007- 2010) и ODS (OpenDocument) в табличный документ.
На платформе 8.3.10 появилась возможность считывания данных с отдельных листов книги EXCEL.
Данная возможность доступна как в интерактивном режиме, так и из встроенного языка.
Реализована поддержка вставки из буфера обмена областей, скопированных из Microsoft Excel и OpenOffice Calc.
Реализация импорта из EXCEL на встроенном языке стала возможна в результате нововведений в функционал объекта «ТабличныйДокумент»:
Для метода «Прочитать» объекта «ТабличныйДокумент» реализован параметр «СпособЧтенияЗначений» (Новое системное перечисление «СпособЧтенияЗначенийТабличногоДокумента»). (с) Загрузка из EXCEL

Тип: СпособЧтенияЗначенийТабличногоДокумента.
Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.
При загрузке табличного документа из формата Excel 97 — 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра.
Значение по умолчанию: Текст.

Так вот. И в excel и в mxl ячейка может содержать значение и иметь формат представления. Проблема в том, что СКД при выводе значений в табличный документ выводит только представление.

Проблема при сохранении табличного документа в файл xlsx

Если в ячейке будет код номенклатуры с лидирующими нулями — при экспорте в эксель значение ячейки их обрежет,
например было «00246100» стало «246100»:

При этом в представлении всё верно.

И да, если переименовать xlsx в zip и открыть архиватором sheet1.xml — то там будет именно «246100».

Конечно, есть ещё вариант ручной установки значения ячейки таб. документа, и он работает.
На клиенте.

Но #НаСервере установка свойства СодержитЗначение приводит к очистке. И в справке про это ничего нет.

Для регламентных не годится.

Проблема при загрузке табличного документа из файла xlsx

При загрузке файла экселя, сформированного в других языках программирования, содержимое может вообще не прочитаться (если верить гуглу при поиске заголовков этого файла выдаёт Open XML SDK 2.5),
например:

В режиме предприятия (меню Файл — Открыть) это пустой таб. документ
с 1026 столбца.

Хотя в экселе файл открывается прекрасно:

Ньюансы (различия) чтения методом OLE и ТабДок

Часть кода для сравнения этих методов:

Я конечно буду рад ошибаться, но, по-моему, нативные средства платформы по работе с Excel совсем далекоооооо не всегда применимы на практике.

Источник

  • Ошибка эквайринга 4134 терминал
  • Ошибка экспорта ошибка компиляции фильма ошибка экспорта ошибка при выполнении рендеринга
  • Ошибка эквайринг сбербанк 4134
  • Ошибка экспорта ошибка компиляции фильма ошибка экспорта не удалось создать кодировщика
  • Ошибка эгур форд фокус 2