Имя: Пароль:
1C
 
Значение не является значением объектного типа (Выбрать)
,
0 oqjawa
 
27.05.17
11:25
Процедура Печать(ТабДок, Ссылка) Экспорт
    
    Макет = Документы.Выхода_на_практику.ПолучитьМакет("Печать");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Выхода_на_практику.Вид_практики,
    |    Выхода_на_практику.Группа,
    |    Выхода_на_практику.Дата,
    |    Выхода_на_практику.Дата_конца_практики,
    |    Выхода_на_практику.Дата_начала_практики,
    |    Выхода_на_практику.ДатаИзданияПриказа,
    |    Выхода_на_практику.Курс,
    |    Выхода_на_практику.Номер,
    |    Выхода_на_практику.НомерПриказа,
    |    Выхода_на_практику.Специальность,
    |    Выхода_на_практику.Студенты.(
    |        НомерСтроки,
    |        ФИО_студента,
    |        Место_прохождения_практики,
    |        Договор,
    |        База,
    |        Основа_обучения
    |    )
    |ИЗ
    |    Документ.Выхода_на_практику КАК Выхода_на_практику
    |ГДЕ
    |    Выхода_на_практику.Ссылка В(&Ссылка)
        |   И Выхода_на_практику.Студенты.База = Значение(Перечисление.База_классов.классов_9)
    |    И Выхода_на_практику.Студенты.Основа_обучения = Значение(Перечисление.Основа_обучения.бюджетник)";
    
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();

    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтудентыШапка = Макет.ПолучитьОбласть("СтудентыШапка");
    ОбластьСтуденты = Макет.ПолучитьОбласть("Студенты");
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);

    ОбластьШапка.Параметры.Заполнить(Выборка);
    ОбластьШапка.Параметры.Дата_Начала_Практики = Формат(Выборка.Дата_начала_практики, "ДЛФ=D");
    ОбластьШапка.Параметры.Дата_Конца_Практики = Формат(Выборка.Дата_конца_практики, "ДЛФ=D");
                                                                                              

Выборка.Следующий();
ВыборкаСтуденты = Выборка.Студенты.Выбрать();
Если ВыборкаСтуденты.Количество()>0 Тогда ТабДок.Вывести(ОбластьШапка, Выборка.Уровень());    
     ТабДок.Вывести(ОбластьСтудентыШапка);
КонецЕсли;
  
      Пока ВыборкаСтуденты.Следующий() Цикл
            ОбластьСтуденты.Параметры.Заполнить(ВыборкаСтуденты);
            ТабДок.Вывести(ОбластьСтуденты, ВыборкаСтуденты.Уровень());
        КонецЦикла;
1 oqjawa
 
27.05.17
11:27
Если выборка не удволетворяет запрос.. 1с выдаёт ошибку.. Значение не является значением объектного типа (Выбрать)

как исправить? можно ли дополнить условие
2 oqjawa
 
27.05.17
11:28
|   И Выхода_на_практику.Студенты.База = Значение(Перечисление.База_классов.классов_9)
    |    И Выхода_на_практику.Студенты.Основа_обучения = Значение(Перечисление.Основа_обучения.бюджетник)";

если этого он в документе не находит то тогда выводи на печать ничего
3 oqjawa
 
27.05.17
11:28
кроме заголовка
4 Неверный Параметр И
 
27.05.17
11:32
Выход на практику не состоялся.

Проверить результат .Следующий()? Да ну, бред какой, приснится же такое...
5 h-sp
 
27.05.17
11:36
сделай 2 запроса. один запрос

    |ИЗ
    |    Документ.Выхода_на_практику КАК Выхода_на_практику

второй запрос

    |ИЗ
    |    Документ.Выхода_на_практику.Студенты
6 oqjawa
 
27.05.17
11:37
Документ "Выхода_на_практику" формирует приказ о выходе на практику студентов.. в нём есть табличная часть студенты мне нужно чтобы он выводил на печать только студентов после 9 класса.. если указать 11 класс то 1с выдаёт ошибку.. как сделать так чтобы при указании 11 классов он просто не выводил на печать данную область, но вывел тогда область заголовков
7 h-sp
 
27.05.17
11:40
(6) сейчас настроим стеклянный шар, чтобы при огибании радиоволнами колец Сатурна, он дал всё-таки нужную информацию об ошибке.
8 Lexey_
 
27.05.17
11:41
(0) ты 2 недели назад этот вопрос задавал, неужели нельзя было разобраться за это время?
9 oqjawa
 
27.05.17
11:42
сделал два отдельных запроса один к документу и общим реквизитам и один конкретно к табличной части.. всё работает как прежде и выдаёт аналогичную ошибку
10 oqjawa
 
27.05.17
11:46
неужели нельзя ничего сделать? из-за чего вообще возникает такая ошибка?
11 h-sp
 
27.05.17
11:46
(9) ну, никто не подскажет тебе если ты такой партизан. Так умело скрываешь всё, дал только 1% из информации.
12 oqjawa
 
27.05.17
11:48
Запрос2 = Новый Запрос;
    Запрос2.Текст =
    
    "ВЫБРАТЬ
    |    Выхода_на_практику.Студенты.(
    |        НомерСтроки,
    |        ФИО_студента,
    |        Место_прохождения_практики,
    |        Договор,
    |        База,
    |        Основа_обучения
    |    )
    |ИЗ
    |    Документ.Выхода_на_практику КАК Выхода_на_практику
    |ГДЕ
    |    Выхода_на_практику.Ссылка В(&Ссылка)
    |   И Выхода_на_практику.Студенты.База = Значение(Перечисление.База_классов.классов_9)
    |    И Выхода_на_практику.Студенты.Основа_обучения = Значение(Перечисление.Основа_обучения.бюджетник)";

Запрос2.Параметры.Вставить("Ссылка", Ссылка);
Выборка1 = Запрос2.Выполнить().Выбрать();
                                                                                              

Выборка1.Следующий();
ВыборкаСтуденты = Выборка1.Студенты.Выбрать();
Если ВыборкаСтуденты.Количество()>0 Тогда ТабДок.Вывести(ОбластьШапка, Выборка.Уровень());    
     ТабДок.Вывести(ОбластьСтудентыШапка);
КонецЕсли;
  
      Пока ВыборкаСтуденты.Следующий() Цикл
            ОбластьСтуденты.Параметры.Заполнить(ВыборкаСтуденты);
            ТабДок.Вывести(ОбластьСтуденты, ВыборкаСтуденты.Уровень());
        КонецЦикла;
13 oqjawa
 
27.05.17
11:49
если в документе указать База_классов - 11 классов

то он выдаёт ошибку
14 oqjawa
 
27.05.17
11:49
а при 9 классов всё нормально всё работает
15 oqjawa
 
27.05.17
11:50
можно как то казать что Если ВыборкаСтуденты.Количество()<0 Тогда ТабДок. НЕ Вывести(ОбластьШапка, Выборка.Уровень());
16 Lexey_
 
27.05.17
11:51
(15) ТабДок. НЕ Вывести() это что за дичь?
17 h-sp
 
27.05.17
11:52
тьы туповат, что ли?

ВЫБРАТЬ
     |        НомерСтроки,
    |        ФИО_студента,
    |        Место_прохождения_практики,
    |        Договор,
    |        База,
    |        Основа_обучения
    |ИЗ
    |    Документ.Выхода_на_практику.Студенты КАК Выхода_на_практикуСтуденты
    |ГДЕ
    |    Выхода_на_практикуСтуденты.Ссылка В(&Ссылка)
    |   И Выхода_на_практикуСтуденты.База = Значение(Перечисление.База_классов.классов_9)
    |    И Выхода_на_практикуСтуденты.Основа_обучения = Значение(Перечисление.Основа_обучения.бюджетник)";
18 oqjawa
 
27.05.17
11:55
h-sp теперь читаю твоё сообщение думаю что да.. потому что не понимаю в что не так
19 h-sp
 
27.05.17
11:57
в своей программе выкинь

Выборка1.Следующий();

напиши

Если Выборка1.Следующий() Тогда
20 h-sp
 
27.05.17
11:59
потому что Выборка1.Следующий(); следующего может и не быть.
21 oqjawa
 
27.05.17
12:10
Запрос2 = Новый Запрос;
    Запрос2.Текст =
    
    "ВЫБРАТЬ
    |    Выхода_на_практику.Студенты.(
    |        НомерСтроки,
    |        ФИО_студента,
    |        Место_прохождения_практики,
    |        Договор,
    |        База,
    |        Основа_обучения
    |    )
    |ИЗ
    |    Документ.Выхода_на_практику КАК Выхода_на_практику
    |ГДЕ
    |    Выхода_на_практику.Ссылка В(&Ссылка)
    |   И Выхода_на_практику.Студенты.База = Значение(Перечисление.База_классов.классов_9)
    |    И Выхода_на_практику.Студенты.Основа_обучения = Значение(Перечисление.Основа_обучения.бюджетник)";

Запрос2.Параметры.Вставить("Ссылка", Ссылка);
Выборка1 = Запрос2.Выполнить().Выбрать();
                                                                                              

Если Выборка1.Следующий()тогда
ВыборкаСтуденты = Выборка1.Студенты.Выбрать(); КонецЕсли;
Если ВыборкаСтуденты.Количество()>0 Тогда ТабДок.Вывести(ОбластьШапка, Выборка.Уровень());    
     ТабДок.Вывести(ОбластьСтудентыШапка);
КонецЕсли;  
  
      Пока ВыборкаСтуденты.Следующий() Цикл
            ОбластьСтуденты.Параметры.Заполнить(ВыборкаСтуденты);
            ТабДок.Вывести(ОбластьСтуденты, ВыборкаСтуденты.Уровень());
        КонецЦикла;


///
обнаружены ошибки:
{Документ.Выхода_на_практику.МодульМенеджера(72)}: Значение не является значением объектного типа (Количество)
Если ВыборкаСтуденты.Количество()>0 Тогда ТабДок.Вывести(ОбластьШапка, Выборка.Уровень());
22 h-sp
 
27.05.17
12:11
; КонецЕсли;

это что за фигня?? Издеваешься?
23 oqjawa
 
27.05.17
12:13
Ума не хватит издеваться.. здесь вы у руля
24 oqjawa
 
27.05.17
12:19
{Документ.Выхода_на_практику.МодульМенеджера(256,1)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf')
<<?>>КонецПроцедуры (Проверка: Сервер)
25 Неверный Параметр И
 
27.05.17
12:19
26 oqjawa
 
27.05.17
12:19
ну да.. кто ещё и издевается
27 oqjawa
 
27.05.17
12:21
холмс нервно курит в сторонке
28 Неверный Параметр И
 
27.05.17
12:22
Не твоё, вот ты и бесишься
29 h-sp
 
27.05.17
12:24
(27) чего ты от нас ждешь? Всё тебе дали. Тебе осталось правильно вставить КонецЕсли.

Там всего 10 строчек, всего 10 попыток сделаешь и оно встанет на место.
30 Lexey_
 
27.05.17
12:24
(24) тебя заставляют этим заниматься что ли?
31 oqjawa
 
27.05.17
12:35
Нет меня не заставляют этим заниматься...опять отличная шутка, правдо до НеверногоПараметраИ вам ещё далеко.. Добрые люди может я ошибся? это форум сертифицированных специалистов? почему в вас столько злости? тут половина людей просто хамит и язвит..
Для чего люди заходят на формы.. кто-то ищет решение и совета на счёт своих задач, благодаря опыту и знаний других людей. Например одним из таких "Бедолаг" в этот очередной раз оказался я.. Но есть и другая сторона формах, грамотные люде которым не трудно помочь. Для чего они это делают я не знаю, у каждого своя мотивация, наверное самоутверждаются. Но третьи лица однозначно не парятся и  просто хамят и остроумно шутят.. тем самым они тоже поднимают свою самооценку, только в чьих глазах..
32 Franchiser
 
гуру
27.05.17
12:36
Конструкторами пользоваться не предлагали?
33 Franchiser
 
гуру
27.05.17
12:39
Такого рода запрос редко кто делает, советую связывать табличную часть с шапками по ссылке и добавить итоги, тогда у тебя не будет скобок в запросе
34 Lexey_
 
27.05.17
12:42
(31) если тебя не заставляют и это тебе нравится, уже давно бы почитал литературу, посмотрел видеоуроки, разобрался бы сам и не спотыкался на таких элементарных вещах, а так складывается впечатление, что на тебя направлено дуло пистолета и ты методом тыка пытаешься решить задачу
35 Franchiser
 
гуру
27.05.17
12:43
В твоем случае добавь код
Если значениезаполнено(ВыборкаСтуденты)  тогда...
36 Неверный Параметр И
 
27.05.17
12:50
Это форум сертифицированных специалистов? [x]
37 Franchiser
 
гуру
27.05.17
12:51
"для чего люди заходят на формы"?
38 Franchiser
 
гуру
27.05.17
12:54
"но есть и другая сторона в формах... Для чего они это делают я не знаю")))
39 h-sp
 
27.05.17
13:07
(31) сам первый начал издеваться. Причем нагло, и в самой извращенной форме.