|   |   | 
| 
 | БП 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 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) поправил =)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |