Имя: Пароль:
1C
1С v8
КД. Присвоить свойству значение
0 vicof
 
08.04.13
13:47
Источник и Приемник - z-отчет и отчет о розничных продажах.
В приемнике есть свойство "Договор эквайринга", в источнике - нет.
При выгрузке свойства делаю так:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    КредитныеКартыСрезПоследних.Контрагент КАК Эквайрер,
|    КредитныеКартыСрезПоследних.Договор КАК ДоговорВзаиморасчетов
|ИЗ
|    РегистрСведений.КредитныеКарты.СрезПоследних(&Дата) КАК КредитныеКартыСрезПоследних
|ГДЕ
|    КредитныеКартыСрезПоследних.Фирма = &Фирма";

Запрос.УстановитьПараметр("Дата",  Источник.Дата);
Запрос.УстановитьПараметр("Фирма", Источник.Фирма);

Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
ВыгрузитьПоПравилу(,,Выборка,,"ДоговорыЭквайринга");

В файле объект появляется, но свойство остается пустым.
Как значению присвоить тот объект, который у меня выгрузился по правилу?

ВыгрузитьПоПравилу(,,Выборка,,"ДоговорыЭквайринга",,Истина); - так не помогает.
УзелСсылки = ВыгрузитьПоПравилу(,,Выборка,,"ДоговорыЭквайринга",,Истина); - так тоже.
1 Wobland
 
08.04.13
13:54
я у себя в случае отсутствия реквизита в источнике как-то определяюсь с ним на стороне приёмника при загрузке..
2 Wobland
 
08.04.13
13:55
КоличествоДоговоров=Результат.Количество();
   Если КоличествоДоговоров>0 Тогда
       Объект.ДоговорКонтрагента=Результат[0].Ссылка;
   Иначе
       НовыйДоговор=Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
       НовыйДоговор.Наименование="Основной договор";
...
3 Aleksey
 
08.04.13
13:55
а где
Значение = ..
4 Wobland
 
08.04.13
13:56
(3) ВыгрузитьПоПравилу
5 Aleksey
 
08.04.13
13:57
(4) а нафиг оно тут нужно?
6 vicof
 
08.04.13
14:01
(3) Значение = Выборка?
не канает.
(5) Ну вообще оно выгружает xml-узел ссылки, но как с него получить в свойство ссылку на этот xml-узел
7 vicof
 
08.04.13
14:02
+(6) вечерком еще зайду, рабочий день кончился. Чувствую, что истина где-то рядом.
8 Wobland
 
08.04.13
14:06
(5) а фих знает. я вообще нахожусь на грани понимания ;)
9 Aleksey
 
08.04.13
14:58
(6) Значение = Выборка.ДоговорВзаиморасчетов
10 Aleksey
 
08.04.13
15:01
Я правда одного понять не могу, почему нет фильтра по контрагенту? и что такое свойство "Договор эквайринга". Оно одно или их несколько?
11 vicof
 
08.04.13
17:33
(9) Не пойдет.
(10) Ок, расскажу более конкретно.
В Источнике в z-отчете есть реквизит ПлатежнаяКарта". И создан регистр сведений КредитныеКарты, который содержит информацию о карте, эквайреру и договору взаиморасчетов. Т.е. договора эквайринга как сущности в источнике нет.

В приемнике же существует реквизит договор эквайринга, в котором есть реквизиты эквайрер и договор взаиморасчетов.

Т.е. мне нужно найти по эквайреру и договору взаиморасчетов договор эквайринга в приемнике.
Для того, чтобы его найти, мне нужен запрос из (0).

Фильтра по контрагенту нет, потому что связка эквайрер + договор взаиморасчетов в существующей базе однозначно определяют необходимый договор эквайринга.

Могу правила кинуть посмотреть, если нужно.
12 Kondarat
 
08.04.13
17:41
Значение = Новый Структура("Наименование,Эквайрер,ДоговорВзаиморасчетов","Договор эквайринга", Выборка.Эквайер,Выборка.ДогворВхзаиморасчетов);
13 vicof
 
08.04.13
17:42
(12) щас попробую
14 Зойч
 
08.04.13
17:50
Значение = Договор
ИмяПКО = "ДоговорыЭквайринга"
15 vicof
 
08.04.13
18:14
(14) ПКО уже создано. И в него данные передаются. В источнике нет реквизита "ДоговорЭквайринга", есть только поля, по которым его можно найти в приемнике.

Вот правила
http://yadi.sk/d/7PDoZI8_3tTcw

Попробую резюмировать: нужно по двум полям в источнике найти третье поле в приемнике.
16 Naumov
 
08.04.13
18:21
(15) Для ПКО z-отчет в z-отчет создаешь сам конвертацию свойства с пустым источником и приемником "ДоговорЭквайринга"
в событии перед выгрузкой свойства пишешь свой поиск договора и присваиваешь
Значение = ТвойНайденныйДоговор;

оно само все выгрузится и подставится где надо.
17 Naumov
 
08.04.13
18:22
да. только для выгрузки свойства укажи ПКО, которое договор в договор выгрузит.
18 vicof
 
08.04.13
18:30
(16) см (14) В источнике НЕТ реквизита "договор эквайринга". Конфы разные.
Я не могу значению свойства присвоить выборку из результата запроса.
19 Kondarat
 
08.04.13
18:32
Ну и что не получилось как в 12?
Убери в ПКО ДоговорыЭквайринга галки ПолучатьИзВходящихДанных, заполни в структуре все ПКС из этого ПКО. И все.
20 vicof
 
08.04.13
18:45
(19) Большое спасибо. Еще учиться и учиться :)
21 Kondarat
 
08.04.13
18:45
Получилось?
22 vicof
 
08.04.13
18:46
(21) Ага
23 Naumov
 
08.04.13
18:53
(18) Млин, ты читаешь чего тебе пишут? не выборку присваиваешь, а найденную при помощи запроса ссылку!
И пофиг есть источник или нет.
24 vicof
 
08.04.13
19:01
(23) Еще раз говорю, НЕТ ссылки в источнике. Я ее ни при помощи запроса, никак найти не смогу, ее физически нет.
25 Naumov
 
08.04.13
19:06
(24) Повторяю русскими буквами: НАЧХАТЬ, что нет.
в событии твоим запросом находишь и присваиваешь переменной ЗНАЧЕНИЕ. Дальше система все сделает за тебя.
26 Naumov
 
08.04.13
19:07
Лана. не понимаешь как сделать и наплевать. Получилось с другим способом - вперед и с песней. потом поймешь, как по-другому можно делать.
27 vicof
 
08.04.13
19:09
(25) Да это понятно, непонятно было, что присваивать значению.
А Kondarat подсказал, что можно структуру присваивать.