Имя: Пароль:
1C
1С v8
Ошибка запроса и нет и есть
0 x_files_1
 
24.05.16
19:53
Приветствую.
Произошел какой-то парадокс.
Делаю запрос для внешней печатной формы акта.

В консоли запрос отрабатывает без предупреждений и ошибок.
Запихиваю во внешнюю обработку запрос.
Прописываю вывод в макет а он выводит пустоту.

При чем вывожу в макет столбец "Заказ" все выводит.
А данные по остальным столбцам которые сделаны из характеристик - там пустота. Как будто их не существует.

Есть мысли?
Спасибо!

Вот запрос:
ВЫБРАТЬ
                ТБЛЦ2.ЗаказПокупателя.Ссылка КАК Заказ,
                
                ХарактеристикиНоменклатуры1.ДополнительныеРеквизиты.Значение КАК НаименованиеТрека,
                ХарактеристикиНоменклатуры2.ДополнительныеРеквизиты.Значение КАК КодBMRU,
                ХарактеристикиНоменклатуры3.ДополнительныеРеквизиты.Значение КАК Автор,
                ХарактеристикиНоменклатуры4.ДополнительныеРеквизиты.Значение КАК Исполнитель
            ИЗ
                Документ.АктВыполненныхРабот.РаботыИУслуги КАК ТБЛЦ2,
                
                Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры1,
                Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры2,
                Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры3,
                Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры4
            ГДЕ
                ТБЛЦ2.Ссылка В(&ТекущийДокумент)
                И ТБЛЦ2.Номенклатура.Наименование ПОДОБНО "[RVML_]%"
                
                И ХарактеристикиНоменклатуры1.Ссылка = ТБЛЦ2.Характеристика.Ссылка
                И ХарактеристикиНоменклатуры2.Ссылка = ТБЛЦ2.Характеристика.Ссылка
                И ХарактеристикиНоменклатуры3.Ссылка = ТБЛЦ2.Характеристика.Ссылка
                И ХарактеристикиНоменклатуры4.Ссылка = ТБЛЦ2.Характеристика.Ссылка
                    
                И ХарактеристикиНоменклатуры1.ДополнительныеРеквизиты.Свойство.Заголовок = "Наименование трека"
                И ХарактеристикиНоменклатуры2.ДополнительныеРеквизиты.Свойство.Заголовок = "Код BMRU"
                И ХарактеристикиНоменклатуры3.ДополнительныеРеквизиты.Свойство.Заголовок = "Автор"
                И ХарактеристикиНоменклатуры4.ДополнительныеРеквизиты.Свойство.Заголовок = "Исполнитель"
1 x_files_1
 
24.05.16
20:06
Так вывожу в макет:


ВыборкаСтрокАудиоТреки = Запрос.Выполнить().Выбрать();
            
            ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицыАудио");
            ТабличныйДокумент.Вывести(ОбластьМакета);
            
            ОбластьМакета = Макет.ПолучитьОбласть("АудиоСтрока");
            АудиоНомерТекущейСтроки = 0;
            Пока ВыборкаСтрокАудиоТреки.Следующий() Цикл
                //ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокАудиоТреки);
                
                АудиоНомерТекущейСтроки = АудиоНомерТекущейСтроки + 1;
                ОбластьМакета.Параметры.НомерСтроки = АудиоНомерТекущейСтроки;

ОбластьМакета.Параметры.Заказ = ВыборкаСтрокАудиоТреки.Заказ;                
                ОбластьМакета.Параметры.НаименованиеТрека = ВыборкаСтрокАудиоТреки.НаименованиеТрека;
                ОбластьМакета.Параметры.КодBMRU = ВыборкаСтрокАудиоТреки.КодBMRU;
                ОбластьМакета.Параметры.Автор = ВыборкаСтрокАудиоТреки.Автор;
                ОбластьМакета.Параметры.Исполнитель = ВыборкаСтрокАудиоТреки.Исполнитель;
                
                ТабличныйДокумент.Вывести(ОбластьМакета);        
            КонецЦикла;
2 ViSo76
 
24.05.16
20:29
Запрос напиши правильно, не через сплошные точки
3 Fedor-1971
 
24.05.16
20:32
(0) Соединение забыл? как запросу соотнести Заказ и некие характеристики.
4 x_files_1
 
24.05.16
20:54
(2) немного не понял!
(3) а это не то? И ХарактеристикиНоменклатуры1.Ссылка = ТБЛЦ2.Характеристика.Ссылка
5 Fram
 
24.05.16
21:18
(0) А какие значения встречаются здесь ТБЛЦ2.Характеристика ?
Это чтобы понять смысл запроса и метод ведения учета.
Можешь показать скриншоты первичных данных и показать что хочешь получить в конце,
6 youalex
 
24.05.16
21:34
Поменяй все условия из ГДЕ (так получается внутреннее соединение) на ЛЕВОЕ СОЕДИНЕНИЕ, например:
ВЫБРАТЬ ТБЛЦ2.Заказ, isnull(ХАРК1.Значение)

ИЗ Документ.АктВыполненныхРабот.РаботыИУслуги КАК ТБЛЦ2
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты Как ХАРК1
ПО ТБЛЦ2.Характеристика = ХАРК1.Ссылка И ХАРК1.Свойство.Заголовок = "Наименование трека"
7 Fram
 
24.05.16
21:38
(6) тогда как обхяснить что в консоли из того же запроса он получает нужный ему результат?
8 youalex
 
24.05.16
21:43
(7) никак. Но так хотя бы по запросу будет понятнее что именно нужно получить, какое именно свойство "не попадает", и отвращения этот запрос перестанет вызывать меньше)
9 x_files_1
 
24.05.16
21:50
(6) Сейчас опробуем. Спасибо!
10 hhhh
 
24.05.16
22:08
может Наименование всё-таки. Почему Заголовок?
11 x_files_1
 
24.05.16
22:34
(6) Свершилось. Спасибо Вам за наводку. Как сказала бы бабушка моя "Дай бог тебе здоровья милок" ))))))

Сейчас еще допилю и покажу запрос.
12 x_files_1
 
25.05.16
00:01
Подводим итог. Сделал через левое соединение и все заработало. Но решив воспользоваться конструктором получил следующий запрос без левого соединения но который отрабатывает на все 100%.
Спасибо всем кто помог!!!

Вот код:

"ВЫБРАТЬ
            |    ТБ.ЗаказПокупателя.Представление КАК ЗаказПокупателяПредставление,
            |    ХарактеристикиНоменклатурыДополнительныеРеквизиты1.Значение КАК НаименованиеТрека,
            |    ХарактеристикиНоменклатурыДополнительныеРеквизиты2.Значение КАК КодBMRU,
            |    ХарактеристикиНоменклатурыДополнительныеРеквизиты3.Значение КАК Автор,
            |    ХарактеристикиНоменклатурыДополнительныеРеквизиты4.Значение КАК Исполнитель
            |ИЗ
            |    Документ.АктВыполненныхРабот.РаботыИУслуги КАК ТБ,
            |    Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты1,
            |    Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты2,
            |    Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты3,
            |    Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты4
            |ГДЕ
            |    ТБ.Ссылка.Ссылка В (&ТекущийДокумент)
            |    И ТБ.Номенклатура.Наименование ПОДОБНО ""[RVML_]%""
            |    И ХарактеристикиНоменклатурыДополнительныеРеквизиты1.Ссылка = ТБ.Характеристика.Ссылка
            |    И ХарактеристикиНоменклатурыДополнительныеРеквизиты2.Ссылка = ТБ.Характеристика.Ссылка
            |    И ХарактеристикиНоменклатурыДополнительныеРеквизиты3.Ссылка = ТБ.Характеристика.Ссылка
            |    И ХарактеристикиНоменклатурыДополнительныеРеквизиты4.Ссылка = ТБ.Характеристика.Ссылка
            |    И ХарактеристикиНоменклатурыДополнительныеРеквизиты1.Свойство.Заголовок = ""Наименование трека""
            |    И ХарактеристикиНоменклатурыДополнительныеРеквизиты2.Свойство.Заголовок = ""Код BMRU""
            |    И ХарактеристикиНоменклатурыДополнительныеРеквизиты3.Свойство.Заголовок = ""Автор""
            |    И ХарактеристикиНоменклатурыДополнительныеРеквизиты4.Свойство.Заголовок = ""Исполнитель"""
13 Fram
 
25.05.16
00:02
(11) ты уверен на 100% что запрос из (0) в консоли выдавал нужный тебе результат? ну ка еще раз попробуй )
14 Fram
 
25.05.16
00:03
(12) а чем это отличается от (0) ?
15 x_files_1
 
25.05.16
00:12
(14) Так как я в основном писал sql/php/js/C# и так как не спец в 1с (Судьба так сказать заставила себе для ИП ваять конфу) то простите если буду неправильно называть вещи.

В общем проблема была вот в чем:

Ранее был запрос вида

таблица1
--- поле1
--- поле2
--- таблица2
------- поле3
--- поле4

и я пытался вывести в макет данные по принципу

таблица1->поле1
таблица1->поле2
таблица1->поле3 (тут было пусто)
таблица1->поле4

а надо было

таблица1->поле1
таблица1->поле2
таблица1->таблица2->поле3 (так выводится)
таблица1->поле4

В финальном запросе я избавился от вложенной таблицы и сразу получаю данные вида

таблица1
--- поле1
--- поле2
--- поле3
--- поле4

Именно по этому запрос в консоли отрабатывал но при выводе в макет было пусто.

p.s.
с левым соединением я получил данные вида

таблица1
--- таблица1
------- поле1
--- таблица2
------- поле1
--- таблица3
------- поле1
--- таблица4
------- поле1
16 hhhh
 
25.05.16
00:18
(12) этот запрос на большой базе будет дико тормозить. Больше никогда никому его не показывай.
17 x_files_1
 
25.05.16
00:19
(16) уж таким мы выдал его конструктор запросов. С удовольствием выслушаю пути оптимизации!
18 hhhh
 
25.05.16
00:24
(17) его нельзя оптимизировать. За такие запросы сразу отрубают руки по локоть.
19 x_files_1
 
25.05.16
00:33
(18) обожаю людей которые любят просто пообщаться:) А сейчас по делу)

Как на счет такого запроса с левым соединением и более компактными названиями:

"ВЫБРАТЬ
|    ТБ.ЗаказПокупателя.Ссылка КАК Заказ,
|    ХРК1.Значение КАК НаименованиеТрека,
|    ХРК2.Значение КАК КодBMRU,
|    ХРК3.Значение КАК Автор,
|    ХРК4.Значение КАК Исполнитель
|ИЗ
|    Документ.АктВыполненныхРабот.РаботыИУслуги КАК ТБ
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХРК1
|        ПО (ТБ.Характеристика = ХРК1.Ссылка)
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХРК2
|        ПО (ТБ.Характеристика = ХРК2.Ссылка)
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХРК3
|        ПО (ТБ.Характеристика = ХРК3.Ссылка)
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХРК4
|        ПО (ТБ.Характеристика = ХРК4.Ссылка)
|ГДЕ
|    ТБ.Ссылка В(&ТекущийДокумент)
|    И ТБ.Номенклатура.Наименование ПОДОБНО ""[RVML_]%""
|    И ХРК1.Ссылка = ТБ.Характеристика.Ссылка
|    И ХРК2.Ссылка = ТБ.Характеристика.Ссылка
|    И ХРК3.Ссылка = ТБ.Характеристика.Ссылка
|    И ХРК4.Ссылка = ТБ.Характеристика.Ссылка
|    И ХРК1.Свойство.Заголовок = ""Наименование трека""
|    И ХРК2.Свойство.Заголовок = ""Код BMRU""
|    И ХРК3.Свойство.Заголовок = ""Автор""
|    И ХРК4.Свойство.Заголовок = ""Исполнитель"""
20 alle68
 
25.05.16
01:22
(19) Лучше, но плохо. Следует перечитать (6), понять и запомнить.
21 x_files_1
 
25.05.16
01:37
(20) Я так ппанимаю должно быть так?

"ВЫБРАТЬ
|    ТБ.ЗаказПокупателя.Ссылка КАК Заказ,
|    ХРК1.Значение КАК НаименованиеТрека,
|    ХРК2.Значение КАК КодBMRU,
|    ХРК3.Значение КАК Автор,
|    ХРК4.Значение КАК Исполнитель
|ИЗ
|    Документ.АктВыполненныхРабот.РаботыИУслуги КАК ТБ
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХРК1
|        ПО (ТБ.Характеристика = ХРК1.Ссылка И ХРК1.Свойство.Заголовок = ""Наименование трека"")
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХРК2
|        ПО (ТБ.Характеристика = ХРК2.Ссылка И ХРК2.Свойство.Заголовок = ""Код BMRU"")
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХРК3
|        ПО (ТБ.Характеристика = ХРК3.Ссылка И ХРК3.Свойство.Заголовок = ""Автор"")
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХРК4
|        ПО (ТБ.Характеристика = ХРК4.Ссылка И ХРК4.Свойство.Заголовок = ""Исполнитель"")
|ГДЕ
|    ТБ.Ссылка В(&ТекущийДокумент)
|    И ТБ.Номенклатура.Наименование ПОДОБНО ""[RVML_]%""
|    
|    
|    
|    "
22 alle68
 
25.05.16
03:03
(21) Да, теперь руки не отрубят!

Со ссылкой от ссылки надо быть поаккуратней: "ТБ.ЗаказПокупателя.Ссылка" - здесь лишняя связь.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой