Имя: Пароль:
1C
1С v8
Конвертация. ПриВыгрузке свое значение
0 Симпатяга
 
19.01.19
16:19
Доброго времени суток.
Осваиваю Конвертацию, прошу сильно не пинать)

Вопрос такой.
Как заполнить значение Свойства при выгрузке, которого нет в источнике, значением, полученным в том же Источнике.

Например. В источнике справочник КонтактноеЛицо. У него есть реквизит с типом СправочникСсылка. В этом справочнике нужное мне значение. Строка например
А в источнике есть тот же справочник КонтактноеЛицо, но у него значение нужного мне свойства вынесли в реквизит с типом строка.
Нужно Приемник.Свойство = Источник.Реквизит.Свойство
1 Симпатяга
 
19.01.19
16:20
в описании обработчиков ПриВыгрузке следующий пример

ИнформацияОПользователе = СоздатьУзел("ИнформацияОПользователе");
УстановитьАтрибут(ИнформацияОПользователе, "АутентификацияОС", Источник.АутентификацияОС);
УстановитьАтрибут(ИнформацияОПользователе, "АутентификацияСтандартная", Источник.АутентификацияСтандартная);
УстановитьАтрибут(ИнформацияОПользователе, "ПоказыватьВСпискеВыбора", Источник.ПоказыватьВСпискеВыбора);
УстановитьАтрибут(ИнформацияОПользователе, "ПользовательОС", Источник.ПользовательОС);
УстановитьАтрибут(ИнформацияОПользователе, "ПолноеИмя", Источник.ПолноеИмя);
ЧислоРолей = 1;
Для Каждого Роль Из Источник.Роли Цикл
УстановитьАтрибут(ИнформацияОПользователе, "Роль"+ЧислоРолей, Роль.Имя);
Сообщить(Роль.Имя);
ЧислоРолей = ЧислоРолей + 1;
КонецЦикла;
ДобавитьПодчиненный(Приемник, ИнформацияОПользователе);
2 Симпатяга
 
19.01.19
16:21
пробовал так

ИнформацияОПользователе = СоздатьУзел("Фамилия");
УстановитьАтрибут(ИнформацияОПользователе, "Фамилия", Источник.КонтактноеЛицо.Фамилия);
ДобавитьПодчиненный(Приемник, ИнформацияОПользователе);

не заработало
3 SleepyHead
 
гуру
19.01.19
17:01
В источнике  - ничего. В правилах конвертации свойства в приемнике -

Значение = .... (тут выражение);
4 Симпатяга
 
19.01.19
17:02
(3) да. пока ждал ответа, попробовал сам этот вариант)
все заработало. спасибо
5 Симпатяга
 
21.01.19
16:26
а еще вопрос по конвертации.
Если на стороне Источника есть объект с реквизитом, заполненным предопределенным справочником.
По коду этого справочника, мне нужно подставить значение реквизита Приемника, но тип этого справочника другой. и он не будет переносится.

Если Источник.ВидДокумента = Справочники.ВидыДокументов.Паспорт тогда
     Приемник.ВидДокументаВПриемнике = Спраовочники.ВидыДокументовВПриемнике.НайтиПоКоду("1");
ИначеЕсли Источник.ВидДокумента = Справочники.ВидыДокументов.ПаспортИностр тогда
     Приемник.ВидДокументаВПриемнике = Спраовочники.ВидыДокументовВПриемнике.НайтиПоКоду("2");
.
.
.
КонецЕсли
6 Симпатяга
 
21.01.19
16:28
(5) При ПКС ПриВыгрузке ВидДокументаВПриемнике я могу задать условие, но чем заполнять Значение???
Строкой "Справочники.ВидыДокументовВПриемнике.НайтиПоКоду("1")"???
Или это ПослеЗагрузки в ПКО?
7 Йохохо
 
21.01.19
16:38
(6) можно передать код в ПКО ВидыДокументовВПриемнике например
Значение = Новый Структура;
Если Источник.ВидДокумента = Справочники.ВидыДокументов.Паспорт тогда
Значение.Вставить("Код", "1");
ИначеЕсли Источник.ВидДокумента = Справочники.ВидыДокументов.ПаспортИностр тогда
Значение.Вставить("Код", "2");
8 Симпатяга
 
21.01.19
16:41
(7) а как инициализировать заполнение по этому Коду при загрузке в Приемник
9 Симпатяга
 
21.01.19
16:42
(8) + (7) я так понимаю это ПриВыгрузке в ПКО. а дальше что делать?
10 Симпатяга
 
21.01.19
16:43
(9) это не читать
11 Симпатяга
 
21.01.19
16:43
(8) разве можно использовать Значение в ПКО?
12 Йохохо
 
21.01.19
16:45
(8) ничего не надо, типовой метод сработает. Инициализируешь в ПКО Это Группа Наименование ПометкаУдаления хоть как то, Код придет при обработке Значение + галка ПолеПоиска
(11) в ПКС значение структура будет передано в пко
13 Симпатяга
 
21.01.19
16:50
(12) объясните, в каких обработчиках.
14 Йохохо
 
21.01.19
16:53
(13) в ПКС Перед или При
15 Симпатяга
 
21.01.19
17:41
(14) Сделал ПриВыгрузке в ПКС

Значение = Новый Структура;
Если Источник.ДокументВид = Справочники.ДокументыУдостоверяющиеЛичность.ИМНС21 тогда
    Значение.Вставить("Наименование", "Паспорт гражданина РФ");
ИначеЕсли Источник.ДокументВид = Справочники.ДокументыУдостоверяющиеЛичность.ИМНС91 тогда
    Значение.Вставить("Наименование", "Иные документы, выдаваемые органами МВД");
ИначеЕсли Источник.ДокументВид = Справочники.ДокументыУдостоверяющиеЛичность.ИМНС10 тогда
    Значение.Вставить("Наименование", "Иностранный паспорт");
КонецЕсли

Не взлетело. в Источнике по коду искать нельзя. Только по наименованию.
В файл выгрузки ничего не попало
16 Симпатяга
 
21.01.19
17:42
(15) реквизиты все правильно написаны. проверил 10 раз уже
17 Симпатяга
 
21.01.19
17:45
18 hhhh
 
21.01.19
17:46
(15) всё там можно
19 Симпатяга
 
21.01.19
17:46
(18) ?
20 Симпатяга
 
21.01.19
17:50
(18) в справочнике кода нет в стандартных реквизитах
21 Йохохо
 
21.01.19
17:58
в (15) должно работать вроде, проверь ПКО для виды документов, мб надо "не запоминать выгруженные" поставить
22 Симпатяга
 
21.01.19
18:01
(21) стоит галка
23 Симпатяга
 
21.01.19
18:05
(21)  я в ПКО вообще ничего не делал.
Только в ПКС. для свойства ВидДокумента
https://yadi.sk/i/gB44HuFLRn58bg
24 Вафель
 
21.01.19
18:31
если что-то можно кодом заполнить в уже загруженных, то лучше кодом (ПередЗагрузкой).
меньше файл выгрузки будет