На прикладі ЗУП 2.5: в обробці «Вивантаження даних в бухгалтерську програму» на формі розміщений реквізит, в якому користувач підбирає потрібні рахунки дебету, далі потрібно передати вибрані користувачем рахунку в правила вивантаження.
У типових конфігураціях є зручний механізм "СеріалізоватьОб'ектXDTO", саму функцію легко знайти в інтернеті, а мені досить в процедурі "ВигрузітьПоПравіламБух30" форми вписати ось це:
Далі в Конвертації даних додаємо параметр.
Перед вивантаженням даних виконуємо перевірку:
І використовуємо десеріалізованний масив, наприклад ось так:
Використання довільного алгоритму для створення об'єкта без джерела.У ПВД (правило вивантаження даних):
Запити розміщуються на закладці "Алгоритми \ запити" без лапок.
Установка свого Значення (Варіант 1).В описаному вище документі в табличній частині є реквізит "ВідРасчета" для якого правилом конвертації є ПКО "ОсновниеНачісленіяОрганізацій".
Створювати нові ВідиРасчетов в базі завантаження з бази вивантаження я не хочу (відключаю пошук по "Коду", "Позначка на видалення" мені теж не цікава), намагаюся знайти об'єкти по Найменуванню
і в разі, якщо Найменування певне, то привласнюю йому інше значення (іншими словами. встановлюю відповідність).
Установка свого Значення (Варіант 2).Ситуація друга, мені не цікаво що було в джерелі, я хочу просто поставити своє конкретне значення.
Найменування у нас має тип "Рядок", так що Значення задано рядком.
Особливості вивантаження документів (Задати своє значення реквізиту в довільному запиті).Розглянемо варіант довільного запиту.
Як видно з картинки вище, в запиті виводимо і реквізити і табличну частину (і) документа (обведено блакитним квадратом).
// 1 - таблична частина документа
// 2 - не суть, просто якась умова (покладається на завдання)
// 3 - ставимо інше значення
Задати своє значення реквізиту табличній частині в ПКС, використання Алгоритму, задати інше ПКО."Джерело" містить в собі посилання.
Звернутися до рядка табличної частини можна за допомогою змінної "Об'ектКоллекціі".
Далі все просто.
Алгоритм виглядає ось так:
Якщо в результаті отримуємо ІмяПКО = "", відключаємо ПКС (Відмова = Істина;), зручно для випадків, коли в одному документі є реквізит, а в іншому - ні. Наприклад, подібна ситуація виникає, якщо в одній системі ЗУП 2.5 встановлена програма Бухобліку 7.7, а в іншій - Бухгалтерія 3.0
Кілька часто використовуваних рядків коду в ПКО. Кілька часто використовуваних рядків коду в ПВД.Перед вивантаженням (підійде для варіанту стандартної вивантаження, коли при обміні вивантажуються зареєстровані об'єкти):
Знайти посилання в приймачі, якої немає в джерелі.Приклад наведено, щоб показати всі можливості конвертації.
Припустимо, в джерелі є інформація про табельний номер співробітника, мені необхідно визначити співробітника.
Варіант 1 наведено з метою, щоб показати ідею. Але, оскільки запит в циклі - це зло, дивись Варіант 2 :)
У запиті встановіть галочку:
Ще одна проблема, з якою мені довелося давним-давно зіткнутися і через недосвідченість було витрачено якийсь час -Конвертація документа "Перенесення даних", або, наприклад "Операція" (Перенесення рухів документа).
У вивантаженні опису структури встановіть галочку, як показано на рис. нижче.
Далі в конвертації даних:
Галочками відзначте необхідні регістри, за якими хочете перенести руху, вони будуть додані так само, як і табличні частини документа. Міняти стандартні правила вивантаження не потрібно (тобто не потрібно писати ніяких запитів), руху будуть вивантажені автоматично.
Конвертація перерахування.
Якщо вихідного значення перерахування в базі джерелі немає, то нам не потрібно ПКО для перерахування.
Розглянемо найпростіший приклад:
ПКС такого перерахування: