1. user1070412 3 14.05.19 09:26 Сейчас в теме

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

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


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

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

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

Показать


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

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


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

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


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

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

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

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

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

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

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

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

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


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

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


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

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

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

Показать


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

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

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


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

Вакансии

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист 1С
Самара
зарплата от 50 000 руб. до 100 000 руб.
По совместительству


Ведущий программист 1С
Сочи
зарплата от 82 500 руб. до 99 000 руб.
Полный день