Имя: Пароль:
1C
 
Выборка из справочника
0 Ladamar
 
14.08.18
08:35
Все привет!
Есть два справочника ПодалиЗаявление и ДокументыПриПоступлении. В спр ПодалиЗаявление в стандартном реквизите Наименование храниться ФИО, есть табличная часть, в которой два поля ДокументыПриПоступлении (спрСслыка.ДокументыПриПоступлении) и ОтметкаОПолучении (Булево).

Хочу реализовать запрос, чтобы проверять кто какие документы не предоставил, т.е. Чтобы проверялось ОтметкаОПолучении на Ложь/Истина и на основании проверки выдавалось ФОИ того кто не сдал определенные документы.

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

Но не работает. Ни ошибок не результатов.
Где лажаю? Пожалуйста подскажите.
1 Cool_Profi
 
14.08.18
08:36
Это что, Бэрримор?

   ПОКА ВыборкаЗаписи.Следующий() Цикл
        Перем1 = ВыборкаЗаписи.Следующий();
        Если Перем1 = Ложь Тогда
2 Ladamar
 
14.08.18
08:44
Ха... Эти строи остались от моих экспрементов. СПС
3 Ladamar
 
14.08.18
08:49
СПС. Убрал лишнее
Теперь код
     Запрос =Новый Запрос;
     Запрос.Текст =
     "ВЫБРАТЬ
     |ПодалиЗаявление.Ссылка КАК Ссылка,
     |ПодалиЗаявление.Наименование КАК ФИО,
     |ПодалиЗаявление.Документы.ОТметкаОПолучении КАК Предоставлено
     |    ИЗ
     |Справочник.ПодалиЗаявление КАК ПодалиЗаявление
     |    ГДЕ
     |ПодалиЗаявление.Документы.ОТметкаОПолучении = Ложь";
    
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаЗаписи = РезультатЗапроса.Выбрать();
    ПОКА ВыборкаЗаписи.Следующий() Цикл
        Сообщить("Абитуриент " + ВыборкаЗаписи.Ссылка.Наименование);
    КонецЦикла;
    
Выводит ФИО. Но как в сообщить добавить чтобы выводил наименование документа, который не сдан.
4 Ladamar
 
14.08.18
08:52
Пишу так Сообщить
("Абитуриент " + ВыборкаЗаписи.Ссылка.Наименование + "Не сдал " + ВыборкаЗаписи.НаименованиеДокумента)

Ошибка Поле обьекта не обнаружено (НаименованиеДокумента)
5 catena
 
14.08.18
08:55
(4)Выборку делай не из справочника, а из табличной части

     |    ИЗ
     |Справочник.ПодалиЗаявление.Документы КАК ПодалиЗаявление
6 Sayan_mi
 
14.08.18
08:58
(4)Так в запросе ты не выбираешь Наименование документа, только подан он или нет. И да лучше выборка по табличной части, а данные самого документа через ссылку.
7 Ladamar
 
14.08.18
09:14
Добавил в раздел ИЗ
|Справочник.ПодалиЗаявление.Документы КАК ПодалиЗаявление

Теперь запрос работает но в сообщении не выводится НаименованиеДокумента, только Абитуриет ФИО не сдал.
8 AnisaL
 
14.08.18
09:20
(7) надо в запросе написать:
|ПодалиЗаявление.Ссылка.Наименование КАК ФИО
9 hhhh
 
14.08.18
09:39
(7)  "ВЫБРАТЬ
     |ПодалиЗаявление.Ссылка КАК Ссылка,
     |ПодалиЗаявление.Наименование КАК ФИО,
     |ПодалиЗаявление.Документы.ОТметкаОПолучении КАК Предоставлено

у тебя здесь нет НаименованиеДокумента

с какой целью тогда пишешь ВыборкаЗаписи.НаименованиеДокумента ??
10 Ladamar
 
14.08.18
10:43
Вот так уже пробую
"ВЫБРАТЬ
     |ПодалиЗаявление.Ссылка КАК Ссылка,
     |ПодалиЗаявление.Ссылка.Наименование КАК ФИО1,
     |ПодалиЗаявление.Документы.Ссылка КАК Ссылка1,
     |ПодалиЗаявление.Наименование КАК ФИО,
     |ПодалиЗаявление.Документы.ОТметкаОПолучении КАК Предоставлено,
     |ДокументыПриПоступлении.Наименование КАК Докуметы,
     |ПодалиЗаявление.Документы.НаименованиеДокумента КАК НаименованиеДокумента
     |    ИЗ
     |Справочник.ПодалиЗаявление КАК ПодалиЗаявление,
     |Справочник.ДокументыПриПоступлении КАК ДокументыПриПоступлении
     |    ГДЕ
     |ПодалиЗаявление.Документы.ОТметкаОПолучении = Ложь";
Но все равно не берет НаименованиеДокумента
11 catena
 
14.08.18
10:52
(10)Если предположить, что "поле ДокументыПриПоступлении (спрСслыка.ДокументыПриПоступлении) " называется ДокументыПриПоступлении, то так. И разберись уже, что чему принадлежит, сыпать беспорядочно точками и реквизитами в запрос - очень долгий метод поиска решения.

"ВЫБРАТЬ
     |ПодалиЗаявление.Ссылка КАК Ссылка,
     |ПодалиЗаявление.Ссылка.Наименование КАК ФИО1,
     |ПодалиЗаявление.Документы.Ссылка КАК Ссылка1,
     |ПодалиЗаявление.Наименование КАК ФИО,
     |ПодалиЗаявление.Документы.ОТметкаОПолучении КАК Предоставлено,
     |ПодалиЗаявление.ДокументыПриПоступлении.НаименованиеДокумента КАК НаименованиеДокумента
     |    ИЗ
     |Справочник.ПодалиЗаявление.Документы КАК ПодалиЗаявление
     |    ГДЕ
     |НЕ ПодалиЗаявление.Документы.ОТметкаОПолучении ";
12 Ladamar
 
14.08.18
13:34
Разобрался

Вот так нужно
"ВЫБРАТЬ
         |    ПодалиЗаявление.Наименование КАК Наименование,
        |    ПодалиЗаявлениеДокументы.НаименованиеДокумента КАК НаименованиеДокумента,
        |    ПодалиЗаявлениеДокументы.ОтметкаОПолучении КАК ОтметкаОПолучении
        |    Из
        |    Справочник.ПодалиЗаявление.Документы КАК ПодалиЗаявлениеДокументы
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодалиЗаявление КАК ПодалиЗаявление
        |        ПО (ПодалиЗаявлениеДокументы.Ссылка = ПодалиЗаявление.Ссылка)
        |ГДЕ
        |    ПодалиЗаявлениеДокументы.ОтметкаОПолучении = ЛОЖЬ";

Все спасибо за помощь!!!