AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.03.2004, 06:41   #1  
chel is offline
chel
Участник
 
153 / 10 (1) +
Регистрация: 02.09.2003
Вопрос по ссылочной целостности
Интересно, почему разработчики Axapta не возложили контроль ссылочной целостности на СУБД? В итоге система контролирует ссылочную целостность не везде. Наример, если настроить счет кассы на счет ГК, а потом удалить этот счет из плана счетов, то строки журнала кассы будут разнесены на несуществующий счет ГК. Или я что-то где-то не включил?
Старый 18.03.2004, 14:31   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
потому что они принципиально решили ничего не возлагать на СУБД.

Почему НИЧЕГО не возлагается на СУБД? Изначально предполагалось, что СУБД могут использоваться разные. Даже те, кто не поддерживает развитые механизмы. Даже mySQL По маркетинговым соображениям остались только МС СКЛ и Оракл.

Почему ссылочную целостность можно включить и выключить? Потому что есть понятие черновик/данные. Черновики (журналы/заказы) могут безболезненно удалятся. Все данные остаются в проводках. Для того, чтобы черновики можно было удалять, контроль ссылочной целостности по проводкам в черновиках необходимо отключать. А вот у основных справочников наоборот включать.

Включение/выключение контроля делается программистом. См. таблицы, свойства DeleteActions.

Теперь совершенно отдельный вопрос по Кассам. По идее российские программисты должны были бы включить. Почему они не везде включили... хм... это отдельный вопрос.

Спасает то, что переключать deleteAction можно самому.
Старый 18.03.2004, 21:30   #3  
chel is offline
chel
Участник
 
153 / 10 (1) +
Регистрация: 02.09.2003
Спасибо за ответ. То есть, если я правильно понял, это ошибка в модуле кассы, что можно разносить на несуществующий счет
Старый 19.03.2004, 11:11   #4  
Oleg Krutikov is offline
Oleg Krutikov
Участник
 
10 / 10 (1) +
Регистрация: 07.10.2003
Адрес: Москва
К таблице LedgerTable добавьте DeleteAction "Restricted" для таблицы RCashLedgerAccount. После этого счёт указанный в профиле разноски кассы удаляться из плана счетов не будет.
Старый 19.03.2004, 14:28   #5  
TravellerInTime is offline
TravellerInTime
Участник
Аватар для TravellerInTime
 
130 / 36 (2) +++
Регистрация: 14.07.2003
Адрес: Россия, Тула
Цитата:
Изначально опубликовано chel
Спасибо за ответ. То есть, если я правильно понял, это ошибка в модуле кассы, что можно разносить на несуществующий счет
Нет, не правильно! Такой бардак в Аксапте встречается повсеместно!
Старый 19.03.2004, 14:57   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано chel
То есть, если я правильно понял, это ошибка в модуле кассы, что можно разносить на несуществующий счет
да, ошибка.
Старый 20.07.2012, 17:39   #7  
imir is offline
imir
Участник
 
159 / 161 (6) ++++++
Регистрация: 28.05.2010
Цитата:
Сообщение от mazzy Посмотреть сообщение
да, ошибка.
Начал ковыряться в 2012-й и как бэ.. хм.. учитывая, что теперь много ссылок recid, проблема встает в полный рост. Банально можно удалить структуру аналитик, узнать об этом через неделю и .. куча битых recid, невозможность разнести операции, построить отчеты.. все давай досвидания база.

Зарегил даже в коннект пост на эту тему,

https://connect.microsoft.com/dynami...-table#details

Там приложен файлик - 13000 "битых" delete action по таблицам "Group" и "Main".

Мне кажется, хотя бы для "Group" и "Main" можно сделать автоматическую проверку целостности, или нет?
Старый 20.07.2012, 18:22   #8  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,941 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Да не сильно она вам поможет. Ну разве что тем что раньше в аксапте коды были говрящие и даже при битой ссылке можно было по коду определить что за запись по смыслу была в справочнике удалена, то теперь с recId-ми это невозможно.

В общем, я бы не стал перекладывать на ядро баги X++ программистов.
Лучше уж тогда настроить логирование на удаление по всем справочникам в системе, можно будет легко восстанавливать записи при возникновении подобных проблем, а также находить по битой ссылке что за запись была.
Старый 20.07.2012, 19:17   #9  
imir is offline
imir
Участник
 
159 / 161 (6) ++++++
Регистрация: 28.05.2010
Цитата:
Сообщение от Logger Посмотреть сообщение
Да не сильно она вам поможет.
Откуда такой вывод?

Цитата:
Сообщение от Logger Посмотреть сообщение
Ну разве что тем что раньше в аксапте коды были говрящие и даже при битой ссылке можно было по коду определить что за запись по смыслу была в справочнике удалена, то теперь с recId-ми это невозможно.
И я о том же. Но (!) еще в довесок -даже зная код - нельзя штатными средствами завести обратно запись с таким же Recid

Цитата:
Сообщение от Logger Посмотреть сообщение
В общем, я бы не стал перекладывать на ядро баги X++ программистов.
Эту обязанность на программистов возложили, в 1С допустим никто про это слыхом не слыхивал - все контролирует система, значит это возможно. Опять же - 13 000 (тринадцать тысяч) багов, это тенденция знаете - я не зря вначале процитировал Маззи

Цитата:
Сообщение от Logger Посмотреть сообщение
Лучше уж тогда настроить логирование на удаление по всем справочникам в системе, можно будет легко восстанавливать записи при возникновении подобных проблем, а также находить по битой ссылке что за запись была.
Журнал базы данных на удаление по всем таблицам, кроме транзакционных мы и раньше делали, но вот вопрос - как искать по журналу БД запись по Recid, или вообще опираясь на ошибку "не найдена запись с кодом (пусто) в таблице ..."

Последний раз редактировалось imir; 20.07.2012 в 19:21.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вопрос по возвратам soad DAX: Функционал 2 24.07.2008 13:04
Вопрос по Проектам PSA DAX: Функционал 35 19.01.2007 22:26
Еще вопрос про покрытие по аналитикам в Сводном планировании rt2 DAX: Функционал 3 24.03.2006 18:56
Вопрос по финансам Лиса* DAX: Функционал 8 04.10.2004 14:19
расчеты с персоналом. НДФЛ. вопрос чайника shumelka DAX: Функционал 2 25.03.2004 11:36

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:18.