|
выборка из запроса в конвертации | ☑ | ||
---|---|---|---|---|
0
thomY100
01.12.11
✎
10:00
|
Привет, подскажите пожалуйста, можно ли в конвертации данных выбрать информацию запросом из регистра и записать полученные данные в документ в другой базе, и как примерно это делать?
|
|||
1
luckyluke
01.12.11
✎
10:01
|
(0) можно сделать выборку и передать её конвертации в ПРАВИЛАХ ВЫГРУЗКИ ДАННЫХ, а конвертация уже сама его передаст и запишет в зависимости от твоих настроек.
|
|||
2
thomY100
01.12.11
✎
10:14
|
в каком месте мне описать запрос? к тому же он с параметрами, и в каком месте можно обратиться к его результату и обработать?
|
|||
3
Синий зуб
01.12.11
✎
10:18
|
В ПВД в событии Перед обработкой напиши что-то типа (это пример - перегружал номенклатуру с 10 счета)
Запрос = Новый запрос; Запрос.Текст = " |ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачДата, &КонДата, , , Счет В ИЕРАРХИИ (&Счет_10), &Номенклатура, ) КАК ХозрасчетныйОстаткиИОбороты | |СГРУППИРОВАТЬ ПО | ХозрасчетныйОстаткиИОбороты.Субконто1"; Запрос.УстановитьПараметр("НачДата", '20110101'); Запрос.УстановитьПараметр("КонДата", '20110331235959'); Запрос.УстановитьПараметр("Счет_10", ПланыСчетов.Хозрасчетный.Материалы); Запрос.УстановитьПараметр("Номенклатура", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура); //Запрос.УстановитьПараметр("МассивНоменклатуры", МассивНоменклатуры); Состояние("Получаю запрос по остаткам номенклатуры по 10 счету ..."); ТЗ = Запрос.Выполнить().Выгрузить(); Для каждого Стр из ТЗ Цикл Номенкл = Стр.Номенклатура; ВыгрузитьПоПравилу(Номенкл, , , , "Номенклатура"); КонецЦикла; |
|||
4
thomY100
01.12.11
✎
10:21
|
ок, спасибо, а само правило где описывается, и как примерно его описание выглядит?
|
|||
5
Синий зуб
01.12.11
✎
10:22
|
Вот здесь - ВыгрузитьПоПравилу(Номенкл, , , , "Номенклатура") в кавычках - "Номенклатура" - правило выгрузки.
|
|||
6
thomY100
01.12.11
✎
10:23
|
а как оно примерно выглядит?
|
|||
7
Синий зуб
01.12.11
✎
10:23
|
И, туда же, Способ отбора данных в ПВД не забудь поменять на Произвольный алгоритм.
|
|||
8
Синий зуб
01.12.11
✎
10:25
|
Чуток ошибся. "Номенклатура" - не правило выгрузки, а ПКО. А как его описывать - от твоей задачи зависит.
|
|||
9
luckyluke
01.12.11
✎
10:26
|
(2) Написал же, в ПРАВИЛАХ ВЫГРУЗКИ ДАННЫХ, специально прописными буквами написал. В событии перед обработкой опиши свой запрос и коллекцию, например Выборку передай в переменную ВыборкДанных, что-то вроде:
Запрос = Новый Запрос; Запрос.текст = "Выбрать..."; ВыборкаДанных = Запрос.ВыполнитьВыбрать(); Ну и у правила выгрузки данных поставь вид выборки произвольный алгоритм. |
|||
10
thomY100
01.12.11
✎
10:31
|
ПВД создал, там описал запрос, поставил произвольный алгоритм, а теперь где обработать результат этого запроса, и как к нему обратиться?
|
|||
11
Defender aka LINN
01.12.11
✎
10:32
|
(10) Аносамо
|
|||
12
thomY100
01.12.11
✎
10:34
|
каким образом?
у меня просто набор записей регистра, а теперь надо на основании этих данных создать в базе приемнике документ и записать в него данные |
|||
13
luckyluke
01.12.11
✎
10:42
|
(12) делай ПКО для этого объекта, делай ПКС, на каждый ПКС у тебя должно быть поле в коллекции(совпадать по имени), коллекцию ты передаешь в переменную ВыборкаДанных.
|
|||
14
thomY100
01.12.11
✎
11:44
|
не могу разобраться как создать ПКО, напишу на простом примере что надо:
в источнике запросом из регистра, выбираются организация, физлицо и результат, необходимо сформировать в приемнике создается документ "регистрация разовых начислений", в котором должны заполниться реквизит шапки организция и реквизиты тч, физлицо и результат,я создал ПКД перед обработкой написал для теста код Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 5 | ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо, | ОсновныеНачисленияРаботниковОрганизаций.Организация, | ОсновныеНачисленияРаботниковОрганизаций.Результат |ИЗ | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций"; Состояние("Получаю данные из регистров ..."); ТЗ = Запрос.Выполнить().Выгрузить(); Для каждого Стр из ТЗ Цикл ВыгрузитьПоПравилу(Стр, , , , "ПКОТЕСТ"); КонецЦикла; объект выборки - РегистрРасчетаЗапись.ОсновныеНачисленияРаботниковОрганизаций способ выборки-произвольный алгоритм как мне задать ПКОТЕСТ для такой ситуации, подскажите, не могу разобраться. |
|||
15
Fish
01.12.11
✎
11:47
|
Почитай это там много доступных примеров с картинками: http://www.mykod.info/primeri/
|
|||
16
thomY100
01.12.11
✎
11:49
|
читал уже, не помогло
|
|||
17
thomY100
01.12.11
✎
14:20
|
up
|
|||
18
Синий зуб
01.12.11
✎
14:29
|
Ты хочешь сделать 5 разных документов из твоего запроса или 1 с таб. частью?
|
|||
19
thomY100
01.12.11
✎
14:34
|
1 документ по каждой организации из запроса, либо в запрос передавать организацию как параметр и тогда 1 документ на одну выгрузку
|
|||
20
Синий зуб
01.12.11
✎
14:41
|
Создай ПКО с пустым источником и приемником - тип твоего документа, добавь 3 реквизита - ФизЛицо, Организация, Результат.
|
|||
21
thomY100
01.12.11
✎
15:16
|
сделал, но при попытке выгрузить данные выскакивает ошибка
Поле объекта не обнаружено (ОсновныеНачисления),я так понимаю что-то с запросом не то |
|||
22
thomY100
01.12.11
✎
16:12
|
up
|
|||
23
thomY100
02.12.11
✎
09:24
|
up
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |