Доброго дня!
Прошу поделиться опытом, кто сталкивался с функционалом разработки/настройки, который может вызывать такое поведение.
Одно и то же приложение на 2-х АОСах.
На одном из АОСов было замечено, что селект из InventLocation перестал возвращать значения.
Делаем тестовый джоб:
X++:
InventLocation inventLocation;
;
select count(RecId) from inventLocation;
info(strFmt("%1", inventLocation.RecId));
выдаёт "0" на первом сервере, выдаёт "980" на втором сервере. На SQL значения есть, тот же запрос напрямую в SQL выдаёт 980.
Причина стала ясна после проверки через trace parser
С правильного АОСа уходит запрос:
X++:
SELECT COUNT(T1.RECID)
FROM INVENTLOCATION T1
WHERE ((PARTITION=5117145432)
AND (DATAAREAID=N'tmpCmp'))
Со второго тот же самый джоб генерирует запрос:
X++:
SELECT COUNT(T1.RECID)
FROM INVENTLOCATION T1
WHERE ((T1.PARTITION=5117145432)
AND (T1.DATAAREAID=N'tmpCmp'))
AND
EXISTS (
SELECT 'RetailStore'
FROM RETAILCHANNELTABLE T2 CROSS
JOIN RETAILSTOREADDRESSBOOK T3 CROSS
JOIN DIRADDRESSBOOKPARTY T4 CROSS
JOIN DIRPERSONUSER T5
WHERE (((T2.PARTITION=5117145432)
AND (T1.INVENTLOCATIONID=T2.INVENTLOCATION))
AND (T2.INSTANCERELATIONTYPE IN (101893) ))
AND ((T3.PARTITION=5117145432)
AND (T2.RECID=T3.STORERECID))
AND ((T4.PARTITION=5117145432)
AND (T3.ADDRESSBOOK=T4.ADDRESSBOOK))
AND (((T5.PARTITION=5117145432)
AND ((T5.VALIDFROM<=?)
AND (T5.VALIDTO>=?)))
AND ((T5.USER_=?)
AND (T4.PARTY=T5.PERSONPARTY))))
Есть ещё несколько таблиц, которые стали себя вести так же, все они связаны с RetailStoreTable через ряд таблиц. Запрос к RetailStoreTable тоже ничего не возвращает, т.к. усложняется конструкцией с "Exists".
При этом после рестарта AOSа Аксапта какое-то время показывает значения всех этих таблиц на формах (и селекты через парсер мы видим корректные). После каких действий запросы снова портятся отловить не удаётся.
XDS не перенастраивали.
Что может добавлять такой хвост?
#HELPHELPHELP