|
1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
Serdolik55 02.12.20 - 14:03 | Коллеги, день добрый!
Стоит такая задача: есть обмен Поступления товаров и услуг между УТ 10.3 и Бух.3.0 . В Бухгалтерию 3.0 нужно после загрузки объекта в документ Поступление товаров и услуг добавить Дополнительные сведения (Регистр сведений Дополнительные реквизиты и сведения с измерениями Объект, Свойство, Значение). Эти доп сведения я беру из поступления на стороне Источника, которых нельзя синхронизировать через реквизиты. Передаю их в параметры при выгрузки и на стороне приемника нужно их как-то в регистр сведений записать. Понятно, что обработчик После загрузки объекта нельзя использовать, так как объект ещё не в базе данных записан. Через исходящие данные тоже непонятно как организовать, так как не все измерения мне известны на стороне Источника, известны только Объект и Значение (доп. сведение), а Свойство (это План видов характеристик) -оно известно только на стороне Приемника и непонятно как его запихнуть потом в исходящие данные. Помогите, может у кого есть мысли разумные | ||
Йохохо 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 | |||
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 | |||
welwel 24 - 03.12.20 - 17:01 | Типовые правила (14) подгрузите и посмотрите. | ||
Serdolik55 25 - 03.12.20 - 17:02 | |||
welwel 26 - 03.12.20 - 17:03 | |||
welwel 27 - 03.12.20 - 17:04 | (26) *конфигурации ут | ||
Serdolik55 28 - 03.12.20 - 17:06 | (27) Понял, спасибо! | ||
welwel 29 - 03.12.20 - 17:08 | Там же могут быть примеры и записи рс доп реквизиты. Пройдитесь поиском имени рс по макету правил. |
|
Список тем форума |