Выполнение запроса в модуле формы

1. user1241616 06.12.19 09:12 Сейчас в теме
Версия платформы 8.3.10.2505
Конфигурация Зарплата и Управление Персоналом для Украины, редакция 2.1 (2.1.51.1)
Вариант работы: Клиент-Сервер

У меня есть 2 базы на одном сервере. Для тестирования и основная.

На форму добавлена кнопка, по которой идет выборка и загрузка данных в ТЧ. Код идентичен что на тестовой, что на основной.
В тестовой базе выполняется нормально.
В основной запрос не возвращает значения. При этом если запрос выполнить в Консоле запроса, то выборка происходит нормально.

Как быть в данной ситуации?

Пример кода ниже.

Процедура КоманднаяПанельНачисленияРасчетПремииЗаИнтенсивность(Кнопка)	
	
	Если НЕ ЗначениеЗаполнено(УдалитьПодразделениеОрганизации) Тогда
		Сообщить("Укажите подразделение для расчета!");
		Возврат;
	КонецЕсли;
	
	Если Начисления.Количество() > 0 Тогда
		ТекстВопроса = "Перед заполнением табличные части будут очищены. Заполнить?";
		Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да,);
		
		Если Ответ <> КодВозвратаДиалога.Да Тогда
			Возврат;
		КонецЕсли;
		
		Начисления.Очистить();
		НачисленияПремияЗаИнтенсивность.Очистить();
	КонецЕсли;
	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	ПроцентыКомпенсацииНормаДней.СотрудникОрганизации КАК Сотрудник,
	               |	ПроцентыКомпенсацииНормаДней.ПроцентКомпенсации,
	               |	ПроцентыКомпенсацииНормаДней.БазоваяСуммаКомпенсации,
	               |	ПроцентыКомпенсацииНормаДней.НормаДней,
	               |	ОтработанныеДни.ДнейОборот КАК ОтработноДней,
	               |	ОтработанныеДни.КомандировкаДней,
	               |	ОтработанныеДни.ОтпускДней,
	               |	ОтработанныеДни.БольничныйДней,
	               |	ВЫБОР
	               |		КОГДА ОтработанныеДни.ДнейОборот / ПроцентыКомпенсацииНормаДней.НормаДней > 1
	               |			ТОГДА 1
	               |		ИНАЧЕ ОтработанныеДни.ДнейОборот / ПроцентыКомпенсацииНормаДней.НормаДней
	               |	КОНЕЦ КАК ПроцентОтработанныхДней,
	               |	ВЫРАЗИТЬ(ПроцентыКомпенсацииНормаДней.БазоваяСуммаКомпенсации * ВЫБОР
	               |			КОГДА ОтработанныеДни.ДнейОборот / ПроцентыКомпенсацииНормаДней.НормаДней > 1
	               |				ТОГДА 1
	               |			ИНАЧЕ ОтработанныеДни.ДнейОборот / ПроцентыКомпенсацииНормаДней.НормаДней
	               |		КОНЕЦ КАК ЧИСЛО(16, 0)) КАК Результат,
	               |	СведенияОСотрудниках.ПодразделениеОрганизации,
	               |	СведенияОСотрудниках.ИНН,
	               |	ОкладыСотрудников.Показатель1 КАК Оклад
	               |ИЗ
	               |	(ВЫБРАТЬ
	               |		ПараметрыКомпенсацииЗаИнтенсивностьСрезПоследних.СотрудникОрганизации КАК СотрудникОрганизации,
	               |		ПараметрыКомпенсацииЗаИнтенсивностьСрезПоследних.ПроцентКомпенсации КАК ПроцентКомпенсации,
	               |		ПараметрыКомпенсацииЗаИнтенсивностьСрезПоследних.БазоваяСуммаКомпенсации КАК БазоваяСуммаКомпенсации,
	               |		СУММА(ГрафикиРаботыПоВидамВремени.ОсновноеЗначение) КАК НормаДней
	               |	ИЗ
	               |		РегистрСведений.ПараметрыКомпенсацииЗаИнтенсивность.СрезПоследних(&тДатаКон, РАЗНОСТЬДАТ(Период, &тДатаКон, МЕСЯЦ) = 0) КАК ПараметрыКомпенсацииЗаИнтенсивностьСрезПоследних,
	               |		РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ГрафикиРаботыПоВидамВремени
	               |	ГДЕ
	               |		ПараметрыКомпенсацииЗаИнтенсивностьСрезПоследних.ПроцентКомпенсации <> 0
	               |		И ПараметрыКомпенсацииЗаИнтенсивностьСрезПоследних.БазоваяСуммаКомпенсации <> 0
	               |		И ГрафикиРаботыПоВидамВремени.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)
	               |		И ГрафикиРаботыПоВидамВремени.ГрафикРаботы = &тГрафик
	               |		И ГрафикиРаботыПоВидамВремени.Месяц = НАЧАЛОПЕРИОДА(&тДатаКон, МЕСЯЦ)
	               |	
	               |	СГРУППИРОВАТЬ ПО
	               |		ПараметрыКомпенсацииЗаИнтенсивностьСрезПоследних.СотрудникОрганизации,
	               |		ПараметрыКомпенсацииЗаИнтенсивностьСрезПоследних.ПроцентКомпенсации,
	               |		ПараметрыКомпенсацииЗаИнтенсивностьСрезПоследних.БазоваяСуммаКомпенсации) КАК ПроцентыКомпенсацииНормаДней
	               |		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	               |			РабочееВремяРаботниковОрганизацийОбороты.Сотрудник КАК Сотрудник,
	               |			СУММА(ВЫБОР
	               |					КОГДА РабочееВремяРаботниковОрганизацийОбороты.ВидИспользованияРабочегоВремени.ЦифровойКод В (""01"", ""07"")
	               |						ТОГДА РабочееВремяРаботниковОрганизацийОбороты.ЧасовОборот
	               |				КОНЕЦ) КАК ДнейОборот,
	               |			СУММА(ВЫБОР
	               |					КОГДА РабочееВремяРаботниковОрганизацийОбороты.ВидИспользованияРабочегоВремени.ЦифровойКод = ""07""
	               |						ТОГДА РабочееВремяРаботниковОрганизацийОбороты.ЧасовОборот
	               |				КОНЕЦ) КАК КомандировкаДней,
	               |			СУММА(ВЫБОР
	               |					КОГДА РабочееВремяРаботниковОрганизацийОбороты.ВидИспользованияРабочегоВремени.ЦифровойКод = ""08""
	               |						ТОГДА РабочееВремяРаботниковОрганизацийОбороты.ЧасовОборот
	               |				КОНЕЦ) КАК ОтпускДней,
	               |			СУММА(ВЫБОР
	               |					КОГДА РабочееВремяРаботниковОрганизацийОбороты.ВидИспользованияРабочегоВремени.ЦифровойКод = ""26""
	               |						ТОГДА РабочееВремяРаботниковОрганизацийОбороты.ЧасовОборот
	               |				КОНЕЦ) КАК БольничныйДней
	               |		ИЗ
	               |			РегистрНакопления.РабочееВремяРаботниковОрганизаций.Обороты(&тДатаНач, &тДатаКон, Месяц, ) КАК РабочееВремяРаботниковОрганизацийОбороты
	               |		
	               |		СГРУППИРОВАТЬ ПО
	               |			РабочееВремяРаботниковОрганизацийОбороты.Сотрудник) КАК ОтработанныеДни
	               |		ПО ПроцентыКомпенсацииНормаДней.СотрудникОрганизации = ОтработанныеДни.Сотрудник
	               |		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	               |			РаботникиОрганизации.Сотрудник КАК Сотрудник,
	               |			РаботникиОрганизации.Сотрудник.Физлицо КАК Физлицо,
	               |			РаботникиОрганизации.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния,
	               |			РаботникиОрганизации.Должность КАК Должность,
	               |			ЕСТЬNULL(ДатаПриемаСотрудника.ДатаПриема, &ПустаяДата) КАК ДатаПриема,
	               |			РаботникиОрганизации.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
	               |			РаботникиОрганизации.Сотрудник.Физлицо.КодПоДРФО КАК ИНН
	               |		ИЗ
	               |			РегистрСведений.РаботникиОрганизаций.СрезПоследних(&тДатаКон, Организация = &ГоловнаяОрганизация) КАК РаботникиОрганизации
	               |				ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	               |					РаботникиОрганизаций.Сотрудник КАК Сотрудник,
	               |					МИНИМУМ(РаботникиОрганизаций.Период) КАК ДатаПриема
	               |				ИЗ
	               |					РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
	               |				
	               |				СГРУППИРОВАТЬ ПО
	               |					РаботникиОрганизаций.Сотрудник) КАК ДатаПриемаСотрудника
	               |				ПО РаботникиОрганизации.Сотрудник = ДатаПриемаСотрудника.Сотрудник
	               |		ГДЕ
	               |			РаботникиОрганизации.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)) КАК СведенияОСотрудниках
	               |		ПО ПроцентыКомпенсацииНормаДней.СотрудникОрганизации = СведенияОСотрудниках.Сотрудник
	               |		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	               |			ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
	               |			ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета КАК ВидРасчета,
	               |			ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Показатель1 КАК Показатель1
	               |		ИЗ
	               |			РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних(&тДатаКон, ) КАК ПлановыеНачисленияРаботниковОрганизацийСрезПоследних
	               |		ГДЕ
	               |			(ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоДням)
	               |					ИЛИ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоЧасам))) КАК ОкладыСотрудников
	               |		ПО ПроцентыКомпенсацииНормаДней.СотрудникОрганизации = ОкладыСотрудников.Сотрудник
	               |
				   |ГДЕ СведенияОСотрудниках.ПодразделениеОрганизации В ИЕРАРХИИ(&парамПодразделение)
				   |
	               |УПОРЯДОЧИТЬ ПО
	               |	СведенияОСотрудниках.Сотрудник.Наименование";
	
	Запрос.УстановитьПараметр("тДатаНач",НачалоМесяца(ДатаНачалаБП));
	Запрос.УстановитьПараметр("тДатаКон",КонецМесяца(ДатаОкончанияБП));
	Запрос.УстановитьПараметр("ГоловнаяОрганизация",Справочники.Организации.НайтиПоКоду("000000001"));
	Запрос.УстановитьПараметр("ПустаяДата",Дата("01.01.0001 00:00:00"));
	Запрос.УстановитьПараметр("тГрафик",Справочники.ГрафикиРаботы.НайтиПоНаименованию("Пятидневка 40"));
	Запрос.УстановитьПараметр("парамПодразделение", УдалитьПодразделениеОрганизации);
	
	РезЗапроса = Запрос.Выполнить().Выгрузить();
	
	ВременнаяТаблица = Новый ТаблицаЗначений;
	ВременнаяТаблица = РезЗапроса;

	ВременнаяТаблица.Колонки.Добавить("Показатель1");
	ВременнаяТаблица.ЗаполнитьЗначения(0,"Показатель1");

	ВременнаяТаблица.Колонки.Добавить("Авторасчет");
	ВременнаяТаблица.ЗаполнитьЗначения(Истина,"Авторасчет");
	
	ВременнаяТаблица.Колонки.Добавить("ВидРасчета");
	ВременнаяТаблица.ЗаполнитьЗначения(ВидРасчета,"ВидРасчета");
	
	ВременнаяТаблица.Колонки.Добавить("ДатаНачала");
	ВременнаяТаблица.ЗаполнитьЗначения(ПериодРегистрации,"ДатаНачала");
	ВременнаяТаблица.Колонки.Добавить("ДатаОкончания");
	ВременнаяТаблица.ЗаполнитьЗначения(КонецМесяца(ПериодРегистрации),"ДатаОкончания");
	
	ВременнаяТаблица.Колонки.Добавить("БазовыйПериодНачало");
	ВременнаяТаблица.ЗаполнитьЗначения(ДатаНачалаБП,"БазовыйПериодНачало");
	ВременнаяТаблица.Колонки.Добавить("БазовыйПериодКонец");
	ВременнаяТаблица.ЗаполнитьЗначения(ДатаОкончанияБП,"БазовыйПериодКонец");
	
	Начисления.Загрузить(ВременнаяТаблица);
	НачисленияПремияЗаИнтенсивность.Загрузить(ВременнаяТаблица);
Показать
По теме из базы знаний
Найденные решения
6. DmitriyTih 06.12.19 09:40 Сейчас в теме
(5) Аналогичные ситуации у меня возникали и решались проверкой передаваемых параметров в запрос, иногда бывает не так прозрачно как кажется на первый взгляд.
Попробуйте убирать по одному параметры из запроса, пока запрос не вернет данные.
user1241616; YannikAlx; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DmitriyTih 06.12.19 09:22 Сейчас в теме
(1) Поставьте точку останова на строке кода:
РезЗапроса = Запрос.Выполнить().Выгрузить();

посмотрите есть ли данные в тз "РезЗапроса"

Аналогично посмотрите есть ли данные в тз "ВременнаяТаблица "
    ВременнаяТаблица = РезЗапроса;
Teut_Vlad; +1 Ответить
3. user1241616 06.12.19 09:25 Сейчас в теме
(2)
Извините. Сразу не уточнил.
Данных в РезЗапроса нет. На тестовой базе они есть.
4. DmitriyTih 06.12.19 09:28 Сейчас в теме
(3) Тогда проверьте все параметры, которые устанавливаете в запросе и в консоле запросов
5. user1241616 06.12.19 09:35 Сейчас в теме
(4) Параметры заполнены корректно.
Повторюсь. На тестовой базе выполнил данное задание.
Все отрабатывает корректно на тестовой базе.
Базы полностью идентичны.
После чего внесенные изменения перенес на основную базу.
6. DmitriyTih 06.12.19 09:40 Сейчас в теме
(5) Аналогичные ситуации у меня возникали и решались проверкой передаваемых параметров в запрос, иногда бывает не так прозрачно как кажется на первый взгляд.
Попробуйте убирать по одному параметры из запроса, пока запрос не вернет данные.
user1241616; YannikAlx; +2 Ответить
7. fromlion 180 06.12.19 09:42 Сейчас в теме
(5) тоже склоняюсь к тому что график работы скорее всего не находит.
8. DmitriyTih 06.12.19 09:43 Сейчас в теме
(7) Да, судя по передаваемому параметру (поиск по наименованию и с неточным совпадением) велика вероятность
9. YannikAlx 27 06.12.19 09:47 Сейчас в теме
(5) по любому у вас скорее всего не совпадают ключевые параметры в разных базах - вот и ищите.
Удалив все параметры - вы скорее всего получите результат, а потом по одному добавляйте и найдете тот параметр , который убивает результат
10. user1241616 06.12.19 09:55 Сейчас в теме
Спасибо всем большое.
Действительно из-за невнимательности не выполнялся запрос.
Дело в том что был создан в Справочнике еще один График с аналогичным названием с путыми значениями и помечен на удаление. Именно он и попал в параметры запроса.
Еще раз спасибо.
Оставьте свое сообщение

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