---
title: "Робота з внутрішньохолдинговим функціоналом"
canonical: https://ontargit.com/ua/robota-z-vnutrishnoholdingovim-funkcionalom/
date: 2020-11-10 15:41:28
description: "Робота з внутрішньохолдинговим функціоналом у Microsoft Dynamics AX щоб отримати дані від всіх компаній, а не тільки від поточної компанії"
keywords: "Робота з внутрішньохолдинговим функціоналом"
categories: [ERP]
---

Підготував: Андрій Чумаков

Версія Microsoft Dynamics AX: D365

**Selects **

Отримання даних від усіх перехресних компаній

Щоб отримати дані від всіх компаній відразу, а не тільки від поточної компанії, як у випадку зі звичайним select, використовуйте ключове слово crosscompany.

###### Отримання даних від кількох перехресних компаній

Щоб вибрати дані не по всіх компаніях відразу, а тільки по деяким з них, використовуйте ключове слово crosscompany і вкажіть список компаній:

– варіант, при якому список компаній задається в контейнері

– варіант, де список компаній задається в розділі де

 

###### Отримання даних від однієї зазначеної перехресної компанії

Інший спосіб отримати дані від компанії, відмінною від поточної, – це «переключитися» на іншу компанію за допомогою changecompany. В цьому випадку весь код виконується в контексті зазначеної компанії.

Джерела даних форм

###### Відображення даних від декількох компаній

Якщо вам потрібно отримати дані з декількох компаній одночасно в джерелі даних форми, вам необхідно змінити значення властивості Автоматичний запит між компаніями на «Так» . У цьому випадку дані будуть вибиратися з усіх існуючих компаній.
 

Щоб обмежити список компаній, вам необхідно встановити значення необхідних компаній в методі init () цього джерела даних .
 

## Копіювання записів

Копіювання з використанням функції buf2buf

Щоб скопіювати запис з однієї компанії в іншу, вам потрібно «переключитися» на бажану компанію за допомогою changecompany і форматувати все поля (крім системних полів) нового запису за допомогою функції buf2buf .

Нижче наведено код методу, який створює новий запис і ініціалізує її поля значеннями вихідної записи:

Як приклад використання стандартної функції buf2buf можна побачити клас CustFreeInvoiceCorrection.

### Копіювання з використанням методу табличних даних з подальшою настройкою системних полів

У тих випадках, коли з якої-небудь причини ви зберігаєте значення системних полів вихідної записи, крім поля DataAreaId, оскільки це поле в будь-якому випадку повинно відповідати компанії, в якій створюється новий запис, використовуйте дані таблиці метод.

 У той же час при створенні нового запису деякі системні поля можуть бути перевизначені, а поле DataAreaId має бути перевизначити.

Перевизначення системних полів має бути дозволено спеціальною конструкцією з використанням OverwriteSystemfieldsPermission (). Assert () і overwriteSystemfields ().

Ось приклад коду, який перекриває системні поля в новому записі.

## Внутрішньохолдинговий продаж замовлення на закупівлю

Прикладом стандартних функцій усередині компанії є зв’язок між замовленням на купівлю в одній компанії і замовленням на продаж в іншій компанії.

Маючи замовлення на покупку, ви можете отримати внутрішньохолдингового замовлення на продаж, а маючи замовлення на продаж , ви можете отримати внутрішньохолдингового замовлення на покупку.

Нижче наведені індивідуальні приклади отримання замовлень на продаж і покупку.

Ось приклад стандартного коду в класі MarkupCopy, який отримує внутрішньохолдингового замовлення на продаж.