Здравствуйте.
Есть интерфейс с двумя полями для выбора Контрагента и договоров.
С выбором контрагента все хорошо - выбирается в каталоге и отображается в интерфейсе.
Выбор договоров сделан с использованием интерфейса L_Dogovor::GetSomeDogovor
Из маркера, который возвращает данный интерфейс, берем Nrec и пытаемся найти договор.
Getfirst по Nrec'у не находит.
В логе видно, что Nrec берется из маркера правильный, в саппорте по этому Nrec'у находит договор.
Попробовали заменить его Loop - тот же эффект.
Если сделать Loop с использованием функции FoundMarker - происходит цикл по таблице.
Во вложении архив проекта. Ресурс могу выслать по почте (не выкладывается из-за ограничения размера 256К)
Чтобы проявилась ошибка - необходимо выбрать контрагента, у которого есть договор.
И в интерфейсе выбора договора выбрать один договор. При этом название поля Договор в интерфейсе не изменится.
Подскажите пожалуйста, в чем может быть причина?
Проблема с getfirst и Loop по таблице Dogovor
-
- партнер
- Сообщения: 82
- Зарегистрирован: Ср, 19/09/2007 08:35
- Имя Фамилия: Максим Шагубаков
- Откуда: Галактика-Урал
- Контактная информация:
Проблема с getfirst и Loop по таблице Dogovor
- Вложения
-
- 17_Управленческий_отчет_по_платежам.rar
- (18.35 КБ) 475 скачиваний
-
- заказчик
- Сообщения: 117
- Зарегистрирован: Пт, 26/10/2007 14:16
- Имя Фамилия: Денис Кучин
- Откуда: Геомостпроект НПО
Re: Проблема с getfirst и Loop по таблице Dogovor
var объявите на уровне ЛОТ. Наверняка поможет...
-
- партнер
- Сообщения: 82
- Зарегистрирован: Ср, 19/09/2007 08:35
- Имя Фамилия: Максим Шагубаков
- Откуда: Галактика-Урал
- Контактная информация:
Re: Проблема с getfirst и Loop по таблице Dogovor
Действительно, когда объявил переменные внутри запроса - заработало.
Не могли бы пояснить знающие люди, чем вызвано неоднозначное поведение операторов навигации по таблице?
Почему для таблицы Katorg работает позиционирование, а для Dogovor не работает?
Не могли бы пояснить знающие люди, чем вызвано неоднозначное поведение операторов навигации по таблице?
Почему для таблицы Katorg работает позиционирование, а для Dogovor не работает?
- Screw
- топ-софт
- Сообщения: 73
- Зарегистрирован: Пт, 14/09/2007 22:54
- Имя Фамилия: Виталий Корзюк
- Откуда: ТопСофт
- Контактная информация:
Re: Проблема с getfirst и Loop по таблице Dogovor
Внимательно читаем содержимое лога компиляции:
Иными словами, вместо переменной, как Вы ожидали, используется одноимённое поле какой-то из включённых в ЛТ таблиц, имеющее более "близкую" область видимости с точки зрения модификатора. Как только переменная cDog переносится в ЛТ, её приоритет увеличивается, и она начинает использоваться в модификаторе.
Читайте логи, товарищи!
Код: Выделить всё
[i] Используется поле или переменная CDOG лог.таблицы вместо переменной объекта
(стр.139, поз.58 в D:\PROJECTS\FORUM.GALAKTIKA.RU\fmMain.vip)
if getFirst GETFIRST Dogovor where ((Comp(cDog) /== Dogovor.nRec)) = tsOk {
Читайте логи, товарищи!