Имя: Пароль:
1C
1С v8
1С 8.2. Word Application
0 maker1992
 
30.07.18
12:48
Здравствуйте.

Проблема с работой c вордом через Ком-объект.
В 1С открываю шаблон документа через ком, в котором есть несколько таблиц. Я программно заполняю одну из них, и после того, как уже в таблице накопилось 3 тысячи строк, с объектом, который представляет из себя документ, что то происходит - все его методы перестают работать, он как будто вылетает, хотя запись в таблицу продолжается, но уже сохранить документ не удастся, т. к. методы не доступны.
Я пробовал заполнять таблицу путем добавления пустых строчек - тогда все нормально. Пробовал разбивать на несколько таблиц, но это уже не работает. Сделал вывод, что ошибка выскакивает при превышении в документе какого то ограничения на объем данных. Попробовал вручную сформировать в ворде такуюже таблицу - все нормально, файл занимает где то 1,5 мб.

Как решить эту проблему?
1 Скиурус
 
30.07.18
12:51
разбей на несколько таблиц
2 maker1992
 
30.07.18
12:51
(1) Пробовал, не помогает.
3 ptiz
 
30.07.18
12:54
(0) "Я программно заполняю одну из них" - код покажи.
"Я пробовал заполнять таблицу путем добавления пустых строчек - тогда все нормально" - и этот код покажи. Или речь про добавление руками?
4 maker1992
 
30.07.18
12:54
(3) 5 минут
5 Скиурус
 
30.07.18
12:55
(2) Сохраняй документ, закрывай, открывай заново после каждой таблицы
6 maker1992
 
30.07.18
12:56
Код:

СтрокаВордСледующая = ТаблицаВорд.Rows.Add();
СтрокаВорд = СтрокаВордСледующая.Previous;
СтрокаВордRange = СтрокаВорд.Range;
СтрокаВордRange.Cells(1).Range.Text = Пар_1;
СтрокаВордRange.Cells(2).Range.Text = Пар_2;
СтрокаВордRange.Cells(3).Range.Text = Пар_3;
СтрокаВордRange.Cells(4).Range.Text = Пар_4;

Код добавления пустых строк:

СтрокаВордСледующая = ТаблицаВорд.Rows.Add();
СтрокаВорд = СтрокаВордСледующая.Previous;
СтрокаВордRange = СтрокаВорд.Range;
7 maker1992
 
30.07.18
12:57
(5) Попробую этот вариант
8 olegves
 
30.07.18
14:07
(0) стесняюсь спросить, а почему не Эксель?
9 maker1992
 
30.07.18
15:08
(8) Хочу вывести таблицу в несколько колонок
10 ptiz
 
30.07.18
15:13
(6) Т.е. разница только в параметрах?
Я бы вставил Сообщить(Пар_1) и т.п. - посмотреть на чем спотыкается.
11 Скиурус
 
30.07.18
15:19
(10) Спотыкается скорее всего на объеме массива, превышающем 64 килобайта.
12 ptiz
 
31.07.18
09:14
(7) Получилось что-нибудь?
Я ради эксперимента пробую создать большую таблицу - с каждой строкой всё медленнее и медленнее добавляются. Как бы еще скорость увеличить?
13 maker1992
 
31.07.18
10:09
(12) Нет, это не работает. Пока не нашел решение.
14 Сияющий в темноте
 
31.07.18
10:15
не понял,а previous зачем делать?
добавили строку,фигачим в нее массив данных через Range и пошли дальше.

А по сути,если в Word вручную набить много данных,то он тупо падает,в отличие от ексель,которая одна ил луших программ от мелкомягких,Word этим званием похвастаться не может.
15 maker1992
 
31.07.18
10:15
(11) А можно по-подробнее про массив?
16 maker1992
 
31.07.18
10:20
(14) По логике программы так требуется: я в некоторых строках объединяю ячейки и форматирую, и если после объединения добавить строку, то она тоже добавиться объединенной, а мне нужно как обычно - с ячейками.
А через privies я объединяю предпоследнюю строку, а последняя остаются нетронутой.

В моем документе должно быть примерно 150 страниц, вручную пробовал заполнять - все нормально, не вылетает.
17 maker1992
 
31.07.18
10:22
Если бы вывод шел в одну колонку, то ексель бы подошел, а в две уже нет, только ворд.