Имя: Пароль:
1C
1С v8
КД, передача несуществующего реквизита таб. части
,
0 novichok79
 
10.10.12
01:48
доброй ночи!
дорабатываю правила обмена между УТ 10.3 и БП 2.0
в УТ 10.3 в заказах покупателей указывается сезон продаж.
задача следующая:
при переносе платежных документов мне необходимо вытащить сезон из заказа.
в обработчике ПередОбработкойВыгрузки таб. части "РасшифровкаПлатежа"
я формирую ТЗ со значениями сезона для каждой строки (сделки).
полученная ТЗ помещается в ИсходящиеДанные.
в самой табличной части добавлено ПКС "СезонПродаж" без реквизита-источника,
в обработчике ПередВыгрузкойСвойства я нахожу сезон в таблице значений
и помещаю в параметр (структура ПараметрыОбъекта).
но данная структура заполняется для объекта, а не для табличной части.
вопрос следующий - как передать значение реквизита в базу-приемник но для каждой строки ТЧ.
бодрствующие знатоки КД, помогите пожалуйста. заранее благодарю.
1 zladenuw
 
10.10.12
02:02
глянь типовые.
2 novichok79
 
10.10.12
02:05
(1) а что конкретно смотреть?
3 zladenuw
 
10.10.12
02:07
взаиморасчеты выгрузка их. там с на основание данных регистра создается документ. там есть создание и заполнение тч
4 zladenuw
 
10.10.12
02:07
много копировать.
5 novichok79
 
10.10.12
04:16
еще варианты есть?
6 Рэйв
 
10.10.12
05:52
Сделай у ИсходящиеДанные вложенную ТЗ с именем Расшифровкаплатежи и колонками совпадающими по именам с приемником. Соответсвенно заполни и все должно получиться
7 Рэйв
 
10.10.12
05:52
*РасшифровкаПлатежа
8 skiller3000
 
10.10.12
05:54
(7) спасибо, а можно подробнее, или пример может быть какой-то
9 skiller3000
 
10.10.12
05:54
(7) в КД была похожая проблема
10 novichok79
 
10.10.12
05:55
(9) еще кто-то с похожей задачей, я не один :)
11 Рэйв
 
10.10.12
06:00
(8)

Да чего там пример то?

ИсходящиеДанные=Новый ТаблицаЗначений;
ИсходящиеДанные.Колонки("РеквизитДокумента1");
//...и.т.д
ИсходящиеДанные.Колонки("РасшифровкаПлатежа");
ТЗ=Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("СезонПродаж");
//...и т.д.
//заполняешь ТЗ как таб часть

НовСтр=ИсходящиеДанные.Добавить();
НовСтр.РасшифровкаПлатежа=ТЗ.Скопировать();

//....
как то так
У меня как назло КД под рукой нет и я давно уже с ней не работал. Так что за подробностями смотри в псалтырь по КД от Хрусталевой :-)
12 Рэйв
 
10.10.12
06:01
*ИсходящиеДанные.Колонки.Добавить()
13 novichok79
 
10.10.12
06:04
(12) большое спасибо, буду пробовать.
14 novichok79
 
10.10.12
06:44
(12) а как выгрузить значение из этой ТЗ и получить ссылку на стороне приемника, если в приемнике в таб. части такого реквизита нет? пролистал книжку Боркина-Филатова - и такого примера не нашел
15 Рэйв
 
10.10.12
06:46
(14)А какой тип в приемнике?
16 novichok79
 
10.10.12
06:50
(15) реквизита в ТЧ нет ни в приемнике, ни в источнике.
я могу передать этот реквизит в параметр объекта, тогда выгружается, но это при выгрузке табличной части не подходит.
в идеале после загрузки документа в приемник надо вытащить таблицу с соответствием номера строки и сезона, но надо чтобы этот реквизит "сезон" был найден (или создан если его нет) в аналогичном справочнике в базе-получателе...
17 Рэйв
 
10.10.12
06:54
(16)Ты же по каким то условиям "находишь/создаешь" этот свой сезон?  В приемнике условия вполне соблюдаются.
Напиши в ПослеЗагрузки в ПКО алгоритм по его нахождению или созданию
18 novichok79
 
10.10.12
06:57
(17) в ПКС в поле источник я указываю пустое значение, а в поле приемник указываю параметр объекта (галочка передавать в параметр), а нахожу его в запросе перед выгрузкой ТЧ и помещаю таблицу значений в исходящие данные, в ПКС по номеру строки вытаскиваю значение... все б ничего, но надо передать эти значения в приемник... но не через параметры объекта, т. к. для табличной части это не сработает
19 novichok79
 
10.10.12
07:52
есть еще варианты?
20 novichok79
 
10.10.12
08:52
ап!
21 novichok79
 
10.10.12
14:22
вопрос решен - тему можно закрывать. всем спасибо за помощь.