30.07.2013, 13:35 | #1 |
Участник
|
Импорт адресов в AX из неназываемой ERP
Коллеги, добрый день!
Стоит задача импорта адресов, написанных в одну строку вида 111222, РФ, Москва, ул. Юных Ленинцев, 6-24 в АХ 2009 SP1 RU-7. По очевидным причинам, исходную систему не называю, ибо и так ясно Понимаю, что вопрос, возможно, уже обсуждался, но поиск ничего путного не принес. Вопрос скорее из серии best practice. Что можете предложить исходя из вашего опыта? |
|
30.07.2013, 13:43 | #2 |
Banned
|
Excel + Power Query
|
|
30.07.2013, 13:56 | #3 |
Участник
|
Если длина фиксирована, то в экселе "Данные - Текст по столбцам" можно разделить их.
|
|
30.07.2013, 16:57 | #4 |
Участник
|
|
|
30.07.2013, 18:05 | #5 |
Участник
|
На моих проектах заливали в поле "Адрес", при очередном обновлении карточки адреса (например, менеджер по продажам редактирует карточки клиента) пользователь по регламенту руками перебивает в формат КЛАДР
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: Михаил Андреев (1), vmoskalenko (1). |
30.07.2013, 21:30 | #6 |
Участник
|
А если строку разделить по запятым?
|
|
30.07.2013, 23:59 | #7 |
Участник
|
Разбить строку на "слова" - полдела, а вот конвертировать их в коды КЛАДРа задача уже другого уровня.
__________________
Ivanhoe as is.. |
|
31.07.2013, 10:08 | #8 |
Banned
|
КЛАДР ваш, кстати, - это сущее зло. Ну не может одна база данных содержать все дома на 1/6 части суши. Чтобы научить вводить "офис 10", надо с пользователями отдельный тренинг проводить, производительность падает в разы.
|
|
31.07.2013, 11:15 | #9 |
Участник
|
Цитата:
адрес клиента (неважно какой) должен быть в документах приведен ровно в таком же виде, как и в присланной им карточке клиента. То есть, например, указали мы в отгрузочных документах "МО", а не "Московская область" (как у него в документах в налоговой зарегистрировано), или "улица", а не "ул." и все, налоговая накладные и фактуры у него не принимает. Если мы будем использовать КЛАДР, то у нас все будет красиво и правильно, что по фактическому положению дел, оказывается, совсем неправильно. Я прав? |
|
31.07.2013, 11:15 | #10 |
Участник
|
Почему не может?
|
|
31.07.2013, 11:24 | #11 |
Участник
|
Цитата:
Цитата:
Сообщение от penguin2000
Как я понимаю, КЛАДР становится совершенно бессмысленным, если необходимо учитывать следующее условие:
адрес клиента (неважно какой) должен быть в документах приведен ровно в таком же виде, как и в присланной им карточке клиента. То есть, например, указали мы в отгрузочных документах "МО", а не "Московская область" (как у него в документах в налоговой зарегистрировано), или "улица", а не "ул." и все, налоговая накладные и фактуры у него не принимает. Если мы будем использовать КЛАДР, то у нас все будет красиво и правильно, что по фактическому положению дел, оказывается, совсем неправильно. Я прав?
__________________
Ivanhoe as is.. |
|
31.07.2013, 12:59 | #12 |
Участник
|
Цитата:
Сообщение от Ivanhoe
Ну и "МО", и "улица" не соответствуют КЛАДРу. Как раз, судя по моему опыту, с налоговой проблем не будет. Будут проблемы с несуществующими адресами (например, секретный объект, армейская часть или просто нет в КЛАДРе еще нового адреса), для таких случаев нужно иметь под рукой "запасную" страну РФ с международным форматом адреса. Ну и процесс обучения и ввода адреса специфический, но в целом рабочий.
|
|
31.07.2013, 13:30 | #13 |
Banned
|
Цитата:
В индустрии давно достигнут консенсус в нормализации адресов: (страна) - (федеральный регион) - индекс - (почтовый ящик) - город - улица в свободном формате. Отделение дома, строения, корпуса интересно только в геоинформатике и коммунальных службах, а обычного пользователя скорее грузит и ставит перед ненужным выбором. Вспомним известный анекдот про изнурительную работу по сортировке апельсинов: Цитата:
Клиент на приеме у психотерапевта:
- Помогите, доктор! Эта кошмарная работа сведет меня с ума! Каждый день я возвращаюсь домой выжатый, как тряпка. - А чем Вы, собственно, занимаетесь? -Ну, я сижу на складе, передо мной желоб и три ящика. По желобу скатываются апельсины, а я должен раскладывать их в ящики: большие - в первый, средние - во второй, а маленькие - в третий. - Вроде непыльная у Вас работенка... - Ах, доктор, но эта ужасная проблема постоянного выбора! |
|
31.07.2013, 13:33 | #14 |
Участник
|
EVGL, всё же в оригинале было "я постоянно должен принимать решения".
|
|
07.08.2013, 16:58 | #15 |
Участник
|
Цитата:
Если заливать одной строкой в Address, при создании заказа на продажу, ничего не заполняется в полях раздела "Адрес доставки", например. Если заполнить каждое поле в карточке клиента, например, Город, Индекс, Улица, то все ок. Вы точно не били всю строку адреса на Город, Индекс, Улица и т.д.? |
|
20.08.2013, 16:14 | #16 |
Участник
|
Цитата:
Сообщение от penguin2000
В поле Адрес таблицы Address или одноименное поле таблицы CustTable?
Если заливать одной строкой в Address, при создании заказа на продажу, ничего не заполняется в полях раздела "Адрес доставки", например. Если заполнить каждое поле в карточке клиента, например, Город, Индекс, Улица, то все ок. Вы точно не били всю строку адреса на Город, Индекс, Улица и т.д.? 1. Адрес как просто адрес - не интересен. Интересен адрес клиента или адрес поставщика. 2. Не надо заниматься сортировкой апельсинов и раскладывать по ячейкам улицы, города, области, дома и квартиры. Достаточно запхнуть эту информацию в поле Address. Для печатных форм - самое оно. Но если какой-то пользователь случайно что-то поменяет в таком адресе, то ему (этому пользователю) придётся вводить адрес уже по правилам Аксапты. P.S. Хотя, у меня на одном проекте было всего около 1500 контрагентов и помошники со стороны клеинта вручную разложили адрес по нужным ячейкам в Экселе. Так и импортировал. Делюсь опытом как я выполнял миграцию адресов в Аксапту. (На основе статьи) Кратко: 1. Создаём группу импорта через Мастер импорта из Эксель 2. Поле telex используем как CustTable.AccountNum (или Vendtable.AccountNum) 3. Настраиваем в группе импорта Настройка таблиц - Конвератция. Я использовал свой код: X++: // Add code - Start str account; str party; ; // If address is for a customer , and recid for customer is not specificed if (address.AddrTableId == tablenum(CustTable) && !address.AddrRecId) { account = address.Telex; party = CustTable::find(account).PartyId; // Fetch PartyId of customer address.AddrRecId = DirPartyTable::find(party).RecId; // fetch RecId of party address.AddrTableId = tablenum(DirPartyTable); //fetch number of party table address.Telex = ''; //clear } else if (address.AddrTableId == tablenum(VendTable) && !address.AddrRecId) { account = address.Telex; party = VendTable::find(account).PartyId; // Fetch PartyId of customer address.AddrRecId = DirPartyTable::find(party).RecId; // fetch RecId of party address.AddrTableId = tablenum(DirPartyTable); //fetch number of party table address.Telex = ''; //clear } X++: ; Address.insert(); // Insert method called to import the data return false; // Bypass the standard AX data import code. |
|
Теги |
кладр |
|
|