Что-то намутил в Accounts (Добавить "контрагента можно, но при просмотре карточки выбивает, что "запись удалена")

Что-то намутил в Accounts (Добавить "контрагента можно, но при просмотре карточки выбивает, что "запись удалена", хотя запись отображается).
Помогите пожалуйста. Просто последний бэкап 3-ех дневной давности((((

Нравится

13 комментариев

В сервисе sq_Account предположительно по умолчанию включен фильтр.

Скорее всего при открытии карточки включается какой то фильтр, при котором не выбирается запись. Смотрите запрос через профайлер. Если есть фильтры, кроме фильтра по ID, проблема в них.

Проверьте, в sq_Account у Вас включен(-ы) какой то фильтр - надо выключить все

PS: не успел :lol:

Огромное спасибо!
Создал вчера фильтр, а сегодня в коде все поправил, а про созданнный фильтр забыл)))

Похожая история. Операционист создал договор, срм выставила дублирующий номер уже существующего договора, операционист пересоздал договор на новый номер. И теперь старый ошибочный договор при открытии выдаёт "Запись удалена", но в гриде он значится. Нажимаем повторно "Удалить" - удалился. Обновить грид - снова появляется. В результате удалить невозможно. Смотрю айби експертом, в базе нет этой записи. Кто, что подскажет?

Посмотрите, какой запрос посылается в базу при обновлении реестра, и выполните его в IBExpert'e. Возможно, эта запись появляется из-за некорректного присоединения одной из таблиц. Также проверьте, может, в запросе договоров тоже остался включенным какой-либо фильтр.

Олег, фильтры все отключены по-умолчанию...
Все присоединённые таблицы подключены обычным джоином
Left Outer Join "tbl_Contact" AS "Owner" ON "Owner"."ID" = "tbl_Contract"."OwnerID"

В Айбиексперте выполняю запрос:

SELECT
    "tbl_Contract"."ID" AS "ID",
    "tbl_Contract"."ContractNumber" AS "ContractNumber"
 
FROM
    "tbl_Contract" AS "tbl_Contract"
 
WHERE(UPPER("tbl_Contract"."ContractNumber") = '2010/087')

Отображаются две записи:

ID	ContractNumber
{3349D042-A45E-4E18-B92D-3DB976AF8B49}	2010/087
{00915AAE-C640-4663-8077-E17463054E61}	2010/087

Потом делаю в том же Айбиексперте фильтрацию таблицы tbl_Contract по ContractNumber 2010/087
И отображается только первая(верная) запись {3349D042-A45E-4E18-B92D-3DB976AF8B49} 2010/087
Второй которую мне нужно удалить я не вижу.

А если сделать фильтрацию tbl_Contract по полю ID и значению {00915AAE-C640-4663-8077-E17463054E61}? Запись отобразится, или нет?

Нет не отображается...
Не могу понять откуда вобще она подтягивается при прямом запросе.

Александр, я всё-таки не совсем понимаю.

Вы писали:

"Швец Александр" написал:В Айбиексперте выполняю запрос: ...

А потом:

"Швец Александр" написал:Потом делаю в том же Айбиексперте фильтрацию таблицы tbl_Contract по ContractNumber 2010/087

Объясните, пожалуйста, чем отличался первый запрос от второго? В первом ведь тоже фильтрация по ContractNumber.

Что произойдёт, если в IBExpert выполнить запрос:

SELECT
    "tbl_Contract"."ID" AS "ID",
    "tbl_Contract"."ContractNumber" AS "ContractNumber"
 
FROM
    "tbl_Contract" AS "tbl_Contract"
 
WHERE("tbl_Contract"."ID" = '{00915AAE-C640-4663-8077-E17463054E61}')

?

Вернёт ли Ваш первый запрос две записи, если из него убрать UPPER?

Вот и я говорю что бред какой-то эти запросы не чем не отличаются кроме фильтров, только один выводит нужную запись, а второй нет:

SELECT
    "tbl_Contract"."ID" AS "ID",
    "tbl_Contract"."ContractNumber" AS "ContractNumber"
 
FROM
    "tbl_Contract" AS "tbl_Contract"
 
WHERE("tbl_Contract"."ID" = '{00915AAE-C640-4663-8077-E17463054E61}')

Результат: null
Даже если убрать UPPER, то

SELECT
    "tbl_Contract"."ID" AS "ID",
    "tbl_Contract"."ContractNumber" AS "ContractNumber"
 
FROM
    "tbl_Contract" AS "tbl_Contract"
 
WHERE("tbl_Contract"."ContractNumber" = '2010/087')

выводит:

ID      ContractNumber
{3349D042-A45E-4E18-B92D-3DB976AF8B49}  2010/087
{00915AAE-C640-4663-8077-E17463054E61}  2010/087

Попробуйте выполнить такой запрос:

SELECT
    "tbl_Contract"."ID" AS "ID",
    "tbl_Contract"."ContractNumber" AS "ContractNumber"
 
FROM
    "tbl_Contract" AS "tbl_Contract"
 
WHERE(UPPER("tbl_Contract"."ID") = UPPER('{00915AAE-C640-4663-8077-E17463054E61}'))

Возможно, он вернёт результат. Если да, тогда можно попытаться удалить:

DELETE
FROM
    "tbl_Contract"
WHERE(UPPER("tbl_Contract"."ID") = UPPER('{00915AAE-C640-4663-8077-E17463054E61}'))

Олег, и снова спасибо.
Проблема таки в связной таблице, а вернее в недосмотре при создании связи к основной.
При добавлении в карточку договора ещё одного датасета по связи dlData в этой теме:
http://community.terrasoft.ru/forum/topic/5466
пропустил добавление связи в таблице Договор,
тоесть поле индификатора связи с таблицей tbl_DopZayavka создал, а саму связь нет. Вот и выходит что изза отсутствия связи срм удалила запись договора, но в таблице tbl_DopZayavka осталась обратная связь на удалённый без проверки договор.
После добавления связи в админке, и ручного удаления связаных записей, договор удалился полностью.
Ещё раз спасибо.

Показать все комментарии