|
Конвертация данных: после загрузки объекта нужно записать данные в регистр сведений | ☑ | ||
---|---|---|---|---|
0
Serdolik55
02.12.20
✎
14:03
|
Коллеги, день добрый!
Стоит такая задача: есть обмен Поступления товаров и услуг между УТ 10.3 и Бух.3.0 . В Бухгалтерию 3.0 нужно после загрузки объекта в документ Поступление товаров и услуг добавить Дополнительные сведения (Регистр сведений Дополнительные реквизиты и сведения с измерениями Объект, Свойство, Значение). Эти доп сведения я беру из поступления на стороне Источника, которых нельзя синхронизировать через реквизиты. Передаю их в параметры при выгрузки и на стороне приемника нужно их как-то в регистр сведений записать. Понятно, что обработчик После загрузки объекта нельзя использовать, так как объект ещё не в базе данных записан. Через исходящие данные тоже непонятно как организовать, так как не все измерения мне известны на стороне Источника, известны только Объект и Значение (доп. сведение), а Свойство (это План видов характеристик) -оно известно только на стороне Приемника и непонятно как его запихнуть потом в исходящие данные. Помогите, может у кого есть мысли разумные |
|||
1
Йохохо
02.12.20
✎
14:10
|
"Свойство (это План видов характеристик) -оно известно только на стороне Приемника"
Выражение - Неопределено. Может быть указано произвольное строковое выражение на встроенном языке, результат вычисления которого при загрузке будет присвоен значению свойства. Если Выражение определить в теле обработчика, то дальнейшая обработка ПКС будет прекращена. Данная возможность, используется только если конфигурация-приемник реализована на платформе V8 |
|||
2
Serdolik55
02.12.20
✎
14:17
|
(1) а как потом обратится к этом на стороне Приемника, чтобы Неопределено преобразовать в ПВХ?
|
|||
3
Йохохо
02.12.20
✎
14:24
|
(2) результат вычисления которого _при_загрузке_ !!11
|
|||
4
Йохохо
02.12.20
✎
14:25
|
при загрузке это и есть в приемнике
|
|||
5
Serdolik55
02.12.20
✎
14:33
|
Ааа, то есть если у меня в ПВХ на стороне приемника это свойство называется "ДатаППС", я так и пишу в исходящих данных?
Пример: ИсходящиеДанные = Новый Структура("Объект, Свойство, Значение); ИсходящиеДанные.Объект = Источник.Ссылка; ИсходящиеДанные.Свойство = "ДатаППС";(Это ПВХ на стороне примника) ИсходящиеДанные.Значение = Источник.ДатаППС; ВыгрузитьПоПравилу( , , ИсходящиеДанные, , "ДополнительныеРеквизитыИСведения"); |
|||
6
Serdolik55
02.12.20
✎
18:44
|
(4) В итоги данные в регистр загрузил, на свойство я так и не понял как поменять?
Оно пустое загрузилось |
|||
7
AneJIbcuH
02.12.20
✎
19:36
|
(6) А ПКС для свойства описано?
"ИсходящиеДанные.Свойство = "ДатаППС";" Так может сработать, если ДатаППС - предопределенное значение. |
|||
8
Serdolik55
02.12.20
✎
22:22
|
(7) Нет оно не предопределенное, добавленное в режиме предприятия, это типовая Бухгалтерия 3.0.
Вы имеете ввиду ПКС для плана видов характеристик типом которого является Свойство? Если да, то не описывал его, непонятно с чем его сопоставлять, в источнике же его нет. Только в регистре проставил соответствие, что брать из входящих данных для Объекта, Свойства и Значения (это измерения и ресурс) На стороне приёмника, если бы можно где было это подловить, то написал бы так ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "ДатаППС") У меня данные то в регистр пишутся вместе с загрузкой поступления, но колонка Свойство пустая, вопрос как правильно его передать на сторону приемника из источника в исходящих данных? Либо как-то перехватить на стороне Приёмника, только не могу пока понять в каком месте. |
|||
9
Serdolik55
02.12.20
✎
22:30
|
Даже пробовал вот так:
ИсходящиеДанные = Новый Структура("Объект, Свойство, Значение"); ИсходящиеДанные.Объект = Источник.Ссылка; ИсходящиеДанные.Свойство = "ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту(""Имя"",""ДатаППС"")"; ИсходящиеДанные.Значение = Истина; ВыгрузитьПоПравилу( , , ИсходящиеДанные, , "ДополнительныеСведения"); На стороне Приемника Объект и Значение в регистре сведений ДополнительныеСведения заполняются, а вот Свойство пустое. Как его передать правильно? |
|||
10
Serdolik55
03.12.20
✎
09:45
|
ауу, народ) Никто не знает?
|
|||
11
Ёпрст
03.12.20
✎
10:22
|
Само пко ДополнительныеРеквизитыИСведения хоть есть ? чего там понаписал ? Там достаточно оставить пустой источник с галками получить из входящих данных и в приёмнике описать свойства.. усё. В выгрузитьПо Правилу пихать структуру, свой свойство просто строкой, оно само найдет
|
|||
12
Serdolik55
03.12.20
✎
10:37
|
(11) да, ПКС для регистра сведений есть всё как ты написал. Или ты имеешь ввиду ПКО для Планов видов характеристик ещё?
У меня всё переносит, но свойство не пишется. Напиши пример, как Свойство строкой указать. Сейчас вот так написано: ИсходящиеДанные = Новый Структура("Объект, Свойство, Значение"); ИсходящиеДанные.Объект = Источник.Ссылка; ИсходящиеДанные.Свойство = "ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту(""Имя"",""ДатаППС"")"; ИсходящиеДанные.Значение = Источник.ДатаППС; ВыгрузитьПоПравилу( , , ИсходящиеДанные, , "ДополнительныеСведения"); |
|||
13
Serdolik55
03.12.20
✎
15:41
|
так никто и не знает?
|
|||
14
welwel
03.12.20
✎
15:56
|
В типовые правила обмена ут10 бп3 смотрели? Емнип там было что-то про запись доп ведений или аналогичное после загрузки. Отдельным циклом ПослеЗагрузки в самой конвертации.
|
|||
15
welwel
03.12.20
✎
16:01
|
(14) +
Там в каждом ПКО док-тов в ПослеЗагрузки есть такое: Если Объект.ЭтоНовый() Тогда Параметры.ДокументыСОпределениемДопРеквизитов.Добавить(Объект.ПолучитьСсылкуНового()); Иначе Параметры.ДокументыСОпределениемДопРеквизитов.Добавить(Объект.Ссылка); КонецЕсли; |
|||
16
welwel
03.12.20
✎
16:06
|
(15) +
там же аккумулируйте в каком-нибудь массиве и все нужные данные, а в ПослеЗагрузкиДанных конвертации пишите их. |
|||
17
Serdolik55
03.12.20
✎
16:15
|
(16) У меня на стороне источника(УТ 10.3) нет доп реквизитов, я хочу некоторые реквизиты источника запихнуть в доп сведения на стороне приемника.
На стороне приемника это запись их в регистр сведений Дополнительные сведения, делаю через Исходящие данные и ВыгрузитьПоправилу(), у меня запись в регистр добавляется Ссылка и значение ДатаППС, а вот Свойство (это ПВХ) оно пустое, так как на стороне приемника я не понимаю как его указать в исходящих данных. Либо как-то исходящие данные перехватывать на стороне Приемника уже и там подменять на нужный ПВХ. Но в каком событии? |
|||
18
welwel
03.12.20
✎
16:26
|
(17) вы же в (0),если правильно понял, хотели передавать через параметры часть данных. В ПослеЗагрузки пко документа таким образом будут все данные в распоряжении. Это к тому, чтоб не конвертировать рс и пвх.
|
|||
19
welwel
03.12.20
✎
16:29
|
Я бы собрал все данные из параметров на стороне приемника в коллекцию и записал их все вместе в ПослеЗагрузкиДанных. Ссылки на документы известны - см (15).
|
|||
20
welwel
03.12.20
✎
16:36
|
(19) ПослеЗагрузкиДанных исполняется после загрузки всех обьектов, так что можно записать РС без опасений, что объект ещё отсутствует в базе.
|
|||
21
welwel
03.12.20
✎
16:42
|
(20) +
Имхо логичнее и не нужно конвертировать Регистр сведений Дополнительные реквизиты, а на стороне приемника после загрузки данных вызвать соответствующую процедуру для записи дополнительных реквизитов, не вдаваясь в организацию их хранения в бд. |
|||
22
Serdolik55
03.12.20
✎
16:54
|
(21) Спасибо! сейчас попробую в ПослезагрузкиДанных запихнуть запись в регистр сведений.
А к параметрам объекта как обратиться в этом обработчике? У меня вся инфа в них. В обработчике После загрузки можно так Параметр_ДатаППС = ПараметрыОбъекта["ДатаППС"], то тут объект ещё не в БД. |
|||
23
welwel
03.12.20
✎
16:59
|
(22) в ПослеЗагрузки пко именно так и обращаться. Потом затолкать в массив или тз - аналогично тому как в (15). В ПослеЗагрузкиДанных перебрать массив и уже писать РС.
|
|||
24
welwel
03.12.20
✎
17:01
|
Типовые правила (14) подгрузите и посмотрите.
|
|||
25
Serdolik55
03.12.20
✎
17:02
|
(22) Благодарю!
Сейчас попробую |
|||
26
welwel
03.12.20
✎
17:03
|
(24) +
Емнип макет типовых правил в плане обмена в конфигурации лежит. |
|||
27
welwel
03.12.20
✎
17:04
|
(26) *конфигурации ут
|
|||
28
Serdolik55
03.12.20
✎
17:06
|
(27) Понял, спасибо!
|
|||
29
welwel
03.12.20
✎
17:08
|
Там же могут быть примеры и записи рс доп реквизиты. Пройдитесь поиском имени рс по макету правил.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |