Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Конвертация данных: после загрузки объекта нужно записать данные в регистр сведений

Конвертация данных: после загрузки объекта нужно записать данные в регистр сведений
Я
   Serdolik55
 
02.12.20 - 14:03
Коллеги, день добрый!
Стоит такая задача: есть обмен Поступления товаров и услуг между УТ 10.3 и Бух.3.0 .
В Бухгалтерию 3.0 нужно после загрузки объекта в документ Поступление товаров и услуг добавить Дополнительные сведения (Регистр сведений Дополнительные реквизиты и сведения с измерениями Объект, Свойство, Значение).
Эти доп сведения я беру из поступления на стороне Источника, которых нельзя синхронизировать через реквизиты.
Передаю их в параметры при выгрузки и на стороне приемника нужно их как-то в регистр сведений записать.
Понятно, что обработчик После загрузки объекта нельзя использовать, так как объект ещё не в базе данных записан.
Через исходящие данные тоже непонятно как организовать, так как не все измерения мне известны на стороне Источника, известны только Объект и Значение (доп. сведение), а Свойство (это План видов характеристик) -оно известно только на стороне Приемника и непонятно как его запихнуть потом в исходящие данные.
Помогите, может у кого есть мысли разумные
 
 Партнерская программа EFSOL Oblako
   Йохохо
 
1 - 02.12.20 - 14:10
"Свойство (это План видов характеристик) -оно известно только на стороне Приемника"
Выражение - Неопределено. Может быть указано произвольное строковое выражение на встроенном языке, результат вычисления которого при загрузке будет присвоен значению свойства. Если Выражение определить в теле обработчика, то дальнейшая обработка ПКС будет прекращена. Данная возможность, используется только если конфигурация-приемник реализована на платформе V8
   Serdolik55
 
2 - 02.12.20 - 14:17
(1) а как потом обратится к этом на стороне Приемника, чтобы Неопределено преобразовать в ПВХ?
   Йохохо
 
3 - 02.12.20 - 14:24
(2) результат вычисления которого _при_загрузке_ !!11
   Йохохо
 
4 - 02.12.20 - 14:25
при загрузке это и есть в приемнике
   Serdolik55
 
5 - 02.12.20 - 14:33
Ааа, то есть если у меня в ПВХ на стороне приемника это свойство называется "ДатаППС", я так и пишу в исходящих данных?
Пример:
ИсходящиеДанные            = Новый Структура("Объект, Свойство, Значение);
        ИсходящиеДанные.Объект          = Источник.Ссылка;
        ИсходящиеДанные.Свойство        = "ДатаППС";(Это ПВХ на стороне примника)
        ИсходящиеДанные.Значение        = Источник.ДатаППС;
        
        ВыгрузитьПоПравилу( , , ИсходящиеДанные, , "ДополнительныеРеквизитыИСведения");
   Serdolik55
 
6 - 02.12.20 - 18:44
(4) В итоги данные в регистр загрузил, на свойство я так и не понял как поменять?
Оно пустое загрузилось
   AneJIbcuH
 
7 - 02.12.20 - 19:36
(6) А ПКС для свойства описано?

"ИсходящиеДанные.Свойство        = "ДатаППС";"

Так может сработать, если ДатаППС - предопределенное значение.
   Serdolik55
 
8 - 02.12.20 - 22:22
(7) Нет оно не предопределенное, добавленное в режиме предприятия, это типовая Бухгалтерия 3.0.
Вы имеете ввиду ПКС для плана видов характеристик типом которого является Свойство? Если да, то не описывал его, непонятно с чем его сопоставлять, в источнике же его нет.
Только в регистре проставил соответствие, что брать из входящих данных для Объекта, Свойства и Значения (это измерения и ресурс)
На стороне приёмника, если бы можно где было это подловить, то написал бы так ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "ДатаППС")
У меня данные то в регистр пишутся вместе с загрузкой поступления, но колонка Свойство пустая, вопрос как правильно его передать на сторону приемника из источника в исходящих данных? Либо как-то перехватить на стороне Приёмника, только не могу пока понять в каком месте.
   Serdolik55
 
9 - 02.12.20 - 22:30
Даже пробовал вот так:

ИсходящиеДанные            = Новый Структура("Объект, Свойство, Значение");
ИсходящиеДанные.Объект          = Источник.Ссылка;
ИсходящиеДанные.Свойство        = "ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту(""Имя"",""ДатаППС"")";
ИсходящиеДанные.Значение        = Истина;

ВыгрузитьПоПравилу( , , ИсходящиеДанные, , "ДополнительныеСведения");

На стороне Приемника Объект и Значение в регистре сведений ДополнительныеСведения заполняются, а вот Свойство пустое.

Как его передать правильно?
   Serdolik55
 
10 - 03.12.20 - 09:45
ауу, народ) Никто не знает?
   Ёпрст
 
11 - 03.12.20 - 10:22
Само пко ДополнительныеРеквизитыИСведения хоть есть ? чего там понаписал ? Там достаточно оставить пустой источник с галками получить из входящих данных и в приёмнике описать свойства.. усё. В выгрузитьПо Правилу пихать структуру, свой свойство просто строкой, оно само найдет
   Serdolik55
 
12 - 03.12.20 - 10:37
(11) да, ПКС для регистра сведений есть всё как ты написал. Или ты имеешь ввиду ПКО для Планов видов характеристик ещё?
У меня всё переносит, но свойство не пишется. Напиши пример, как Свойство строкой указать.
Сейчас вот так написано:
ИсходящиеДанные            = Новый Структура("Объект, Свойство, Значение");
ИсходящиеДанные.Объект          = Источник.Ссылка;
ИсходящиеДанные.Свойство        = "ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту(""Имя"",""ДатаППС"")";
ИсходящиеДанные.Значение        = Источник.ДатаППС;

ВыгрузитьПоПравилу( , , ИсходящиеДанные, , "ДополнительныеСведения");
   Serdolik55
 
13 - 03.12.20 - 15:41
так никто и не знает?
   welwel
 
14 - 03.12.20 - 15:56
В типовые правила обмена ут10 бп3 смотрели? Емнип там было что-то про запись доп ведений или аналогичное после загрузки. Отдельным циклом ПослеЗагрузки в самой конвертации.
   welwel
 
15 - 03.12.20 - 16:01
(14) +
Там в каждом ПКО док-тов в ПослеЗагрузки есть такое:
Если Объект.ЭтоНовый() Тогда
    Параметры.ДокументыСОпределениемДопРеквизитов.Добавить(Объект.ПолучитьСсылкуНового());
Иначе
    Параметры.ДокументыСОпределениемДопРеквизитов.Добавить(Объект.Ссылка);
КонецЕсли;
   welwel
 
16 - 03.12.20 - 16:06
(15) +
там же аккумулируйте в каком-нибудь массиве и все нужные данные, а в ПослеЗагрузкиДанных конвертации пишите их.
   Serdolik55
 
17 - 03.12.20 - 16:15
(16) У меня на стороне источника(УТ 10.3) нет доп реквизитов, я хочу некоторые реквизиты источника запихнуть в доп сведения на стороне приемника.
На стороне приемника это запись их в регистр сведений Дополнительные сведения, делаю через Исходящие данные и ВыгрузитьПоправилу(), у меня запись в регистр добавляется Ссылка и значение ДатаППС, а вот Свойство (это ПВХ) оно пустое, так как на стороне приемника я не понимаю как его указать в исходящих данных. Либо как-то исходящие данные перехватывать на стороне Приемника уже и там подменять на нужный ПВХ. Но в каком событии?
   welwel
 
18 - 03.12.20 - 16:26
(17) вы же в (0),если правильно понял, хотели передавать через параметры часть данных. В ПослеЗагрузки пко документа таким образом будут все данные в распоряжении. Это к тому, чтоб не конвертировать рс и пвх.
   welwel
 
19 - 03.12.20 - 16:29
Я бы собрал все данные из параметров на стороне приемника в коллекцию и записал их все вместе в ПослеЗагрузкиДанных. Ссылки на документы известны - см (15).
   welwel
 
20 - 03.12.20 - 16:36
(19) ПослеЗагрузкиДанных исполняется после загрузки всех обьектов, так что можно записать РС без опасений, что объект ещё отсутствует в базе.
   welwel
 
21 - 03.12.20 - 16:42
(20) +
Имхо логичнее и не нужно конвертировать Регистр сведений Дополнительные реквизиты, а на стороне приемника после загрузки данных вызвать соответствующую процедуру для записи дополнительных реквизитов, не вдаваясь в организацию их хранения в бд.
   Serdolik55
 
22 - 03.12.20 - 16:54
(21) Спасибо! сейчас попробую в ПослезагрузкиДанных запихнуть запись в регистр сведений.
А к параметрам объекта как обратиться в этом обработчике? У меня вся инфа в них. В обработчике После загрузки можно так Параметр_ДатаППС = ПараметрыОбъекта["ДатаППС"], то тут объект ещё не в БД.
   welwel
 
23 - 03.12.20 - 16:59
(22) в ПослеЗагрузки пко именно так и обращаться. Потом затолкать в массив или тз - аналогично тому как в (15). В ПослеЗагрузкиДанных перебрать массив и уже писать РС.
   welwel
 
24 - 03.12.20 - 17:01
Типовые правила (14) подгрузите и посмотрите.
   Serdolik55
 
25 - 03.12.20 - 17:02
(22) Благодарю!
Сейчас попробую
   welwel
 
26 - 03.12.20 - 17:03
(24) +
Емнип макет типовых правил в плане обмена в конфигурации лежит.
   welwel
 
27 - 03.12.20 - 17:04
(26) *конфигурации ут
   Serdolik55
 
28 - 03.12.20 - 17:06
(27) Понял, спасибо!
   welwel
 
29 - 03.12.20 - 17:08
Там же могут быть примеры и записи рс доп реквизиты. Пройдитесь поиском имени рс по макету правил.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.