Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Выборка значения из таблицы значений

Выборка значения из таблицы значений
Я
   Medved312
 
06.06.20 - 17:24
Добрый день, никак не могу понять как производить выборку, мне нужно получить только одно значение в результате запроса, в консоле всё выходит но как именно вынуть это значение из таблиц и записать в переменную не пойму. получается что запрос выдаёт таблицу в которой еще одна таблица в которой уже нужное значение.

ВЫБРАТЬ
    ВложенныйЗапрос.УчебныйПлан.Дисциплины.(
        КоличествоЧасов КАК УчебныйПланКоличествоЧасов
    ) КАК УчебныйПлан
ИЗ
    (ВЫБРАТЬ
        ПриказЗачисление.УчебныйПлан КАК УчебныйПлан
    ИЗ
        Документ.ПриказЗачисление КАК ПриказЗачисление
    ГДЕ
        ПриказЗачисление.Группа = &Группа) КАК ВложенныйЗапрос
ГДЕ
    ВложенныйЗапрос.УчебныйПлан.УчебныйГод = &УчебныйГод
    И ВложенныйЗапрос.УчебныйПлан.Специальность = &Специальность
    И ВложенныйЗапрос.УчебныйПлан.Дисциплины.Дисциплина = &Дисциплина
    И ВложенныйЗапрос.УчебныйПлан.Дисциплины.ПериодКонтроля = &ПериодКонтроля
   ДенисЧ
 
1 - 06.06.20 - 18:18
ВЫБРАТЬ
    ВложенныйЗапрос.УчебныйПлан.Дисциплины.(
        КоличествоЧасов КАК УчебныйПланКоличествоЧасов
    ) КАК УчебныйПлан


За такое в последнее время дают 10 лет строгого расстрела. Без права переписки.
   Ненавижу 1С
 
2 - 06.06.20 - 18:58
Зря 1с придумала табличные части как поля запросов делать
   lodger
 
3 - 06.06.20 - 19:33
(1) юзать тч как вложенные таблицы это не преступление. был бы смысл, тут такового нет.
   Medved312
 
4 - 06.06.20 - 20:15
то что можно без вложений сделать это нашел, но проблема та же это несколько табличных частей, это решил более "извращенным" запросом с еще большим вложением, к конце получаю одну таблицу значений откуда и вытаскиваю число.

    Запрос.Текст = "ВЫБРАТЬ
                   |    УчебныйПланДисциплины.КоличествоЧасов КАК КоличествоЧасов
                   |ИЗ
                   |    Документ.УчебныйПлан.Дисциплины КАК УчебныйПланДисциплины,
                   |    (ВЫБРАТЬ
                   |        УчебныйПлан.Дисциплины.(
                   |            Ссылка КАК Ссылка,
                   |            НомерСтроки КАК НомерСтроки,
                   |            Дисциплина КАК Дисциплина,
                   |            ПериодКонтроля КАК ПериодКонтроля,
                   |            КоличествоЧасов КАК КоличествоЧасов
                   |        ) КАК Дисциплины
                   |    ИЗ
                   |        Документ.УчебныйПлан КАК УчебныйПлан,
                   |        (ВЫБРАТЬ
                   |            ПриказЗачисление.УчебныйПлан КАК УчебныйПлан
                   |        ИЗ
                   |            Документ.ПриказЗачисление КАК ПриказЗачисление
                   |        ГДЕ
                   |            ПриказЗачисление.Группа = &Группа
                   |            И ПриказЗачисление.УчебныйПлан.Специальность = &Специальность
                   |            И ПриказЗачисление.УчебныйПлан.УчебныйГод = &УчебныйГод) КАК ВложенныйЗапрос) КАК ВложенныйЗапрос
                   |ГДЕ
                   |    УчебныйПланДисциплины.Дисциплина = &Дисциплина
                   |    И УчебныйПланДисциплины.ПериодКонтроля = &ПериодКонтроля";
    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка =  РезультатЗапроса.Выбрать();
    
    Пока Выборка.Следующий() цикл
        КолЧас = Выборка.КоличествоЧасов;
    КонецЦикла;

    Возврат КолЧас;

P.S. скорее всего цикл не нужен но не пробовал. Извините если посягнул на святое вложенными запросами (всего пару дней программирую) но зачем-то они же есть) да в SQL используются не редко.
   Ёпрст
 
5 - 06.06.20 - 20:18
(4) Всё в топку
   Ёпрст
 
6 - 06.06.20 - 20:25
Так хотя бы 

ВЫБРАТЬ
  Сумма(УчебныйПланДисциплины.КоличествоЧасов) КАК КоличествоЧасов
ИЗ  Документ.УчебныйПлан.Дисциплины КАК УчебныйПланДисциплины
         ГДЕ
               УчебныйПланДисциплины.Дисциплина = &Дисциплина
               И УчебныйПланДисциплины.ПериодКонтроля = &ПериодКонтроля
               И УчебныйПланДисциплины.ССылка.УчебныйГод = &УчебныйГод
               И УчебныйПланДисциплины.ССылка.Специальность = &Специальность
               И УчебныйПланДисциплины.ССылка в (ВЫБРАТЬ
                               ПриказЗачисление.УчебныйПлан КАК УчебныйПлан
                           ИЗ
                               Документ.ПриказЗачисление КАК ПриказЗачисление
                           ГДЕ
                               ПриказЗачисление.Группа = &Группа)

   Medved312
 
7 - 06.06.20 - 21:31
Спасибо больше) интересный способ
   Chameleon1980
 
8 - 07.06.20 - 07:17
(7) не интересный, а правильный. так говоришь, как будто у тебя несколько решений и все они работают.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.