Помогите с параметрами печати

1. RALik_Minsk 28.06.18 16:10 Сейчас в теме
День добрый! Есть отчет для вывода расчета оплаты по путевым. То есть надо вставить разрыв страницы но как это сделать не знаю( Еще ко всему размер плавающий там в одном расчете может быть несколько работ.
Есть пример в своей конфигурации (расчетные листки) но там так мудрено написано что просто взять от туда механизм не получается.
Процедура СформироватьОтчет(ДокументРезультат, ПоказыватьЗаголовок = Ложь, ВысотаЗаголовка = 0, ТолькоЗаголовок = Ложь, ОчищатьТабличныйДокумент = Истина) Экспорт

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

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

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

	
	

	
	

 
 
	
	
	
	
КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. dandykry 7 28.06.18 16:14 Сейчас в теме
(1) Точно отчет? не печатная форма?
7. RALik_Minsk 28.06.18 16:32 Сейчас в теме
(2)Отчет с макетом внутри. В макете 4 области (Шапка,Таблица,Итог,Подвал) Если Шапка с Итогом и Подвалом фиксированы то таблица может содержать от одной строчки до 7-8 и строка может быть разная по высоте в зависимости от наименования тех. операции.
12. dandykry 7 28.06.18 16:49 Сейчас в теме
13. RALik_Minsk 28.06.18 16:58 Сейчас в теме
(2) Вот так сделан
Прикрепленные файлы:
14. dandykry 7 28.06.18 17:05 Сейчас в теме
(13) ну да. Проще говоря решается ручным выводом Процессора компоновки данных

	ТабличныйДокумент.Очистить();

	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
	

	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
	ПроцессорВывода.НачатьВывод();


Пока Не ПроцессорКомпоновкиДанных.Следующий()  = НЕопределено Цикл

//тут в зависимости от структуры отчета проверяете вмещается или нет. Для этого используйте как раз ТабДокумент.ПроверитьВывод())

ПроцессорВывода .Вывестиэлемент(ПроцессорКомпоновкиДанных);
КонецЦикла;
		
	
Показать


Если совсем сложно будет выходить, можно ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент заменить на ПроцессорВыводаРезультатаКомпоновкиДанныхВТКоллекциюЗначений­ и руками вывести как печатную форму. Получится намного проще
3. IvanovIvan 28.06.18 16:15 Сейчас в теме
ТабличныйДокумент.ПроверитьВывод(МассивОбластей), если не помещается Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц()
4. Timur.V 67 28.06.18 16:24 Сейчас в теме
Создай Макет и нарисуй отчет.
На форме создаем реквизит с типом ТабличныйДокумент и туда выводим результат.

Разрыв вставляется туда, куда нужно. Если нужно после табличной части, значит после и вставляется.
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();  // Можно принудительно вставить разрывы страниц  	
5. RALik_Minsk 28.06.18 16:29 Сейчас в теме
(4)Принудительно не получится размеры плавают.
6. IvanovIvan 28.06.18 16:29 Сейчас в теме
(5) Еще раз ТабличныйДокумент.ПроверитьВывод(МассивОбластей)
8. RALik_Minsk 28.06.18 16:33 Сейчас в теме
(6)с массивами не работал по этому даже не знаю как начать.
10. IvanovIvan 28.06.18 16:48 Сейчас в теме
(8) Массив это по сути тот же Список значений, таблица значений, в который ты запихиваешь все выведеные тобой области....
9. Timur.V 67 28.06.18 16:35 Сейчас в теме
(5) Пример

ОбластьМакета.Параметры.Количество           = Количество;
        ОбластьМакета.Параметры.СуммаСНДС         = ВсегоСНДС;
        ОбластьМакета.Параметры.СуммаБезНДС       = ВсегоСНДС;
        ОбластьМакета.Параметры.СуммаНДС          = 0;
        ОбластьМакета.Параметры.Цена              = Цена;
        ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ВыборкаСтрокТовары.ТоварНаименование);
        ОбластьМакета.Параметры.КоррСчет           = СокрЛП(ВыборкаСтрокТовары.СчетУчета);
        ОбластьМакета.Параметры.НоменклатурныйНомер = ВыборкаСтрокТовары.ТоварКод;
        МассивОбластей =Новый Массив;
        МассивОбластей.Добавить(ОбластьМакета);        
        Если (Не ТабДокумент.ПроверитьВывод(МассивОбластей)) Тогда
            //        Или  (Ном = КоличествоСтрок) Тогда

             НомерСтраницы    = НомерСтраницы + 1;
             ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;             
             ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
             ТабДокумент.Вывести(ЗаголовокТаблицы);
             МассивОбластей.Очистить();
        КонецЕсли;    
        
        ТабДокумент.Вывести(ОбластьМакета);
Показать
RALik_Minsk; +1 Ответить
11. RALik_Minsk 28.06.18 16:49 Сейчас в теме
Вставил код может че подскажете.
IvanovIvan; +1 Ответить
15. mad375 29.06.18 09:39 Сейчас в теме
(11)Проверку надо делать ДО вывода областей, т.е. собери все ДокументРезультат.Вывести() в одно место в конце, таблицу нужно будет выводить в отдельный ТабличныйДокумент, вновь созданный. Типа такого получится:

Процедура СформироватьОтчет(ДокументРезультат, ПоказыватьЗаголовок = Ложь, ВысотаЗаголовка = 0, ТолькоЗаголовок = Ложь, ОчищатьТабличныйДокумент = Истина) Экспорт

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

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

    КонецЦикла;

    

    
КонецПроцедуры
Показать


Текст кстати в коде очень трудно читать, расстановкой отступов я смотрю никто не заморачивался...
16. RALik_Minsk 29.06.18 11:09 Сейчас в теме
(15)Спасибо попробую я не чистый программист нет даже образования по этому делаю как могу и учусь потиху
17. RALik_Minsk 29.06.18 11:31 Сейчас в теме
(15) Немного не то но спасибо!! буду пилить далее. Он разрыв ставит после каждой расчетки хотя на странице может влезь больше
18. RALik_Minsk 29.06.18 12:04 Сейчас в теме
(15)И троху испортили таблицу она выводит только последнею строчку, остальное затирает
19. mad375 29.06.18 12:30 Сейчас в теме
(18)Да, ошибся, надо объявление табличного документа вывести за цикл
......

//Нужен промежуточный Табличный документ, собрать таблицу в нем
ТабДокТаблица = Новый ТабличныйДокумент;

Пока Итог1.Следующий() Цикл
.....
Показать
RALik_Minsk; +1 Ответить
20. RALik_Minsk 29.06.18 14:53 Сейчас в теме
Всем спасибо получилось вставляю код может быть кому такой пример пригодится.
Процедура СформироватьОтчет(ДокументРезультат, ПоказыватьЗаголовок = Ложь, ВысотаЗаголовка = 0, ТолькоЗаголовок = Ложь, ОчищатьТабличныйДокумент = Истина) Экспорт
	
	Если НЕ ЗначениеЗаполнено(ДатаНач) Тогда
		
		Сообщить("Не указана дата начала периода!", СтатусСообщения.Важное);
		Возврат
		
	КонецЕсли;
	
	Если НЕ ЗначениеЗаполнено(ДатаКон) Тогда
		
		Сообщить("Не указана дата окончания периода!", СтатусСообщения.Важное);
		Возврат
		
	КонецЕсли;
	Если ОчищатьТабличныйДокумент Тогда
		ДокументРезультат.Очистить();
	КонецЕсли; 
	
	Макет                        = ПолучитьМакет("Макет");
	ОбластьШапка                = Макет.ПолучитьОбласть("Шапка");
	ОбластьТаблица             = Макет.ПолучитьОбласть("Таблица");
	ОбластьИтого             = Макет.ПолучитьОбласть("Итого");
	ОбластьПодвал             = Макет.ПолучитьОбласть("Подвал");
	//Линия                     = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
	
	
	Запрос = Новый Запрос();
	Запрос.Текст = 
	"ВЫБРАТЬ
	|    ПутевойТракторный.Дата КАК Дата,
	|    ПутевойТракторный.ФизЛицо,
	|    ПутевойТракторный.Трактор,
	|    ПутевойТракторный.Ссылка,
	|    ПутевойТракторный.Ответственный,
	|    ПутевойТракторный.НомерБланка,
	|    ПутевойТракторный.Выработка.(
	|        Ссылка,
	|        НомерСтроки,
	|        Подразделение,
	|        СпособОтражения,
	|        ТехнологическаяОперация,
	|        Количество,
	|        Дни,
	|        Часы,
	|        ВидРасчета,
	|        Расценка,
	|        НормаВыработки,
	|        НормаРасхода,
	|        Сумма,
	|        Расход,
	|        РаботаДвигателя,
	|        РасходФакт,
	|        ТипОперации,
	|        Прицеп
	|    )
	|ИЗ
	|    Документ.ПутевойТракторный КАК ПутевойТракторный
	|ГДЕ
	|    ПутевойТракторный.ФизЛицо = &Работник
	|    И ПутевойТракторный.Дата >= &ДатаНач
	|    И ПутевойТракторный.Дата <= &ДатаКон
	|
	|УПОРЯДОЧИТЬ ПО
	|    Дата" ;
	
	Запрос.УстановитьПараметр("Работник", Работник);
	Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
	Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
	
	Итог = Запрос.Выполнить();
	Выборка = Итог.Выбрать();
	ПОка Выборка.Следующий() ЦИкл
		ОбластьШапка.Параметры.НомерЛиста = Выборка.НомерБланка;
		ОбластьШапка.Параметры.Авто = Выборка.Трактор;
		ОбластьШапка.Параметры.КодА = Выборка.Трактор.Код;
		ОбластьШапка.Параметры.День = День(Выборка.Дата);
		СтрокаДата = Формат(Выборка.Дата, "ДФ=ММММ");
		ОтчетныйМесяцСклонение(СтрокаДата);
		ОбластьШапка.Параметры.Месяц = НРег(СтрокаДата);
		ОбластьШапка.Параметры.Год = Год(Выборка.Дата);
		ОбластьШапка.Параметры.Сотрудник = Выборка.ФизЛицо.Код + " " + Выборка.ФизЛицо;
		//Перенести дальше, после проверки вывода
		//ДокументРезультат.Вывести(ОбластьШапка);
		
		Запрос1 = Новый Запрос();
		Запрос1.Текст =
		"ВЫБРАТЬ
		|    ПутевойТракторныйВыработка.Ссылка,
		|    ПутевойТракторныйВыработка.НомерСтроки,
		|    ПутевойТракторныйВыработка.Подразделение,
		|    ПутевойТракторныйВыработка.СпособОтражения,
		|    ПутевойТракторныйВыработка.ТехнологическаяОперация,
		|    ПутевойТракторныйВыработка.Количество КАК Количество,
		|    ПутевойТракторныйВыработка.Дни КАК Дни,
		|    ПутевойТракторныйВыработка.Часы КАК Часы,
		|    ПутевойТракторныйВыработка.ВидРасчета,
		|    ПутевойТракторныйВыработка.Расценка,
		|    ПутевойТракторныйВыработка.НормаВыработки,
		|    ПутевойТракторныйВыработка.НормаРасхода,
		|    ПутевойТракторныйВыработка.Сумма КАК Сумма,
		|    ПутевойТракторныйВыработка.Расход КАК Расход,
		|    ПутевойТракторныйВыработка.РаботаДвигателя,
		|    ПутевойТракторныйВыработка.РасходФакт КАК РасходФакт,
		|    ПутевойТракторныйВыработка.ТипОперации,
		|    ПутевойТракторныйВыработка.Прицеп,
		|    ПутевойТракторный.Ссылка КАК Ссылка
		|ИЗ
		|    Документ.ПутевойТракторный.Выработка КАК ПутевойТракторныйВыработка
		|        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПутевойТракторный КАК ПутевойТракторный
		|        ПО ПутевойТракторныйВыработка.Ссылка = ПутевойТракторный.Ссылка
		|ГДЕ
		|    ПутевойТракторныйВыработка.Ссылка = &Ссылка";
		Запрос1.УстановитьПараметр("Ссылка", Выборка.Ссылка);  
		Итог1 = Запрос1.Выполнить().Выбрать();
		//Нужен промежуточный Табличный документ, собрать таблицу в нем
		
		ТабДокТаблица = Новый ТабличныйДокумент;
		Пока Итог1.Следующий() Цикл
			ОбластьТаблица.Параметры.НомерПП = Итог1.НомерСтроки;
			ОбластьТаблица.Параметры.СпособОтражения = Итог1.СпособОтражения;
			ОбластьТаблица.Параметры.ТехОперация = Итог1.ТехнологическаяОперация;
			ОбластьТаблица.Параметры.Кол = Итог1.Количество;
			ОбластьТаблица.Параметры.ОтрДней = Итог1.Дни;
			ОбластьТаблица.Параметры.ОтрЧасы = Итог1.Часы;
			ОбластьТаблица.Параметры.ВидРасчета = Итог1.ВидРасчета.Код;
			ОбластьТаблица.Параметры.Расценка = Итог1.Расценка;
			ОбластьТаблица.Параметры.Сумма = Итог1.Сумма;
			ОбластьТаблица.Параметры.РабДвиг = Итог1.РаботаДвигателя;
			ОбластьТаблица.Параметры.НормВыраб = Итог1.НормаВыработки;
			ОбластьТаблица.Параметры.НормРасх = Итог1.НормаРасхода;
			ОбластьТаблица.Параметры.РасхНорм = Итог1.Расход;
			ОбластьТаблица.Параметры.РасхФакт = Итог1.РасходФакт;
			//Заменить на промежуточный Табличный документ
			//ДокументРезультат.Вывести(ОбластьТаблица);
			ТабДокТаблица.Вывести(ОбластьТаблица);
		КонецЦикла;
		Запрос2 = Новый Запрос();
		Запрос2.Текст =
		"ВЫБРАТЬ
		|    ПутевойТракторныйВыработка.Ссылка,
		|    ПутевойТракторныйВыработка.Количество КАК Количество,
		|    ПутевойТракторныйВыработка.Дни КАК Дни,
		|    ПутевойТракторныйВыработка.Часы КАК Часы,
		|    ПутевойТракторныйВыработка.Сумма КАК Сумма,
		|    ПутевойТракторныйВыработка.Расход КАК Расход,
		|    ПутевойТракторныйВыработка.РасходФакт КАК РасходФакт,
		|    ПутевойТракторный.Ссылка КАК Ссылка
		|ИЗ
		|    Документ.ПутевойТракторный.Выработка КАК ПутевойТракторныйВыработка
		|        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПутевойТракторный КАК ПутевойТракторный
		|        ПО ПутевойТракторныйВыработка.Ссылка = ПутевойТракторный.Ссылка
		|ГДЕ
		|    ПутевойТракторныйВыработка.Ссылка = &Ссылка
		|ИТОГИ
		|    СУММА(Количество),
		|    СУММА(Дни),
		|    СУММА(Часы),
		|    СУММА(Сумма),
		|    СУММА(Расход),
		|    СУММА(РасходФакт)
		|ПО
		|    ОБЩИЕ";
		Запрос2.УстановитьПараметр("Ссылка", Выборка.Ссылка);  
		Итог2 = Запрос2.Выполнить().Выбрать();
		Итог2.Следующий();
		ОбластьИтого.Параметры.ИтогоКол = Итог2.Количество;
		ОбластьИтого.Параметры.ИтогоДней = Итог2.Дни;
		ОбластьИтого.Параметры.ИтогоЧасов = Итог2.Часы;
		ОбластьИтого.Параметры.ИтогоСумма = Итог2.Сумма;
		ОбластьИтого.Параметры.ИтогоРасНорм = Итог2.Расход;
		ОбластьИтого.Параметры.ИтогоРасФакт = Итог2.РасходФакт;
		//Перенести дальше, после проверки вывода
		//ДокументРезультат.Вывести(ОбластьИтого);
		
		ОбластьПодвал.Параметры.Ответственный = Выборка.Ответственный;
		//Перенести дальше, после проверки вывода
		//ДокументРезультат.Вывести(ОбластьПодвал);
		
		МассивОбластей = Новый Массив;
		МассивОбластей.Добавить(ОбластьШапка);
		МассивОбластей.Добавить(ТабДокТаблица); // < -- Проверяем не одну строку, а таблицу целиком
		МассивОбластей.Добавить(ОбластьИтого);
		МассивОбластей.Добавить(ОбластьПодвал);
		
		Если (Не ДокументРезультат.ПроверитьВывод(МассивОбластей)) Тогда
			//        Или  (Ном = КоличествоСтрок) Тогда
			
			
			ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
			МассивОбластей.Очистить();
		КонецЕсли;    
		
		//После проверки выводим области в документ  
		ДокументРезультат.Вывести(ОбластьШапка);
		ДокументРезультат.Вывести(ТабДокТаблица);
		ДокументРезультат.Вывести(ОбластьИтого);
		ДокументРезультат.Вывести(ОбластьПодвал);
		ДокументРезультат.Автомасштаб = Истина;
	КонецЦикла;
	





КонецПроцедуры
Показать
Оставьте свое сообщение
Вакансии
Аналитик 1C
Москва
зарплата от 200 000 руб. до 240 000 руб.
Полный день

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

Аналитик группы поддержки 1С
Москва
зарплата от 160 000 руб. до 250 000 руб.
Полный день

Аналитик
Москва
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день