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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.11.2007, 16:08   #1  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Как удалить дубликаты адресов
Не знаю как такое чудо сделалось, но у нас задвоенный спарвочник.

Добиться такого от типовой конфигурации мне не удалось.

В результате дубликатов, повторная загрузка классификатора становится невозможной:
Невозможно создать запись в 'Почтовые индексы' ('ZipCode') Почтовый индекс: 111674, .
Запись уже существует.

Из-за этого возникает много проблем. Я не знаю, как в теории проверить, что строки полностью идентичны. Может есть какая-то функция или вообще, какая должна быть логика?
Старый 22.11.2007, 17:47   #2  
twilight is offline
twilight
MCTS
MCBMSS
 
876 / 237 (9) ++++++
Регистрация: 17.10.2004
Адрес: Королёв
А если грохнуть справочник и залить все заново?
Старый 22.11.2007, 17:50   #3  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
это было первой мыслью, которая мне не понравилась.
Старый 23.11.2007, 12:53   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Arahnid Посмотреть сообщение
Я не знаю, как в теории проверить, что строки полностью идентичны. Может есть какая-то функция или вообще, какая должна быть логика?
Проверять вообще все поля нет необходимости. Надо проверить только те, в которых контролируется уникальность значений. Т.е. посмотреть список полей, входящих в индексы со свойством

AllowDuplicates = No

Далее по этим полям строишь запрос вида

X++:
CustTable custTable;
;

while select count(recId) from custTable group by zipCode
{
    if (custTable.recId > 1)
    {
        info(strFmt("zipCode %1 количество %2", custTable.zipCode, custTable.recId))
    }
}
Т.е. в group by надо перечислить все поля, входящие в такие индексы.

Кстати, вовсе не факт, что дубликаты существуют. Я не знаю, что именно Вы вкладываете в понятие "повторная загрузка классификатора", но если этот процесс сам не контролирует возможные дубли, то надо подправить его код (если это какой-то класс). Нельзя же загружать то, что уже есть.
Старый 23.11.2007, 22:09   #5  
SEKL is offline
SEKL
Участник
Сотрудники Microsoft Dynamics
 
48 / 27 (1) +++
Регистрация: 15.08.2007
Адрес: Denmark
По идее при импорте адресов КЛАДР существующие записи удаляются. Должно все работать.
Старый 26.11.2007, 10:53   #6  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
.
Владимир Максимов

Пасибо. Дубликаты были созданы каким-то образом еще на этапе внедрения (меня не было), да и не очень интересно, а аксапта работает совершенно правильно в этом плане.

Пасибо за помощь.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как через .NET коннектор удалить записи? Jab Straight DAX: Программирование 6 09.11.2007 18:56
Как удалить Производственный Заказ Nic DAX: Функционал 15 03.08.2005 09:39
Удалить пробелы в строке! Александр Костоусов DAX: Программирование 6 13.09.2004 11:25
Справочник адресов Pegiy DAX: Функционал 4 14.07.2004 08:43
Функция "Удалить строки" Oks DAX: Функционал 1 03.07.2002 18:09
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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