При выводе в excel таблицы, которая умещается на одном листе, проблем нет. Но если таблица содержит больше 65536 строк, то выводятся только 65536 строк, остальные обрезаются. (MS EXCEL 2003). Я решил сам разбить таблицу на части и вывести ее на нескольких листах по частям. Но, поскольку я использую один табличный документ, в результате у меня получается на всех листах одинаковая информация, точнее последий лист. (При формировании следующего листа, его содержимое сохраняется и во всех предыдущих листах) Я написал обработку, в которую в качестве параметра передается таблица для вывода в excel. В обработке для проверки я установил вывод 100 строк таблицы на один лист. Текст процедуры приведен ниже. Что нужно сделать, чтобы на каждом листе выводилась своя информация? Что я сделал не так? Спасибо.
Процедура Выполнить()
Таб=Форма.Параметр;
Конвертер = СоздатьОбъект ("КонвертерExcel");
гКнига = Конвертер.Создать ();
Параметры=гКнига.ПараметрыКонвертера;
Параметры.РаспознаватьЧисловыеЗначения = 1;
Параметры.ЧислаВыравненыПоПравомуКраю = 1;
ТД = СоздатьОбъект ("ТабличныйДокумент");
ТД.ЗагрузитьИзТаблицы(Таб);
КолС=ТД.ВысотаТаблицы(); //Общее количество строк в таблице
гКнига.Листы.Очистить();
Если КолС<=100 Тогда // Если умещается на одном листе
гКнига.Листы.Добавить("Лист 1",ТД);
гКнига.Записать(ИмяФайла);
Иначе
НачС=1; // начальный
КонС=100; // и конечный номера строк диапазона для вывода
НомЛ=1; // Номер текущего листа книги
Пока 1=1 Цикл
Если КонС<КолС Тогда
ТД.УдалитьСтроки(КонС+1,КолС-КонС); //Удаляем ненужные строки в конце
КонецЕсли;
Если НачС>1 Тогда
ТД.УдалитьСтроки(1,НачС-1); //Удаляем ненужные строки в начале
КонецЕсли;
ИмяЛ="Лист "+СокрЛП(Строка(НомЛ));
гКнига.Листы.Добавить(ИмяЛ,ТД); //Добавляется лист с текущим содержимым ТД
Номл=НомЛ+1;
Если КонС<КолС Тогда //Еще есть строки для вывода
ТД.Очистить();
ТД.ЗагрузитьИзТаблицы(Таб);//Снова загружаем всю таблицу
НачС=КонС+1; //Изменяем диапазон вывода строк для следующего листа
КонС=КонС+100;
Если КонС>КолС Тогда
КонС=КолС; //Если будет последний лист
КонецЕсли;
Иначе //Больше строк нет
Прервать;
КонецЕсли;
КонецЦикла;
гКнига.Записать(ИмяФайла);
КонецЕсли;
КонецПроцедуры