Ошибка при выводе данных их запроса

1. MORSON 07.01.24 08:31 Сейчас в теме
Имеется следующий запрос:
ВЫБРАТЬ
		|	СУММА(ЕСТЬNULL(НачисленнаяЗПОстаткиИОбороты.СуммаЗПНачальныйОстаток, 0)) КАК СуммаЗПОстаток
		|ИЗ
		|	РегистрНакопления.НачисленнаяЗП.ОстаткиИОбороты(
		|			&Дата1,
		|			,
		|			,
		|			,
		|			Организация = &Организация
		|				И Поликлиника = &Поликлиника
		|				И Сотрудник = &Сотрудник) КАК НачисленнаяЗПОстаткиИОбороты
Показать


Когда прогоняю его через Консоль запросов он выдаёт правильное значение -50500, но когда я уже запускаю программу код выдаёт совсем другие значения. Не могу понять почему.

Вот полный код:
&НаСервере
Процедура СформироватьНаСервере(ТабДок, СсылкаНаОбъект)
	
	//ДатаНачала = Период.ДатаНачала;
	//ДатаОкончания = Период.ДатаОкончания;
	
	
	//Получить макет
	Макет = Отчеты.НачислениеЗПНаВыбор.ПолучитьМакет("Макет1");
	
	//Получение областей из макета
	ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
	ОбластьШапкаТаблицыНач = Макет.ПолучитьОбласть("ШапкаТаблицыНач");
	ОбластьСтрокаТаблицыНач = Макет.ПолучитьОбласть("СтрокаТаблицыНач");
	ОбластьПодвалНач = Макет.ПолучитьОбласть("ПодвалНач");
	ОбластьШапкаТаблицыУд = Макет.ПолучитьОбласть("ШапкаТаблицыУд");
	ОбластьСтрокаТаблицыУд = Макет.ПолучитьОбласть("СтрокаТаблицыУд");
	ОбластьПодвалУд = Макет.ПолучитьОбласть("ПодвалУд");
	
	//Заполнение параметров и вывод областей в табличный документ
	
	//шапка 
	
	
	
	ОбластьШапка.Параметры.Организация = Отчет.Организация;
	ОбластьШапка.Параметры.Поликлиника = Отчет.Поликлиника;
	ОбластьШапка.Параметры.Сотрудник = Отчет.Сотрудник;
	ОбластьШапка.Параметры.ПериодДатаНачала = Формат(Отчет.Период.ДатаНачала,"ДФ=dd.MM.yyyy");
	ОбластьШапка.Параметры.ПериодДатаКонца = Формат(Отчет.Период.ДатаОкончания,"ДФ=dd.MM.yyyy");

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

	Запрос.УстановитьПараметр("Сотрудник", Отчет.Сотрудник);
	Запрос.УстановитьПараметр("Организация", Отчет.Организация);
	Запрос.УстановитьПараметр("Поликлиника", Отчет.Поликлиника);
	Запрос.УстановитьПараметр("Дата1", Отчет.Период.ДатаНачала);
	Запрос.УстановитьПараметр("Дата2", Отчет.Период.ДатаОкончания);

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

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

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

	//подвал нач
		
	// Запрос для суммы НачисленияЗП.СуммаН
	СуммаНачисленияЗП = 0;
	СальдоКонецН = 0;
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	    "ВЫБРАТЬ
	    |	СУММА(ЕСТЬNULL(НачисленнаяЗПОбороты.СуммаЗППриход, 0)) КАК СуммаНачисленияЗП
	    |ИЗ
	    |	РегистрНакопления.НачисленнаяЗП.Обороты(
	    |			&Дата1,
	    |			&Дата2,
	    |			,
	    |			Организация = &Организация
	    |				И Поликлиника = &Поликлиника
	    |				И Сотрудник = &Сотрудник) КАК НачисленнаяЗПОбороты";
	
    Запрос.УстановитьПараметр("Сотрудник", Отчет.Сотрудник);
	Запрос.УстановитьПараметр("Организация", Отчет.Организация);
	Запрос.УстановитьПараметр("Поликлиника", Отчет.Поликлиника);
	Запрос.УстановитьПараметр("Дата1", Отчет.Период.ДатаНачала);
	Запрос.УстановитьПараметр("Дата2", Отчет.Период.ДатаОкончания);

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

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

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

	// Расчет СальдоКонецН
	СальдоКонецН = СуммаНачисленияЗП;

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

&НаКлиенте
Процедура Сформировать(Команда, СсылкаНаОбъект)
	
	ТабДок = Новый ТабличныйДокумент;
	СформироватьНаСервере(ТабДок, СсылкаНаОбъект);
	
    ТабДок.Показать("Печать на выбор");
	
КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1880116 07.01.24 09:02 Сейчас в теме
Начни уже пользоваться отладчиком.

Поставь точку останова перед выполнением запроса и посмотри на значения параметров. Сравни с теми, что ты указывал в консоли.
3. MORSON 07.01.24 14:15 Сейчас в теме
(2)Как мне поможет точка останова, если если не загрузит табличный документ пока не получит все области из него, он просто находится в ожидании. Я уже пробовал
4. user1880116 07.01.24 14:42 Сейчас в теме
(3)
Как мне поможет точка останова, если если не загрузит табличный документ пока не получит все области из него, он просто находится в ожидании.

Вот скажи честно, ты пытался понять фразу "и посмотри на значения параметров"?
5. MORSON 07.01.24 14:58 Сейчас в теме
(4)Да, тупанул. Значение параметров пытался смотреть но видимо не там смотрю. Потому что он показал мне значение параметров Даты, организации, поликлиники, сотрудника а вот именно значений выводимых нет. Я же правильно понимаю это значения которые выводятся при наведении курсорам?
6. user1880116 07.01.24 15:21 Сейчас в теме
(5)
это значения которые выводятся при наведении курсорам
Да
Теперь сравни эти значения с теми, который ты указывал в консоли запросов.
7. MORSON 07.01.24 15:28 Сейчас в теме
(4) Вот как раз проблема в том, что он не показывает значений в цикле почему-то принаведении
8. user1880116 07.01.24 15:29 Сейчас в теме
(7) Не в цикле. Перед выполнением запроса, но поусле установки параметров. Убедись, что ты ставишь такие же параметры, как и в консоли
9. MORSON 07.01.24 15:35 Сейчас в теме
(8) Параметры всё совпадают, и значения у них верные
10. user1880116 07.01.24 15:38 Сейчас в теме
(9)
и значения у них верные
У виртуальной таблицы ОстаткиИОбороты первый параметр какой смысл имеет?
11. MORSON 07.01.24 15:42 Сейчас в теме
(10) Он выбирает дату окончания периода(тоесть 31 число), для того чтобы он выводил остаток на начало периода
12. user1880116 07.01.24 15:53 Сейчас в теме
(11)
выбирает дату окончания периода

(11)
чтобы он выводил остаток на начало периода
Прикрепленные файлы:
13. user1880116 07.01.24 15:54 Сейчас в теме
Не.
Иди-ка ты на курсы.
14. Vinzor 97 08.01.24 11:33 Сейчас в теме
Автор топика. Найдите онлайн запись курса от Павла Чистова.
Вот фрагмент из серии
Пройдите этот курс


Потом спасибо скажете. (от души рекомендую)
Оставьте свое сообщение

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