Здравствуйте, форумчане. Возникла такая проблема. Подключаюсь к базе с помощью ComConnector. В этой базе при переборе строк табличной части документа возникает бесконечный цикл, хотя в табличной части только одна строка. Подскажите, пожалуйста, как можно это решить. Код прилагается:
&НаСервере
Процедура ВыполнитьНаСервере()
OLEБаза = Новый COMОбъект("V83.ComConnector");
Попытка
Если СерверныйВариант Тогда
OLEСоединение = OLEБаза.Connect("Srvr = """+СокрЛП(ИмяСервера)+""";Ref = """+СокрЛП(ИмяБазы)+""";Usr = """+СокрЛП(Пользователь)+""";Pwd = """ + СокрЛП(Пароль) + """;");
Иначе
OLEСоединение = OLEБаза.Connect("File = """+СокрЛП(ПутьКбазе)+""";Usr = """+СокрЛП(Пользователь)+""";Pwd = """ + СокрЛП(Пароль) + """;");
КонецЕсли;
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Для ц = 0 По СписокВидовДокументов.Количество()-1 Цикл
ЭлементСпискаВидовДокументов = СписокВидовДокументов.Получить(ц);
Если ЭлементСпискаВидовДокументов.Пометка Тогда
ВидДокумента = ЭлементСпискаВидовДокументов.Значение;
OLEДокументы = OLEСоединение.Документы[ВидДокумента].Выбрать(Период.ДатаНачала,Период.ДатаОкончания);
//OLEДокументы = Документы.ПоступлениеТоваровУслуг.Выбрать(Период.ДатаНачала,Период.ДатаОкончания);
Пока OLEДокументы.Следующий() Цикл
Сообщить("Вид документа: "+ВидДокумента+", идентификатор: "+OLEДокументы.Ссылка.УникальныйИдентификатор());
Для Каждого Реквизит Из OLEДокументы.Ссылка.Метаданные().Реквизиты Цикл
Сообщить(Символы.Таб+"Имя реквизита: "+Реквизит.Имя);
Сообщить(Символы.Таб+Символы.Таб+"Значение реквизита: "+Реквизит);
КонецЦикла;
Для ц = 0 По OLEДокументы.Ссылка.Метаданные().ТабличныеЧасти.Количество()-1 Цикл
ТабличнаяЧасть = OLEДокументы.Ссылка.Метаданные().ТабличныеЧасти.Получить(ц);
ИмяТабличнойЧасти = ТабличнаяЧасть.Name;
//Для й = 0 По OLEДокументы[ИмяТабличнойЧасти].Количество()-1 Цикл
Для Каждого ТекущаяСтрока Из OLEДокументы[ИмяТабличнойЧасти] Цикл
РеквизитыТабличнойЧасти = OLEДокументы.Ссылка.Метаданные().ТабличныеЧасти[ИмяТабличнойЧасти].Реквизиты;
Для Каждого РеквизитТабличнойЧасти Из РеквизитыТабличнойЧасти Цикл
Сообщить(Символы.Таб+"Имя реквизита табличной части: "+РеквизитТабличнойЧасти.Имя);
Сообщить(Символы.Таб+Символы.Таб+"Значение реквизита табличной части: "+РеквизитТабличнойЧасти);
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший