Печатная форма

1. VKuser207941938 16.12.23 03:01 Сейчас в теме
Такой вот вопрос, делал печатную форму, и столкнулся с такой проблемой что когда использую группировку запроса, то появляються пробелы. Можно ли это как-то исправить или только делать каждый запрос отдельно?

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

	КонецЦикла;
Показать


И может сможет кто-нибудь напомнить почему при сложении столбцов они ещё и умножаются? Вроде когда языки программирования помнил что там какой-то прикол был, но сейчас окончательно из головы вылетело
Код сложения
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1880116 16.12.23 08:09 Сейчас в теме
(1)
когда языки программирования помнил что там какой-то прикол был,
Начни, пожалуй, с https://uc1.1c.ru/course/zaprosy-v-1s-predpriyatie-8-dlya-programmistov-i-razrabotchikov/
3. Гость 16.12.23 08:47
Не получится вторым способом сделать, таблицы через запятую (декартово произведение) в секции ИЗ, поэтому и умножаются.

Думаю, следует сделать выбор 0 ей, вместо NULL
Поместить во временную таблицу ВТДанные
Группировку делать уже во втором запросе пакета

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

    КонецЦикла;
Показать
4. пользователь 16.12.23 09:13
Сообщение было скрыто модератором.
...
5. Swetlana 26 16.12.23 12:39 Сейчас в теме
(3) вместо 0 можно неопределено выбрать
6. user1880116 16.12.23 15:43 Сейчас в теме
(5)
можно
А в чем разница?
7. Swetlana 26 18.12.23 08:30 Сейчас в теме
8. VKuser207941938 18.12.23 16:43 Сейчас в теме
(5)Всмысле неопределено?
Оставьте свое сообщение

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