Имя: Пароль:
1C
 
v8: Частичная замена данных в приемнике при помощи Конвертации данных
0 ZolotarevAA
 
03.02.10
17:27
Подскажите, возможно ли такое в Конвертации данных:
в базе-приемнике имеется некий объект, например документ. Необходимо частично скорректировать наполнение его табличной части. Таблицу выгрузки данных я подготовил, ключевые поля поиска объекта и строк мне известны. Возникает вопрос, каким образом настроить правила в конвертации, чтобы не потереть то, чего не нужно?

P.S. Ну или хотя бы направление куда двигаться подскажите. Спасибо.
1 fisher
 
03.02.10
17:31
Пока не столкнулся ни с одной задачей конвертации, которую бы не смог решить в рамках КД. Возможно практически всё, что реально формализовать.
Будут конкретные вопросы - постараюсь дать конкретные советы.
2 Живой Ископаемый
 
03.02.10
17:33
ну.. првое что вспоминается - там есть галки "Не заменять" или что-то такое... но уже конечно не вспомню для ПКО или для ПКС тоже... но в конце концов можно остальные ПКС удалить
3 fisher
 
03.02.10
17:35
Вопрос осознал с опозданием :)
Ни разу так не пробовал. Нужно тестить.
ИМХО, не взлетит частичная правка реквизитов :(
4 ZolotarevAA
 
03.02.10
17:39
Я могу конкретизировать задачу более детально, если это необходимо, с указанием реквизитов, табличных частей и т.д.

Допустим, в нашем виде документов "МойДокумент" есть единственная табличная часть "Основная" с реквизитами А,Б и С. В базе имеется экземпляр такого объекта. Я хочу изменить наполнение реквизита Б по ключу А, не изменяя значения реквизита С.
5 Aleksey_3
 
03.02.10
17:41
Легко.
В ПКО есть метод После загрузки. И там ты можешь программно заполнить свой документ
6 fisher
 
03.02.10
17:41
(4) Т.е. загрузка в ту же базу, что и выгрузка? Так что мешает прописать полные правила для всех реквизитов 1:1 (т.е. выгружать ВСЕ данные объекта), а те что нужно, по ходу конвертировать?
7 fisher
 
03.02.10
17:43
(5) Тогда проще вообще свою обработку наваять - КД никаких преимуществ в этом случае не даст.
8 ZolotarevAA
 
03.02.10
17:45
(6) Конечно нет, базы разные на уровне конфигураций. Экземпляр получен при помощи другого правила. Можно запихнуть туда свой "костыль" , но объект очень "тяжелый" и перегружать его повторно полностью - вариант не очень.
9 NcSteel
 
03.02.10
17:45
(5) +1

Что то вроде


Приемник.Реквизит = Приемник.Ссылка.Реквизит
10 ZolotarevAA
 
03.02.10
17:46
(7) Я бы с радостью так и сделал, если бы не сложная конвертация полей, входящих в ключи.
11 Господин ПЖ
 
03.02.10
17:47
только не Приемник, а Объект
12 NcSteel
 
03.02.10
17:47
(11) Ну я конвертация больше года не открывал.
13 fisher
 
03.02.10
17:47
(8) Тогда ты что-то не то делаешь. Ты пытаешься принять "эстафету" у другого ПКО и "допоменять" отдельные реквизиты? Я правильно понял?
14 Господин ПЖ
 
03.02.10
17:48
только там поковыряться надо чуть-чуть... по дефалту ТЧ молча заменяется вся
15 ZolotarevAA
 
03.02.10
17:50
(5) Отлично. Каким образом протащить таблицу значений (протащенную через конвертацию полей) на точку входа процедуры "После загрузки" и как к ней обращаться?
16 ZolotarevAA
 
03.02.10
17:50
(13) Абсолютно верно.
17 Господин ПЖ
 
03.02.10
17:50
(15) передать в Параметр
18 ZolotarevAA
 
03.02.10
17:52
(17) Это верно для примитивных типов. Что делать с агрегатными объектами?
19 fisher
 
03.02.10
17:53
(15) Никак
(16) Но реально загрузка данных в конфигурацию-приемник уже произведена и ты не хочешь повторно перезагружать тяжелые объекты? Звиняй, но ИМХО прийдется так и сделать. Т.е. подправить нужным образом ПКО этого объекта и перезатянуть.
20 fisher
 
03.02.10
17:55
Ибо имхается мне, что загрузка несопоставленных реквизитов объекта потрёт их к чёртовой матери. Но можешь проверить для очистки совести :)
21 Господин ПЖ
 
03.02.10
17:56
(18) uid одинаковые или нет? выгружать в параметры uid искать по ним
22 ZolotarevAA
 
03.02.10
17:59
(20) Ура. Похоже нашелся человек, который понял задачу на 100%. Может, я не очень корректно выразился в начале топика...и остальные собеседники не уловили суть.

(21) В контексте мой задачи это совершенно неважно.
23 fisher
 
03.02.10
18:02
(22) Можешь, говорю, попробовать. Можно еще с параметром "Отказ" поиграться в ПКС. Но, думаю, всё равно бока будут, т.к. изначально такой вариант в КД вряд ли предусматривался. Табличные части скорее всего целиком перегружаются в целях оптимизации и еще чего-нибуть в таком духе...
Да и что ты теряешь в конце-концов? Только время выгрузки-загрузки? ИМХО, не очень большая цена.
24 ZolotarevAA
 
03.02.10
18:03
В конце концов, если не будет иного варианта, придется расширить ПКО объекта и вызывать это самое "дополнение" по некоему флажку в параметрах. Ничего более изящного в голову не приходит.
25 Господин ПЖ
 
03.02.10
18:03
>>Можно еще с параметром "Отказ" поиграться в ПКС

не полетит... Отказ есть? Да. Нашел ссылку? Да. = Свободен.
26 fisher
 
03.02.10
18:11
(24) Ну, если это опционально должно быть, тогда да - через параметры удобнее всего. А ПКС в зависимости от флажка конвертировать по разным правилам.
(25) Не совсем понял. На всякий случай уточню. Отказ в ПКС - это отказ от выгрузки конкретного свойства. Результат, по идее, должен быть идентичен тому, как если бы это свойство вообще не сопоставлялось. Просто как еще один вариант попробовать "сберечь" данные объекта в приемнике.
27 ZolotarevAA
 
03.02.10
18:19
Ок, спасибо за участие. Завтра еще попробую "поиграться" с флажками. Если что апну тему.
28 ZolotarevAA
 
04.02.10
15:37
Как и обещал, апаю тему. Особенно приятно, что вопрос разрешился положительным образом.

Фокус удался и состоял он в том, что в процедуре "После загрузки" ПКО объекта есть доступ к объектам "Ссылка" - ссылка на найденный объект и "Объект" - загруженный объект. Таким образом, устанавливая в ложь стандартную обработку загрузки (Отказ = Истина), можно развлекаться с объектом в ИБ любым способом, насколько фантазии хватит.
29 Sonny
 
04.02.10
16:03
(28) Как-то мудрено получается. А как он запишется, если Отказ = Истина? Или ты его по ссылке получаешь и заполняешь реквизитами Объекта, а потом записываешь явным образом?
30 ZolotarevAA
 
04.02.10
16:35
(29) Да, именно так я и сделал.
31 fisher
 
05.02.10
11:17
(30) Надо же, исхитрился таки :)