![]() |
|
Бесконечный цикл при работе через OLE | ☑ | ||
---|---|---|---|---|
0
fdv_83
29.02.16
✎
12:26
|
Здравствуйте, форумчане. Возникла такая проблема. Подключаюсь к базе с помощью 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Документы.Ссылка.Метаданные().ТабличныеЧасти[ИмяТабличнойЧасти].Реквизиты; Для Каждого РеквизитТабличнойЧасти Из РеквизитыТабличнойЧасти Цикл Сообщить(Символы.Таб+"Имя реквизита табличной части: "+РеквизитТабличнойЧасти.Имя); Сообщить(Символы.Таб+Символы.Таб+"Значение реквизита табличной части: "+РеквизитТабличнойЧасти); КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
1
Tateossian
29.02.16
✎
12:28
|
А вот это что такое СписокВидовДокументов ???
|
|||
2
Euguln
29.02.16
✎
12:29
|
Один и тот же итератор ц
|
|||
3
fdv_83
29.02.16
✎
12:29
|
Это список видов документов из подключенной базы
|
|||
4
fdv_83
29.02.16
✎
12:31
|
(2) Ой, точно. Проглядел я. Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |