Запрос работает только в консоле

1. user1070412 5 14.05.19 09:26 Сейчас в теме
делаю запрос в ЗУП 3.1
ВЫБРАТЬ
РазовоеНачисление.Начисления.Сотрудник КАК Сотрудник,
РазовоеНачисление.Начисления.Результат КАК Компенсация
ИЗ
Документ.РазовоеНачисление КАК РазовоеНачисление


в консоле запросов все выводит как надо

Пытаюсь сделать программно - получаю пустые строки

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

Показать


Подскажите, что не так?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
25. user1070412 5 14.05.19 14:16 Сейчас в теме
(21) код действительно с пробелом
проблема оказалась в запросе. Был необходим вложенный запрос.

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


Странно, что в консоле запросов первоначальный запрос отрабатывает верно
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. tvm 14.05.19 09:35 Сейчас в теме
(1) и разрешенные добавьте
2. Xershi 1484 14.05.19 09:33 Сейчас в теме
Сделай через конструктор запросов явно криво текст написал.
NatalkaBal; +1 Ответить
8. user1070412 5 14.05.19 09:59 Сейчас в теме
(2)запрос сделан через конструктор

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


результат одинаков, что с ними, что без них
11. alex-l19041 8 14.05.19 10:16 Сейчас в теме
(8) проверьте значения при установке параметров запроса
3. Xershi 1484 14.05.19 09:34 Сейчас в теме
И запрос у тебя странный. Сразу к табличной части обращайся.
tusv; alex-l19041; +2 Ответить
6. tusv 211 14.05.19 09:40 Сейчас в теме
(3)Сранно это
Sel ect бла бла Fr om бла бла
А тут видно, что человек старался:) Вопрос о помощи задает
5. AnryMc 849 14.05.19 09:38 Сейчас в теме
Возможно консоль выполняет код в привилегированном режиме, а ваш код у пользователя не имеет доступа к данным по правам
9. user1070412 5 14.05.19 10:01 Сейчас в теме
(5)У пользователя полные права
7. x_x 2 14.05.19 09:51 Сейчас в теме
банальный вопрос, у вас управляемые формы? а параметры запроса какие?
10. user1070412 5 14.05.19 10:06 Сейчас в теме
(7) управляемые формы.
Запрос в Модуле объекта Внешней печатной формы
12. user_2010 896 14.05.19 10:17 Сейчас в теме
(10) параметры в коде заполнили?
13. user1070412 5 14.05.19 10:31 Сейчас в теме
(12) да.
Вот полный код:

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

Показать
14. alex-l19041 8 14.05.19 10:42 Сейчас в теме
(13)
Выборка.Сотрудник
- содержит корректное значение ?
23. user1070412 5 14.05.19 14:07 Сейчас в теме
15. alex-l19041 8 14.05.19 10:45 Сейчас в теме
(13) похоже на запрос в цикле обработки результата другого запроса (Выборка) ...... может первый запрос надо переписать...
16. catena 110 14.05.19 10:51 Сейчас в теме
(13)
Выборка.Сотрудник.Ссылка
Начисление.Ссылка

".Ссылка" тут лишние

Обращайтесь в запросе к табличной части, как уже писали: "из Документ.РазовоеНачисление.Начисления"

Проверьте соответствие типов параметров.

И да, это делается левым соединением в исходном запросе.
18. VladimirElohov 130 14.05.19 11:55 Сейчас в теме
(16)
Обращайтесь в запросе к табличной части, как уже писали: "из Документ.РазовоеНачисление.Начисления"

Это верный вариант. В варианте топик-стартера надо двойную выборку сделать, чтобы из основной таблицы получить данные ТЧ.
19. laperuz 46 14.05.19 11:56 Сейчас в теме
(13)
Точно есть вид расчета с кодом "ВППУ "?
Прямо с пробелом в конце?
24. user1070412 5 14.05.19 14:07 Сейчас в теме
(19) да, код именно с пробелом
20. Xershi 1484 14.05.19 12:11 Сейчас в теме
(13) ой насмешили.
Начисление = ПланыВидовРасчета.Начисления.НайтиПоКоду("ВППУ ");
        

А код точно с пробелом?)
Меняйте на статику!
22. user_2010 896 14.05.19 12:20 Сейчас в теме
(13) и теперь проверьте в отладчике - в запросе параметры заполнены?
17. ErshKUS 2 14.05.19 11:43 Сейчас в теме
а такое тоже пустое?
        ЗапросНачисление = Новый Запрос;
        ЗапросНачисление.Текст = 
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    РазовоеНачисление.Начисления.Сотрудник.Ссылка КАК Сотрудник,
        |    РазовоеНачисление.Начисления.Результат КАК Компенсация
        |ИЗ
        |    Документ.РазовоеНачисление КАК РазовоеНачисление";
        
        ВыборкаНачисление = ЗапросНачисление.Выполнить().Выбрать();
        Пока ВыборкаНачисление.Следующий() Цикл
            
            Сообщить("Сотрудник = "+ВыборкаНачисление.Сотрудник);
            Сообщить("Компенсация = "+ВыборкаНачисление.Компенсация);
            
        КонецЦикла;
Показать


раз это внешняя, безопасный режим выключен (а то бывают с ним приколы)?

если этот код поместить в обработку и встроить в конфу данные есть?
21. M61 20 14.05.19 12:19 Сейчас в теме
Запрос переписать. Выборку сотрудников засунуть в массив и передать параметром в запрос начислений. Запрос в цикле зло.


МассивСотров = Новый Массив;

Пока Выборка.Следующий() Цикл
МассивСотров.Добавить(Выборка.Сотрудник);
КонецЦикла;

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

Показать


И код начисления проверьте - действительно ли "ВППУ "

Странная тенденция - решение минутных вопросов растягивается на несколько дней и сотню ответов
alex-l19041; +1 Ответить
25. user1070412 5 14.05.19 14:16 Сейчас в теме
(21) код действительно с пробелом
проблема оказалась в запросе. Был необходим вложенный запрос.

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


Странно, что в консоле запросов первоначальный запрос отрабатывает верно
26. Xershi 1484 14.05.19 14:29 Сейчас в теме
(25) пора вам пройти курс по запросам.
user774630; ErshKUS; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот