Показать сообщение отдельно
Старый 20.08.2013, 16:14   #16  
vmoskalenko is offline
vmoskalenko
Участник
Аватар для vmoskalenko
 
145 / 334 (12) ++++++
Регистрация: 25.01.2007
Адрес: Toronto
Цитата:
Сообщение от 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
}
4. Настраиваем Настройка таблиц - Критерий импорта:
X++:
;

Address.insert(); // Insert method called to import the data
return false; // Bypass the standard AX data import code.
Импортируем наш экселевский файлик через нашу настроенную Группу определений. Да, клиенты и поставщики уже должны быть в системе.