Имя: Пароль:
1C
1С v8
Ошибка в маленьком запросе.
0 kachesov
 
16.11.16
12:55
Пишу:

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    РеализацияТоваровУслуг.Товары.(
        |        Номенклатура.Наименование КАК Наименование,
        |        Номенклатура.АналитикаБетона
        |    )
        |ИЗ
        |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        |ГДЕ
        |    РеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)";

    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);

    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

        ОбластьСтрокаТЧ.Параметры.Добавка = ВыборкаДетальныеЗаписи.Наименование;
        ТабличныйДокумент.Вывести(ОбластьСтрокаТЧ);            
        ТабличныйДокумент.Присоединить(ОбластьСтрокаТЧ);

    КонецЦикла;

Получаю ошибку:

Поле объекта не обнаружено (Наименование)
ОбластьСтрокаТЧ.Параметры.Добавка = ВыборкаДетальныеЗаписи.Наименование;

Если меняю ВыборкаДетальныеЗаписи.Наименование на любой текст, всё работает.

Подскажите пожалуйста, как вывести Наименование из запроса.
1 Ёпрст
 
16.11.16
12:56
(0) открыть еще одну выборку для вложенной таб части
2 Ёпрст
 
16.11.16
12:56
но лучше, переписать запрос на вот так:
3 Ёпрст
 
16.11.16
12:57
Запрос.Текст =
        "ВЫБРАТЬ
        |    РеализацияТоваровУслуг.
        |        Номенклатура.Наименование КАК Наименование,
        |     РеализацияТоваровУслуг.  Номенклатура.АналитикаБетона
        |    
        |ИЗ
        |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
        |ГДЕ
        |    РеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)";
4 Ёпрст
 
16.11.16
12:57
и тогда твой код заработает и так.
5 kachesov
 
16.11.16
13:03
(3) Спасибо огромное, это работает)
6 kachesov
 
16.11.16
13:13
Сюда же вопрос, чтобы тему новую не создавать:

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Сообщить(ВыборкаДетальныеЗаписи.Аналитика);
        Если ВыборкаДетальныеЗаписи.Аналитика = "Добавка" Тогда
            ОбластьСтрокаТЧ.Параметры.Добавка = ВыборкаДетальныеЗаписи.Наименование;
            ТабличныйДокумент.Вывести(ОбластьСтрокаТЧ);            
            ТабличныйДокумент.Присоединить(ОбластьСтрокаТЧ);
        КонецЕсли;
    КонецЦикла;

Получаю сообщения "Услуга", "Услугу", "Добавка", но условие истинным не становится.
Может идёт сравнение текстового поля и не текстового? Нужно как-то преобразовать ВыборкаДетальныеЗаписи.Аналитика в текст?
7 Ёпрст
 
16.11.16
13:20
(6) тип у реквизита "АналитикаБетона" какой ? Врят ли это строка.
Отсюда и не верное сравнение
8 kachesov
 
16.11.16
13:32
(7) да, сделал Строка(ВыборкаДетальныеЗаписи.Аналитика) и заработало
9 1dvd
 
16.11.16
13:34
Конструктором пользоваться не комильфо?
10 Ёпрст
 
16.11.16
13:35
(8) потом поменяют наименование в справочнике и весь твой код - коту под хвост.
Ну и сравнивать объекты ссылочного типа со строками - моветон.
11 kachesov
 
16.11.16
13:46
(9) Им и пользовался.
(10) Не должны. А есть альтернатива этому сравнению? Может как-то в запросе можно было это сделать?
12 Ёпрст
 
16.11.16
13:47
(11) Тип у реквизита какой ?
13 kachesov
 
16.11.16
14:13
(12) ПеречислениеСсылка
Не поменяют название)
14 Ёпрст
 
16.11.16
14:14
(13)
Дык и сравнивай со значением перечисления!
15 Ёпрст
 
16.11.16
14:14
ВыборкаДетальныеЗаписи.Аналитика =Перечисление.нужныйВид.НужноеЗначение ...
16 kachesov
 
16.11.16
14:43
(15) спасибо)