|
БП 2.0 Запрос к таблице объекта (в обычных формах) | ☑ | ||
---|---|---|---|---|
0
YurAnt
20.09.13
✎
08:04
|
Доброго времени суток, господа - форумчане...
Видимо пятница... туплю похоже уже. Формы обычные, Док "ОтражениеЗарплатыВРегУчете", Модуль формы, хочу оттуд запросом выбрать таблицу ОтражениеВУчете. МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("ТаблЗнч", ОтражениеВУчете); Запрос.Текст = "ВЫБРАТЬ | ТаблЗнч.СчетДт, | ТаблЗнч.Сумма |ПОМЕСТИТЬ ТаблИсточника |ИЗ | &ТаблЗнч КАК ТаблЗнч"; Результат = Запрос.Выполнить().Выбрать(); В итоге, ошибок не выдает, но: Результат[0] = Неопределено. Док-т даже записан (хотя пожалуй будет правильнее сделать выгрузку из таблицы с формы (т.е. до того момента когда док-т будет записан, но это уже другая история... пока даже из записанного не выгружает) (( собственно в чем я натупил? Благодарен за любые советы, с ув. Yurant. |
|||
1
YurAnt
20.09.13
✎
08:09
|
перебрал бы так... в цикле строки, но хочу левым соединением к ним цеплять номенклатурные группы (они в свою очередь тоже будут запросом выгребаться, а за запросы в цикле... сами понимаете пожизненный цих с гвоздями.
|
|||
2
catena
20.09.13
✎
08:16
|
Результат = Запрос.Выполнить().Выгрузить();?
|
|||
3
YurAnt
20.09.13
✎
08:21
|
catena, спасибо вам =)
сижу типизацию колонок ковыряю, а ведь вот как чуял, что ошибка наиглупейшая...) |
|||
4
YurAnt
20.09.13
✎
08:37
|
хм, однако... вместо таблицы вернул 1 строку Результат[0]
Свойство = Количество Значение = 231 Тип = Число |
|||
5
catena
20.09.13
✎
08:44
|
(4)Потому что ВТ. Чтобы вернул таблицу, надо еще выборку сделать.
"ВЫБРАТЬ | ТаблЗнч.СчетДт, | ТаблЗнч.Сумма |ПОМЕСТИТЬ ТаблИсточника |ИЗ | &ТаблЗнч КАК ТаблЗнч |; |Выбрать * из ТаблИсточника"; |
|||
6
ИС-2
naïve
20.09.13
✎
08:55
|
для получения именно выборки надо убрать
|ПОМЕСТИТЬ ТаблИсточника либо (5), что более верно |
|||
7
catena
20.09.13
✎
08:58
|
(6)Не получится тут убирать ВТ, выборку из таблицы значений можно только через вт сделать :)
|
|||
8
YurAnt
20.09.13
✎
09:07
|
Тааак) Уже интереснее)
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("ТаблЗнч", ОтражениеВУчете); Запрос.Текст = "ВЫБРАТЬ | ТаблЗнч.СчетДт, | ТаблЗнч.СубконтоДт1, | ТаблЗнч.СубконтоДт2, | ТаблЗнч.СубконтоДт3, | ТаблЗнч.СчетКт, | ТаблЗнч.СубконтоКт1, | ТаблЗнч.СубконтоКт2, | ТаблЗнч.СубконтоКт3, | ТаблЗнч.Сумма, | ТаблЗнч.ОтражениеВУСН, | ТаблЗнч.ВидРасчета, | ТаблЗнч.Физлицо, | ТаблЗнч.ВидНачисленияПоСт255НК, | ТаблЗнч.ВидНачисленияУдержания, | ТаблЗнч.ПодразделениеДт, | ТаблЗнч.ПодразделениеКт, | ТаблЗнч.СуммаПР, | ТаблЗнч.СуммаВР, | ТаблЗнч.СуммаНУ, | АктОбОказанииПроизводственныхУслугУслуги.Ссылка.НоменклатурнаяГруппа |ПОМЕСТИТЬ ТаблИсточника |ИЗ | &ТаблЗнч КАК ТаблЗнч | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктОбОказанииПроизводственныхУслуг.Услуги КАК АктОбОказанииПроизводственныхУслугУслуги | ПО ТаблЗнч.ПодразделениеДт = АктОбОказанииПроизводственныхУслугУслуги.Ссылка.ПодразделениеЗатрат"; Запрос.Выполнить().Выгрузить(); Запрос.Текст = "ВЫБРАТЬ | * |ИЗ | ТаблИсточника"; Результат = Запрос.Выполнить().Выгрузить(); Так, ко 2й таблице я не могу прицепить левое соединение, поскольку она не понимает колонок 1й, а если цеплять к 1й, то видим вот это: "При выборе данных из объекта в запросе не могут присутствовать соединения и объединения" |
|||
9
YurAnt
20.09.13
✎
09:07
|
ко 2й выборке*
|
|||
10
YurAnt
20.09.13
✎
09:17
|
Вроде взлетело... разбираюсь правильно ли сделал.
Функция ПолучитьТаблицуНоменклатурныхГрупп() Экспорт МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("ТаблЗнч", ОтражениеВУчете); Запрос.Текст = "ВЫБРАТЬ | ТаблЗнч.СчетДт, | ТаблЗнч.СубконтоДт1, | ТаблЗнч.СубконтоДт2, | ТаблЗнч.СубконтоДт3, | ТаблЗнч.СчетКт, | ТаблЗнч.СубконтоКт1, | ТаблЗнч.СубконтоКт2, | ТаблЗнч.СубконтоКт3, | ТаблЗнч.Сумма, | ТаблЗнч.ОтражениеВУСН, | ТаблЗнч.ВидРасчета, | ТаблЗнч.Физлицо, | ТаблЗнч.ВидНачисленияПоСт255НК, | ТаблЗнч.ВидНачисленияУдержания, | ТаблЗнч.ПодразделениеДт, | ТаблЗнч.ПодразделениеКт, | ТаблЗнч.СуммаПР, | ТаблЗнч.СуммаВР, | ТаблЗнч.СуммаНУ |ПОМЕСТИТЬ ТаблИсточника |ИЗ | &ТаблЗнч КАК ТаблЗнч"; Запрос.Выполнить().Выгрузить(); Запрос.Текст = "ВЫБРАТЬ | АктОбОказанииПроизводственныхУслугУслуги.НоменклатурнаяГруппа |ИЗ | ТаблИсточника КАК ТаблИсточника | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктОбОказанииПроизводственныхУслуг.Услуги КАК АктОбОказанииПроизводственныхУслугУслуги | ПО ТаблИсточника.ПодразделениеДт = АктОбОказанииПроизводственныхУслугУслуги.Ссылка.ПодразделениеЗатрат"; Результат = Запрос.Выполнить().Выгрузить(); // Для Каждого Строка Из Результат Цикл Если ЗначениеЗаполнено(Строка.НоменклатурнаяГруппа) Тогда Сообщить(Строка.НоменклатурнаяГруппа); КонецЕсли; КонецЦикла; Возврат Результат; КонецФункции |
|||
11
YurAnt
20.09.13
✎
09:24
|
добавил описание таблицы во 2м случае.
|
|||
12
Rovan
гуру
20.09.13
✎
09:26
|
(10) можно делать все в 1 Выполнить() разделив тексты запроса ";"
|
|||
13
catena
20.09.13
✎
09:40
|
+(12)и без менеджера временных таблиц :)
|
|||
14
YurAnt
20.09.13
✎
09:59
|
(13) поправил =)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |