|
![]() |
#1 |
Ищущий знания...
|
Цитата:
Сообщение от EVGL
![]() ... На этом месте сразу же сталкиваемся с доработкой #1: профиль по умолчанию хорошо присоединяется в модулях заказов и закупок, однако в журналах склада и производства профиль каждый раз надо указывать руками. Казалось бы, в записи склада есть поля для профиля по умолчанию, но его указание не приводит к автоматическому выбору профиля в журналах. Лечится тремя строками в методе \Data Dictionary\Maps\InventStorageDimMap\Methods\initFromInventLocation:
X++: if (_inventLocation.InventProfileId_RU && (! dimSearch || dimSearch.findActive(_dimGroupId, fieldnum(InventDim, InventProfileId_RU)))) { this.InventProfileId_RU = _inventLocation.InventProfileId_RU; } 1. В map InventStorageDimMap добавляем поле InventProfileId_RU. 2. В mappings для таблиц: CustTable, InventDim, PurchTable, SalesTable, VendTable добавляем соответствующие связи полей. 3. В map InventStorageDimMap изменяем методы: 1. modifiedField(). А именно добавляем в case по изменению поля InventLocationId проверку на незаполненность профиля учета. В результате этот case будет выглядеть так: X++: if (this.InventLocationId && (!this.InventSiteId || // No site. Hence default site might be applicable !this.InventProfileId_RU)) // Добавлена проверка профиля { if (this.isFormDataSource()) { this.InventStorageDimMap::modifiedInventLocationFromParent(this.InventStorageDimMap::formDataSourceJoinParent()); } } X++: fieldId fieldId; ProdJournalProd prodJournalProd; ProdJournalRoute prodJournalRoute; InventJournalTrans inventJournalTrans; // Добавлена переменная строк складских журналов ; if (parent.TableId && parent.TableId != tablenum(Common)) // A parent is found { switch (parent.TableId) { case tablenum(InventItemLocation): break; case tablenum(ProdJournalProd): prodJournalProd = parent; this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation(), prodJournalProd.prodTable().inventTable().DimGroupId); break; case tablenum(ProdJournalRoute): prodJournalRoute = parent; this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation(), prodJournalRoute.prodTable().inventTable().DimGroupId); break; // Добавлен case по строкам складских журналов --> case tablenum(InventJournalTrans) : inventJournalTrans =parent; this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation(), inventJournalTrans.inventTable().DimGroupId); break; // Добавлен case по строкам складских журналов <-- default: fieldId = fieldname2id(parent.TableId,fieldstr(InventTable,ItemId)); if (fieldId) { this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation(), InventTable::find(parent.(fieldId)).DimGroupId); } else { this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation()); } break; } } else // No parent exist { this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation()); } X++: if (!dimSearch || dimSearch.findActive(_dimGroupId, fieldnum(InventDim, InventProfileId_RU))) { this.InventProfileId_RU = _inventLocation.InventProfileId_RU; }
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
Теги |
ax2009, профиль учета |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|