В PurchTable->LinkActive есть ветка
X++:
case tableNum(ProjTable):
Там собирается гигантское нагромождение из range из всех закупок, связанных с проектом.
X++:
while select PurchId from purchLineLink group by PurchId
where purchLineLink.ProjId == projTableLink.ProjId
&& !purchLineLink.IsDeleted
{
purchTableDS.addRange(fieldNum(PurchTable,PurchId)).value(purchLineLink.PurchId);
}
У нас этот код вызывает переполнение буфера. Я могу это "легко" вылечить с помощью literals(1). Но не ясно, надолго ли такого решения нам хватит .....
По идее, вообще этот сбор критериев по закупкам, мне кажется, нужно убрать, тк я не вижу, зачем он в принципе нужен. Я вижу , что он используется в следующих случах:
1) Если выбрать проект, а потом создать с него закупку,
то при создании это новой закупки с проекта код как раз бежит в LinkActive
Хотя,по идее, это же вовсе не нужно. Мы же новую создаем.
2) Если открыть все закупки с проекта через ,
то открыватеся не PurchTable, а purchTableListPage. Поэтому этот код PurchTable->LinkActive все равно не отработает.
Ощущение, что этот код в принципе остался от предыдущей версий аксапты, когда listPage еще не было.
Так ли это?
Откуда еще этот код PurchTable->LinkActive-> case ProjTable может вызываться ? (пытала консультанта, не смог припомнить)
Спасибо