Показать сообщение отдельно
Старый 19.11.2018, 19:43   #1  
kitty is offline
kitty
Участник
 
383 / 30 (2) +++
Регистрация: 24.05.2005
PurchTable->LinkActive
В 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 может вызываться ? (пытала консультанта, не смог припомнить)

Спасибо

Последний раз редактировалось kitty; 19.11.2018 в 19:46.