1.
Гость
10.02.21 10:56
Может кто сталкивался с таким, не получается вывести табличную часть списком. Выводится только одна строка, остальные нет. Я только учусь, но решить надо срочно. Спасибо за помощь
Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Документы.ПроизвольныйПриказ.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПроизвольныйПриказ.Дата КАК Дата,
| ПроизвольныйПриказ.Номер КАК Номер,
| ПроизвольныйПриказ.Организация КАК Организация,
| ПроизвольныйПриказ.Основание КАК Основание,
| ВЫБОР
| КОГДА ПроизвольныйПриказ.Причина.ПолноеНаименование = """"
| ТОГДА ПроизвольныйПриказ.Причина
| ИНАЧЕ ПроизвольныйПриказ.Причина.ПолноеНаименование
| КОНЕЦ КАК Причина,
| ПроизвольныйПриказ.Текст КАК Текст,
| ПроизвольныйПриказ.Руководитель.Фамилия КАК РуководительФамилия,
| ПроизвольныйПриказ.Руководитель.Инициалы КАК РуководительИнициалы,
| ПроизвольныйПриказ.ДолжностьРуководителя КАК ДолжностьРуководителя,
| ПроизвольныйПриказ.Организация.НаименованиеПолное КАК ОрганизацияНаименованиеПолное,
| ПроизвольныйПриказТЧ.Сотрудник КАК Сотрудник,
| ПроизвольныйПриказТЧ.НомерСтроки КАК НомерСтроки,
| ПроизвольныйПриказТЧ.ПериодДействияНачало КАК ПериодДействияНачало,
| ПроизвольныйПриказТЧ.ПериодДействияКонец КАК ПериодДействияКонец,
| ПроизвольныйПриказТЧ.Сотрудник.Код КАК СотрудникКод
|ПОМЕСТИТЬ ВТ_ДанныеДокумента
|ИЗ
| Документ.ПроизвольныйПриказ.ТЧ КАК ПроизвольныйПриказТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПроизвольныйПриказ КАК ПроизвольныйПриказ
| ПО ПроизвольныйПриказТЧ.Ссылка = ПроизвольныйПриказ.Ссылка
|ГДЕ
| ПроизвольныйПриказ.Ссылка В(&Ссылка)
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение КАК ТекущееПодразделение,
| ТекущиеКадровыеДанныеСотрудников.ТекущаяДолжность КАК ТекущаяДолжность,
| ТекущиеКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник
|ПОМЕСТИТЬ ВТ_ДанныеСотрудника
|ИЗ
| РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ВТ_ДанныеДокумента.Дата КАК Дата,
| ВТ_ДанныеДокумента.Номер КАК Номер,
| ВТ_ДанныеДокумента.Организация КАК Организация,
| ВТ_ДанныеДокумента.Основание КАК Основание,
| ВТ_ДанныеДокумента.Причина КАК Причина,
| ВТ_ДанныеДокумента.Текст КАК Текст,
| ВТ_ДанныеСотрудника.ТекущееПодразделение КАК ТекущееПодразделение,
| ВТ_ДанныеСотрудника.ТекущаяДолжность КАК ТекущаяДолжность,
| ВТ_ДанныеДокумента.РуководительИнициалы КАК РуководительИнициалы,
| ВТ_ДанныеДокумента.ДолжностьРуководителя КАК ДолжностьРуководителя,
| ВТ_ДанныеДокумента.РуководительФамилия КАК РуководительФамилия,
| ВТ_ДанныеДокумента.ОрганизацияНаименованиеПолное КАК ОрганизацияНаименование,
| ВТ_ДанныеДокумента.Сотрудник КАК Сотрудник,
| ВТ_ДанныеДокумента.НомерСтроки КАК НомерСтроки,
| ВТ_ДанныеДокумента.ПериодДействияНачало КАК ПериодДействияНачало,
| ВТ_ДанныеДокумента.ПериодДействияКонец КАК ПериодДействияКонец,
| ВТ_ДанныеДокумента.СотрудникКод КАК СотрудникКод
|ИЗ
| ВТ_ДанныеДокумента КАК ВТ_ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ДанныеСотрудника КАК ВТ_ДанныеСотрудника
| ПО ВТ_ДанныеДокумента.Сотрудник = ВТ_ДанныеСотрудника.Сотрудник";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Шапка = Макет.ПолучитьОбласть("Шапка");
Строка = Макет.ПолучитьОбласть("Строка");
Подвал = Макет.ПолучитьОбласть("Подвал");
ТабДок.Очистить();
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
Строка.Параметры.Заполнить(Выборка);
ДанныеПечати = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Выборка);
ДанныеПечати.ПериодДействияНачало = Формат(ДанныеПечати.ПериодДействияНачало, "ДЛФ=D");
Строка.Параметры.ПериодДействияНачало = ДанныеПечати.ПериодДействияНачало;
ДанныеПечати.ПериодДействияКонец = Формат(ДанныеПечати.ПериодДействияКонец, "ДЛФ=D");
Строка.Параметры.ПериодДействияКонец = ДанныеПечати.ПериодДействияКонец;
ТабДок.Вывести(Строка, Выборка.Уровень());
//ТабДок.Вывести(Строка, Выборка.Уровень());
Подвал.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Подвал, Выборка.Уровень());
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Алкогольная декларация для 1С 8.1, 8.2, 8.3 (1, 2, 3, 4, 5, 6, 7, 8 формы) УТ10.2/10.3, УТ11, УПП, КА, БП2.0/3.0, БП КОРП, Розница 1.0/2.1, Далион, Астор, УТАП и др. с подписью и шифрованием, редакция 2.3
- Трудовой договор для ЗУП 3.1/ЗиКГУ 3.1 ПРОФ/КОРП, ERP 2.4-2.5, КА 2.2-2.4 + трудовой договор + Договор материальной ответственности (3 в 1)
- Приказ о поощрении списком для ЗУП 3.1/ЗиКГУ 3.1 ПРОФ/КОРП, ERP 2.4-2.5, КА 2.4
- Форма 30 федерального статистического наблюдения "Сведения о медицинской организации"
- Фишки платформы 1С 8.3 для начинающего разработчика
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Шапка = Макет.ПолучитьОбласть("Шапка");
Строка = Макет.ПолучитьОбласть("Строка");
Подвал = Макет.ПолучитьОбласть("Подвал");
ТабДок.Очистить();
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
//Шапку надо выводить в отдельный запрос
// ну или использовать обход группировке
// в данном случае можно сделать так
Если Выборка.Следующий() Тогда
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка);
КонецЕсли;
Выборка.Сбросить();
//ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
//разрыв после каждой строки?
//Если ВставлятьРазделительСтраниц Тогда
// ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
//КонецЕсли;
//это тут не нужно
// уровень тоже не нужен раз не обход по группировке
//Шапка.Параметры.Заполнить(Выборка);
//ТабДок.Вывести(Шапка, Выборка.Уровень());
Строка.Параметры.Заполнить(Выборка);
ДанныеПечати = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Выборка);
ДанныеПечати.ПериодДействияНачало = Формат(ДанныеПечати.ПериодДействияНачало, "ДЛФ=D");
Строка.Параметры.ПериодДействияНачало = ДанныеПечати.ПериодДействияНачало;
ДанныеПечати.ПериодДействияКонец = Формат(ДанныеПечати.ПериодДействияКонец, "ДЛФ=D");
Строка.Параметры.ПериодДействияКонец = ДанныеПечати.ПериодДействияКонец;
ТабДок.Вывести(Строка);// Выборка.Уровень());
//ТабДок.Вывести(Строка, Выборка.Уровень());
//это выведем в конце
//Подвал.Параметры.Заполнить(Выборка);
//ТабДок.Вывести(Подвал, Выборка.Уровень());
//ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
Выборка.Сбросить();
//так же и с подвалом
Если Выборка.Следующий() Тогда
Подвал.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Подвал);
КонецЕсли;
//покажем результат
ТабДок.Показать();
// вообще логика тут изначально не верная
Показать
Это решение
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот