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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.04.2012, 14:01   #1  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Проблема в следующем: имеем план счетов, в котором очень много лишнего (порядка 1600 счетов). Нужно убрать всё лишнее, т.е. счета, по которым нет движения/сальдо.
Для начала нужно распечатать список таких счетов, т.е. потенциальных кандидатов на удаление. Было бы неплохо при этом напротив каждого счета указать: может ли он быть физически удален из таблицы или нет (т.е. фактически нужно проверить нет ли ссылок из других таблиц на этот конкретный счет (к примеру, не используется ли этот счет в Posting Setup'ах и т.п.)
Отчет-то я написала (он мне показал 860 "мертвых" счетов), но как сделать такую проверку без фактического DELETE, что-то никак не соображу

Вариант
Код:
IF NOT T15.DELETE THEN 'сообщение о невозможности удаления'
не устраивает, т.к. в этом случае он сначала удалит то, что можно, а на то, что не можно будет выдано соответствующее сообщение. Я же хочу знать ЗАРАНЕЕ, что можно БУДЕТ удалить, а что нет (и как программа максимум: почему нет, т.е. где/что ссылается на этот счет).

Коллеги, пожскажите, плиз, я не слишком многого хочу?
Старый 17.04.2012, 14:11   #2  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Цитата:
Сообщение от Kadawrik Посмотреть сообщение
Проблема в следующем: имеем план счетов, в котором очень много лишнего (порядка 1600 счетов). Нужно убрать всё лишнее, т.е. счета, по которым нет движения/сальдо.
Для начала нужно распечатать список таких счетов, т.е. потенциальных кандидатов на удаление. Было бы неплохо при этом напротив каждого счета указать: может ли он быть физически удален из таблицы или нет (т.е. фактически нужно проверить нет ли ссылок из других таблиц на этот конкретный счет (к примеру, не используется ли этот счет в Posting Setup'ах и т.п.)
Отчет-то я написала (он мне показал 860 "мертвых" счетов), но как сделать такую проверку без фактического DELETE, что-то никак не соображу

Вариант
Код:
IF NOT T15.DELETE THEN 'сообщение о невозможности удаления'
не устраивает, т.к. в этом случае он сначала удалит то, что можно, а на то, что не можно будет выдано соответствующее сообщение. Я же хочу знать ЗАРАНЕЕ, что можно БУДЕТ удалить, а что нет (и как программа максимум: почему нет, т.е. где/что ссылается на этот счет).

Коллеги, пожскажите, плиз, я не слишком многого хочу?
а чем не подходит в том же вашем отчете вывести ВСЕ (а не только "мертвые") счета и там же напротив счетов вывести комментарии, где, что и почему?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 17.04.2012, 14:31   #3  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Цитата:
Сообщение от Дуд Посмотреть сообщение
а чем не подходит в том же вашем отчете вывести ВСЕ (а не только "мертвые") счета
Сорри, не поняла сути вашего предложения: зачем мне все? мне нужен список только "мертвых душ".

Цитата:
и там же напротив счетов вывести комментарии, где, что и почему?
каким образом я узнаю где и что? Таблиц, которые используют номера счетов - вагон и маленькая тележка. Пересматривать их все, честно говоря, нет желания.
Нет ли какой-нить "системной" функции (по примеру 1С - "Поиск ссылок на объект").
Если нет, то бог с ней. Для меня важнее ПЕРЕД тем, как DELETE, уже иметь ответ на вопрос: "можно или нет".
Старый 17.04.2012, 14:53   #4  
Milk is offline
Milk
Участник
 
242 / 12 (1) ++
Регистрация: 08.06.2006
Напрашиваются следующие варианты действий:
1. Посмотреть в триггер OnDelete 15 таблицы и в отчете проверить наличие записей в таблицах, которые там чистятся;
2. Сделать бэкап базы и удалять там что угодно;
3. Писать "IF NOT T15.DELETE THEN" в отчете в реальной базе, те номера, для которых удаление не прошло, выгружать в файл, а в конце отчета вызвать ERROR, чтобы откатить транзакцию.
Старый 17.04.2012, 14:57   #5  
Alex Che is offline
Alex Che
Участник
 
74 / 10 (1) +
Регистрация: 04.04.2006
Может быть, скопировать всё во временную таблицу, потом делать "пробный DELETE" в основной, потом вставить все удалённые (по списку) обратно.
Старый 17.04.2012, 17:49   #6  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Обнаружила тут CU100. В этом кодюните как раз проверяются счета на использование в других таблицах и рез-т заносится в таблицу 180.
Покопаюсь, что можно из этого мне применить.
Старый 15.05.2012, 10:53   #7  
ОльгаМ is offline
ОльгаМ
Участник
 
36 / 10 (1) +
Регистрация: 07.09.2004
Адрес: Москва
Цитата:
Сообщение от Kadawrik Посмотреть сообщение
Обнаружила тут CU100. В этом кодюните как раз проверяются счета на использование в других таблицах и рез-т заносится в таблицу 180.
Покопаюсь, что можно из этого мне применить.
На мой взгляд достаточно проверить присутствие счета в 17 таблице по полям: Фин. Счет Но., Бал. Тип Счета и в Настройках, где есть ссылки на счета.
Старый 15.05.2012, 13:02   #8  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Цитата:
Сообщение от helga7289 Посмотреть сообщение
и в Настройках, где есть ссылки на счета.
Именно это CU100 и делает
Я не стала изобретать велосипед, воспользовалась те, что предлагает этот CodeUnit.
Поставленную задачку уже решили, и все "лишние" счета удалили.
Старый 18.05.2012, 09:15   #9  
JIEXA72 is offline
JIEXA72
Участник
 
39 / 10 (1) +
Регистрация: 16.09.2011
Люди хелп! Знаю что не в тему, нужно срочно скачать обновление KB 950920. Помогите плиз!!!
Старый 31.08.2012, 11:48   #10  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
Сегодня заметил в 21 таблице пустые коды клиентов. Ну так и есть - карточки удаляются со свистом, ничего в OnDelete про проверить не написано. Имейте ввиду
Старый 31.08.2012, 12:18   #11  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Цитата:
Сообщение от Васыо Посмотреть сообщение
Сегодня заметил в 21 таблице пустые коды клиентов. Ну так и есть - карточки удаляются со свистом, ничего в OnDelete про проверить не написано. Имейте ввиду
а как пустые коды клиентов связаны с удалением клиентов?
Старый 31.08.2012, 13:02   #12  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
А сами попробуйте. По крайней мере в R2 на нативной базе это так: при удалении карточки клиента (если она проходит стандартные проверки) - все записи остаются, а в 21 таблице коды клиентов становятся пустыми (причем только в 21 таблице).
Старый 03.09.2012, 11:59   #13  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Цитата:
Сообщение от Васыо Посмотреть сообщение
А сами попробуйте. По крайней мере в R2 на нативной базе это так: при удалении карточки клиента (если она проходит стандартные проверки) - все записи остаются, а в 21 таблице коды клиентов становятся пустыми (причем только в 21 таблице).
Именно так! У меня то же самое происходит.
 


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

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

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