![]() |
![]() |
![]() |
|
v7: Конвертация Данных: передача значений для полей поиска в ПКО | ☑ | ||
---|---|---|---|---|
0
PiotrLoginov
01.11.12
✎
16:05
|
Не смог найти информацию: как-то можно передать Исходящие данные для нескольких полей поиска ПКО прямо из ПВД? (В ПВД формирую ТаблицуЗначений.) Синтаксис такой же, как если бы я передавал Исходящие данные из обработчика Перед выгрузкой для ПКС ссылочного типа?
Заранее спасибо за подсказки. |
|||
1
leonidkorolev
01.11.12
✎
16:11
|
(0) Вроде как эта формируемая ТЗ и является типа Исходящими данными. Напрашивается просто добавить в нее колонки с нужными данные.
Можно подробнее, в какой объект загружатся данные и зачем входящие данные? |
|||
2
PiotrLoginov
01.11.12
✎
16:17
|
Переношу договора. То есть один справочник в один справочник (ПКО ДоговорыКонтрагентов) Не справляюсь. На днях консультировался по произвольному алгоритму в ПВД, сейчас вот проблема с ПКС для реквизитов ссылочного типа.
Вот например надо, чтобы в формируемом в приемнике справочнике "Договоры контрагентов" у каждого элемента был заполнен реквизит Партнер - ссылка на элемент справочника Партнеры. |
|||
3
acsent
01.11.12
✎
16:19
|
Сделай правило Контрагент > Партнер
|
|||
4
PiotrLoginov
01.11.12
✎
16:20
|
Уже сделал. В нем ПКС Наименование. Это поле, по которому будет производится поиск.
|
|||
5
PiotrLoginov
01.11.12
✎
16:25
|
(4) Отбой. Не то написал. Вы предлагаете Создать ПКС Контрагент - > Партнер? Так у меня же значения в ПКО ДоговорыКонтрагентов берутся не из источника, а из ТаблицыЗначений, формируемой в ПВД. Источника у ПКО ДоговорыКонтрагентов нету.
|
|||
6
acsent
01.11.12
✎
16:31
|
В таблице же поле контрагент ну или владелец есть?
|
|||
7
PiotrLoginov
01.11.12
✎
16:33
|
В таблице есть колонка Партнер. Значение "Партнер" для каждой строки таблицы формируется произвольным алгоритмом обработчика ПВД "Перед обработкой"
|
|||
8
PiotrLoginov
01.11.12
✎
16:35
|
Бог с ними, с несколькими полями поиска. Для начала понять бы, как передать значение в одно поле поиска. Еще раз: есть ПКО ДоговорыКонтрагентов . В нем ПКС для реквизита Партнер (реквизит - ссылочного типа). Для этого ПКС указано правило конвертации (отдельное ПКО) Партнеры, в котором создано ПКС Наименование (по нему должен производится поиск). Как же мне передать значение реквизита источника Контрагент в это поле поиска?
|
|||
9
leonidkorolev
01.11.12
✎
16:39
|
(8) В ПКС Партнер добавь в обработчик ПередВыгрузкой
ИсходящиеДанные = Новый Структура(); ИсходящиеДанные.Вставить("Наименование",Источник.Партнер); p.s. Мне интересно если в ПВД в колонку Партнер запихивать ТЗ с колонками прокатит нет? |
|||
10
PiotrLoginov
01.11.12
✎
16:43
|
Только наверное
ИсходящиеДанные.Вставить(Источник.Владелец,"Наименование"); Обычно сначала указывал в параметрах функции что вставлять, а потом уже - куда вставлять. Пробую... |
|||
11
leonidkorolev
01.11.12
✎
16:45
|
(10) Это структура
Структура (Structure) Вставить (Insert) Синтаксис: Вставить(<Ключ>, <Значение>) Параметры: <Ключ> (обязательный) Тип: Строка. Ключ устанавливаемого элемента. <Значение> (необязательный) Тип: Произвольный. Значение устанавливаемого элемента. Описание: Устанавливает значение элемента структуры по ключу. Если элемент с переданным значением ключа существует, то его значение заменяется, в противном случае добавляется новый элемент. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Пример: Отбор = Новый Структура("Дата, Клиент"); Отбор.Вставить("Клиент", ТекКлиент); Отбор.Вставить("Дата", РабочаяДата); |
|||
12
PiotrLoginov
01.11.12
✎
16:50
|
err
ИсходящиеДанные = Новый <<?>>Структура(); Переменная не определена (Структура) Вспомнил: обычно для семерки писал ИсходящиеДанные = СоздатьОбъект("СписокЗначений"); Пробую... Тока сомневаюсь - источника-то как такого нету. |
|||
13
PiotrLoginov
01.11.12
✎
16:51
|
* как такового
|
|||
14
PiotrLoginov
01.11.12
✎
16:54
|
ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
ИсходящиеДанные.ДобавитьЗначение(Источник.Владелец,"Наименование"); Ошибка исполнения обработчика: ПКС_ПередВыгрузкой_ДоговорыКонтрагентов_Партнер_Реквизит9 - Поле агрегатного объекта не обнаружено (Владелец) |
|||
15
PiotrLoginov
01.11.12
✎
16:59
|
Попробую теперь в алгоритме создания ТаблицыЗначений попытаться засунуть в "Партнер" специальное ТЗ, как написано в (9)
Так или иначе спасибо за участие. Жаль, что формирование ИсходящихДанных прямо из ПВД не упомянуто ни у Бояркина, ни в справке в конфе. |
|||
16
PiotrLoginov
01.11.12
✎
16:59
|
* к конфе
|
|||
17
acsent
01.11.12
✎
17:00
|
Обработчики "Правила выгрузки данных"
Перед выгрузкой объекта Условия возникновения события Событие выполняется при получении очередного объекта из выборки, до передачи этого объекта правилу конвертации. Параметры: ВходящиеДанные - произвольные вспомогательные данные, инициализированные в обработчике «Перед обработкой» правила выгрузки данных как ИсходящиеДанные. |
|||
18
acsent
01.11.12
✎
17:01
|
В ПКО
ИсходящиеДанные = ВходящиеДанные |
|||
19
PiotrLoginov
01.11.12
✎
17:04
|
Ну допустим, создам я в ПВД ИсходящиеДанные. И в ПКО они придут как ВходящиеДанные... *пытаясь сообразить, чешу лоб" Что мне там с ними делать?
|
|||
20
PiotrLoginov
01.11.12
✎
17:06
|
я хоть правильно понял (17) ? я могу в обработчике ПКО засунуть в ИсходящиеДанные для ПКС поля поиска те значения, что пришли ко мне из ПВД в виде ВходящихДанных?
|
|||
21
PiotrLoginov
01.11.12
✎
17:15
|
Так. Спасибо за наводку. Почитал соответствующее место у Бояркина. Получается,
1) в ПВД "Перед обработкой" создаю ИсходящиеДанные. 2) В "Перед выгрузкой" принимаю ВходящиеДанные, преобразую в ИсходящиеДанные. 3) В ПКО получаю ВходящиеДанные, преобразую в ИсходящиеДанные 4) В ПКС поля поиска получаю ВходящиеДанные - использую их. Мягко говоря, витиевато.. ну да лишь бы сработало. Если я что-то не так понял, поправьте меня заранее, гуру, ибо писать эту цепочку я буду до-олго. |
|||
22
Йохохо
01.11.12
✎
17:23
|
ПВД Стандартная выборка
ПКО ПКС Партнер: Источник пусто ПередВыгрузкой Значение = СоздатьОбъект("СписокЗначений"); Значение.Установить("Номер", Источник.РеквизитПартнет.Код); Значение.Установить("Наименование", Источник.РеквизитПартнет.Наименование); Значение.Установить("ПолеПоиска", Источник.РеквизитПартнет.ПолеПоиска); |
|||
23
PiotrLoginov
01.11.12
✎
17:29
|
(22) В ПКС Партнер формировать Значение? А не ИсходящиеДанные?
|
|||
24
Йохохо
01.11.12
✎
17:38
|
(23) на 1 галку меньше ставить
|
|||
25
PiotrLoginov
01.11.12
✎
17:48
|
Аа-а.. дошло.. сформировать Значение, чтобы потом его использовать в полях поиска... А можно в Значение вставлять информацию из ВходящихДанных? Меня просто смущает тот факт, что у ПКО ДоговорыКонтрагентов будет несколько ПКС ссылочного типа... Как бы не запутать ситуацию еще больше...
|
|||
26
PiotrLoginov
01.11.12
✎
17:49
|
В любом случае буду помнить всегда, что можно сразу сформировать Значение. Спасибо большое, ценная информация.
|
|||
27
PiotrLoginov
01.11.12
✎
17:55
|
Так. Алгоритм (21) не сработал: ссылка на элемент справочника Контрагенты выгружается, так что выгружаемых объектов стало в 2 раза больше, но в реквизит Партнер в приемнике ссылка не попадает, он по-прежнему пуст в приемнике. Пробую (22)
|
|||
28
PiotrLoginov
01.11.12
✎
18:10
|
Ошибка исполнения обработчика: ПКС_ПередВыгрузкой_ДоговорыКонтрагентов_Партнер_Реквизит9
- Поле агрегатного объекта не обнаружено (РеквизитПартнер) Изменил РеквизитПартнер на Партнер. Тогда выгружается без ошибок и - о, чудо! - в файле обмена у Свойства "Партнер" появилось "Наименование" , но оно пустое :( Покумекаю еще... |
|||
29
Йохохо
01.11.12
✎
18:14
|
(25) "Как бы не запутать ситуацию еще больше..." укажи явно ПКО для ПКС
|
|||
30
PiotrLoginov
01.11.12
✎
18:14
|
Разобрался: надо было у ПКС поля поиска снять галку "получать из входящих данных". Заработало наконец, фу-ух. Получается, передавать значения в поля поиска можно без использования Входящих-Исходящих данных... хотя конечно возможны исключения, посмотрим..
|
|||
31
PiotrLoginov
01.11.12
✎
18:17
|
(29) ПКО для всех ПКС ссылочного типа всегда указываю явно.
Йохохо, спасибо за помощь. Странно, что передача значений в поля поиска до сих пор не освещена было подробна на мисте.. Или это только мне кажется сложным... Еще раз всем за помощь Большое Человеческое спасибо. |
|||
32
acsent
01.11.12
✎
18:23
|
(31) так там ничего и нет такого, просто галочки ставишь "Поиск" и все
|
|||
33
Йохохо
01.11.12
✎
18:25
|
можешь произвольной выборкой формировать ТЗ и в ней хоть вложенными ТЗ формировать ТЧ, хоть структурами "объекты"
|
|||
34
PiotrLoginov
01.11.12
✎
18:26
|
Ну да, когда разберешься, уже не так все страшно :) Хотя до конца я еще не въехал - использовать информацию, помещаемую в ПВД в ИсходящиеДанные так и не смог.
|
|||
35
Йохохо
01.11.12
✎
18:51
|
справку кнопни
"ИсходящиеДанные - Произвольный. Произвольные вспомогательные данные, доступные при выгрузке объектов выборки" |
|||
36
PiotrLoginov
01.11.12
✎
22:39
|
да, конечно, обязательно копну
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |