|
Вопрос по конвертации | ☑ | ||
---|---|---|---|---|
0
serg-lom89
17.01.18
✎
10:49
|
добрый день
Вопрос по конвертации В базе источник есть реквизит у документа ПКО контрагент(составной тип) В базе приемник добавил реквизит Касса_ККМ.(типы естественно не совпадают). будьте добры подскажите как конвертации указать что бы подставлялось определенно значение в базе приемник? (слабо "шарю" по конвертации поэтому прошу помощи). |
|||
1
Рэйв
17.01.18
✎
10:53
|
В ПослеЗагрузки анализируй Объект и заполняй как надо
|
|||
2
Рэйв
17.01.18
✎
10:53
|
или ты просто из Контрагента в Кассы гонишь данные что ли?
|
|||
3
serg-lom89
17.01.18
✎
11:01
|
(2) ну что то типо того)
там составной тип. Я хочу что бы этот реквизит при заполнении в базе источника и при "переброске" в базу приемник подставлялось значение определенное. |
|||
4
serg-lom89
17.01.18
✎
11:03
|
Контрагента это название реквизита просто.)
|
|||
5
thobise
17.01.18
✎
11:06
|
Явно указать правила конвертации свойств для каждого типа.
Читать справку |
|||
6
Мандалай
17.01.18
✎
11:22
|
Если заранее значение извествно, то ПослеЗагрузки пишешь: Объект.НужныйРеквизит = НужноеЗначение.
Возможно еще и Объект.Записать() потребуется. |
|||
7
serg-lom89
17.01.18
✎
11:31
|
(6) а как указать это значение при выгрузке из источника?
|
|||
8
serg-lom89
17.01.18
✎
11:35
|
вопрос такой еще
если в ПКО ,перед выгрузкой ВходящиеДанные есть структура Как мне ее потом прочитать при загрузке в базу приемник? |
|||
9
serg-lom89
17.01.18
✎
11:38
|
(8)если бы можно было прочитать структуру тогда может и получилось ..
|
|||
10
Zakarum
17.01.18
✎
12:07
|
(8) Этого сделать нельзя. При загрузке ты имеешь дело с готовым XML-файлом с выгруженными данными. В нем содержатся твои объекты в виде их моделей XML, так сказать, а также алгоритмы обработчиков ПередЗагрузкой(), ПриЗагрузке(), ПослеЗагрузки(), если ты их используешь конечно.
Если в загружаемом объекте тебе нужно изменить значение реквизита у объекта найденного или создаваемого, делаешь это как в (6). Чтобы получить это значение при выгрузке из источника, как вариант можно в обработчике ПриВыгрузке() проделать нужные манипуляции с данными. Посмотри для этого справку - есть хорошая кнопка в самом верху окна КД, "Информация по обработчикам". Становишься на нужный обработчик, нажимаешь эту кнопку и читаешь что тебе доступно в данном обработчике. |
|||
11
serg-lom89
17.01.18
✎
12:25
|
почитал справку
Есть ПараметрыОбъекта - либо Неопределено либо Соответствие, в котором хранятся дополнительные параметры переденные для данного объекта из источника в приемник. Если параметров передано не было, то ПараметрыОбъекта = Неопределено. получается если я перед выгрузкой передам какое значение параметра потом смогу его после загрузки прочитать. а как указать этот параметр при выгрузке? |
|||
12
Zakarum
17.01.18
✎
12:42
|
(11)Да, действительно, дополнительные данные по объекту можно передать в обработчике "После Выгрузки В Файл":
"Событие выполняется после выгрузки объекта в файл обмена. Может быть использован для выгрузки дополнительной информации по выгруженному объекту в файл обмена. При этом информация будет записана в файл обмена после выгруженного объекта." смотри здесь: v8: Конвертация данных - ПКО - ПослеЗагрузки - переменная ПараметрыОбъекта |
|||
13
mistеr
17.01.18
✎
12:47
|
(3) Если значение предопределенное, то в ПКС пишешь строку с именем. Если нет, то можно так:
Выражение = "Справочники.КассыОрганизации.НайтиПоКоду("КОД")" |
|||
14
serg-lom89
17.01.18
✎
13:08
|
(12)
а можно чуть по подбробнее я в ПКО вставил код События = Новый Соответствие; События.вставить("КодКассы","А00000092"); И в ПКО добавил загрузки добавил Если ПараметрыОбъекта <>неопределено тогда Объект.касса_ККМ =справочники.кассы.найтиПоКоду("А00000092"); Объект.записать(); конецЕсли; Но ничего не поменялось( |
|||
15
serg-lom89
17.01.18
✎
13:11
|
что я делаю не так?
|
|||
16
serg-lom89
17.01.18
✎
13:11
|
я добавил в ПКО только это больше ничего не добавлял
|
|||
17
mistеr
17.01.18
✎
13:13
|
(14) КодКассы сделай параметром.
В ПКС ПередВыгрузкой пиши: Выражение = "Справочники.Кассы.НайтиПоКоду(" + Параметры.КодКассы +")" |
|||
18
mistеr
17.01.18
✎
13:13
|
(16) Внимательно читай, что тебе пишут.
|
|||
19
serg-lom89
17.01.18
✎
13:33
|
(18) сорри за назойливость просто 2 -ой раз только с конвертацией сталкиваюсь.
ПКО https://ibb.co/m9ybCR ПКС https://ibb.co/frG2mm все равно прошу помощи |
|||
20
serg-lom89
17.01.18
✎
13:40
|
что я все таки делаю не так в конвертации?
извините за назойливость!) |
|||
21
youalex
17.01.18
✎
13:44
|
(11) В ПКС - есть галка Передавать в Параметр. И поле ИмяПараметра.
|
|||
22
serg-lom89
17.01.18
✎
13:46
|
передавать даные в параметр я указал
имя задал События |
|||
23
serg-lom89
17.01.18
✎
13:52
|
(22) но почему то все равно не работает.
|
|||
24
youalex
17.01.18
✎
13:53
|
Теперь можешь ловить его в ПКО, событие ПослеЗагрузкиОбъекта.
|
|||
25
Мандалай
17.01.18
✎
13:53
|
Ищи Бояркина - мануал по конвертации. там все описано.
|
|||
26
youalex
17.01.18
✎
13:56
|
(19) тебе здесь не Выражение нужно, а "Значение = ", если через Параметр делаешь.
|
|||
27
serg-lom89
17.01.18
✎
13:57
|
(25) да,надо..кинули в бой без подготовки)
|
|||
28
Skylark
17.01.18
✎
15:13
|
Для составного типа надо что-то вроде вот этого в событии "ПередВыгрузкой" в правиле конвертации свойства которое имеет составной тип:
Если ОбъектКоллекции.СубконтоДт1 = "По всем работникам" Тогда ИмяПКО = "ПоВсемРаботникам"; ИначеЕсли ТипЗнч(ОбъектКоллекции.СубконтоДт1) = Тип("СправочникСсылка.ФизическиеЛица") Тогда ИмяПКО = "ФизическиеЛица"; ИначеЕсли ТипЗнч(ОбъектКоллекции.СубконтоДт1) = Тип("СправочникСсылка.Контрагенты") Тогда ИмяПКО = "Контрагенты"; ИначеЕсли ТипЗнч(ОбъектКоллекции.СубконтоДт1) = Тип("СправочникСсылка.Субконто") Тогда // отдельная обработка справочника субконто Если ЗначениеЗаполнено(ОбъектКоллекции.СчетДт) Тогда ВидыСубконто = ОбъектКоллекции.СчетДт.ВидыСубконто; Если ВидыСубконто.Количество() >= 1 Тогда ВремИмяПКО = Данные.СоответствиеПравилКонвертацииВидовСубконто.Получить(ВидыСубконто[0].ВидСубконто); Если ЗначениеЗаполнено(ВремИмяПКО) Тогда ИмяПКО = ВремИмяПКО; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; |
|||
29
Skylark
17.01.18
✎
15:14
|
Ну и соответственно для каждого типа создать правила конвертации
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |