|
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
|
Если бы вывод шел в одну колонку, то ексель бы подошел, а в две уже нет, только ворд.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |