Не удаляется контрагент

При удалении контрагента выдается сообщение, что не удалена запись так как нет возможности - смотрите системный журнал, а в журнале пишет следующее "Ошибка удаления записи. Оригинальное сообщение: Недопустимое имя объекта "dbo.Communication2TypeName"". Вся связанная информация по данному контрагенту была откреплена во всех таблицах. Помогите что не так?

Нравится

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

Добрый день, Сергей.
Странная ошибка. Выполняли ли с этим разделом какие-либо изменения в настройках? Например, изменяли состав полей или внешних ключей?
Попробуйте с помощью Profiler получить запрос "DELETE FROM ...", который выполняет попытку удаления, выполните отдельно в Management Studio, если не получится - текст ошибки будет более понятный. Если ничего не помогает - советую обратиться в службу поддержки.

Сергей, проверьте триггер tr_tbl_Account_ID в той части, где происходит запись значения Communication2TypeName в таблицу логов tbl_AccountLog. Мне встречались случаи, когда вместо корректного запроса

(select [tbl_CommunicationType].[Name]
      from [dbo].[tbl_CommunicationType] as [tbl_CommunicationType]
      where  [tbl_CommunicationType].[ID] = [D].[Communication2TypeID])
    as [Communication2TypeName]

триггер содержал что-то типа

(select [Communication2TypeName].[ID]
      from [dbo].[Communication2TypeName] as [tbl_CommunicationType]
      ...

За точность последнего выражения не ручаюсь, возможно, в Вашей базе оно выглядит по-другому. Могу только сказать, что оно некорректное и его необходимо заменить на первое.

Уважаемый Олег, выполнили все как Вы написали, ошибка пропала но появилась новая :
Ошибка удаления записи. Оригинальное сообщение: Ошибка при преобразовании строки символов в тип uniqueidentifier

Сергей, Вы заменили только ту часть, которая касалась Communication2TypeName? Посмотрите на аналогичные участки, которые соответствуют Communication1Type, Communication3Type, Communication4Type. Для Communication2Type должно быть точно так же, как и для них, кроме соответствующего индекса.

Если отличий нет, воспользуйтесь советом Дмитрия: перед удалением включите Profiler и посмотрите, какой запрос выполняется при удалении, а потом попробуйте его выполнить в Management Studio.

В случае, если данные действия могут вызвать затруднение, обратитесь в Службу поддержки Terrasoft. Наши специалисты попытаются подключиться удалённо к Вашей системе и устранить проблему.

Олег большое спасибо, всё получилось, просто допустили орфографическую ошибку при записи в тригер:sad:

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