Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 18:56
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Внешняя печатная форма.  (Прочитано 2963 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ls600

  • ****
  • Сообщений: 322
  • РЕПУТАЦИЯ: 20
  • КПД: 6%
  • Регистрация: 2012-05-14
  • Сайт: 
  • Профессия: Программист 1С
Доброго времени суток. Ситуация вот в чем, создал ВПФ и при печати макет пустой, без заполнения данных. в коде ошибок нет. Подскажите в чем дело, заранее благодарю.



Функция Печать()Экспорт

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОтпускаОрганизации_Т6";
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;

// получаем данные для печати
ВыборкаДляШапки = СформироватьЗапросДляПечати("ПоРеквизитамДокумента").Выбрать();
ВыборкаРаботники = СформироватьЗапросДляПечати("ПоТабличнойЧастиДокумента").Выбрать();

// запоминаем области макета
Макет = ПолучитьМакет("Приказ");
ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка"); // Шапка документа
ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал"); // Подвал документа
ОбластьМакета = Макет.ПолучитьОбласть("Работник"); // строка работника

// выводим данные о руководителях организации
Если ВыборкаДляШапки.Следующий() Тогда
ОбластьМакетаШапка.Параметры.Заполнить(ВыборкаДляШапки); // Шапка документа.
ОбластьМакетаШапка.Параметры.НазваниеОрганизации = СокрЛП(ВыборкаДляШапки.НазваниеОрганизации);
ОбластьМакетаПодвал.Параметры.Заполнить(ВыборкаДляШапки); // Для подвала.
НомерДокДляПечати = ОбщегоНазначения.ПолучитьНомерНаПечать(ЭтотОбъект, глСписокПрефиксовУзлов);
ОбластьМакетаШапка.Параметры.НомерДок = НомерДокДляПечати;
КонецЕсли;

// Начинаем формировать выходной документ
Пока ВыборкаРаботники.Следующий() Цикл

// Каждый приказ на отдельной странице.
Если ТабДокумент.ВысотаТаблицы > 0 Тогда
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

// Шапка документа.
Если СсылкаНаОбъект.РаботникиОрганизации.Количество() > 1 Тогда
ОбластьМакетаШапка.Параметры.НомерДок = НомерДокДляПечати + "/" + ВыборкаРаботники.НомерСтроки
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакетаШапка);

// Данные по работнику.
ОбластьМакета.Параметры.Заполнить(ВыборкаРаботники);
Если ЗначениеЗаполнено(ВыборкаРаботники.ТарифныйРазряд) Тогда
ОбластьМакета.Параметры.Должность = "" + ВыборкаРаботники.Должность + ", " + ВыборкаРаботники.ТарифныйРазряд;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);

// Подвал документа.
ТабДокумент.Вывести(ОбластьМакетаПодвал);

КонецЦикла;

// если не было ни одного работника - выводим пустой бланк
Если ТабДокумент.ВысотаТаблицы = 0 Тогда
ТабДокумент.Вывести(ОбластьМакетаШапка);
ТабДокумент.Вывести(ОбластьМакета);
ТабДокумент.Вывести(ОбластьМакетаПодвал);
КонецЕсли;

Возврат ТабДокумент;

КонецФункции // ПечатьПриказ()

Функция СформироватьЗапросДляПечати(Режим)


Запрос = Новый Запрос;


// Установим параметры запроса
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
Запрос.УстановитьПараметр("Руководитель", Перечисления.ОтветственныеЛицаОрганизаций.Руководитель);
Запрос.УстановитьПараметр("ДатаДокумента", СсылкаНаОбъект.Дата);
Запрос.УстановитьПараметр("ПустаяДата", '00010101');


Если Режим = "ПоРеквизитамДокумента" Тогда


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


ИначеЕсли Режим = "ПоТабличнойЧастиДокумента" Тогда


Запрос.УстановитьПараметр("ГоловнаяОрганизация", ОбщегоНазначения.ГоловнаяОрганизация(СсылкаНаОбъект.Организация));
Запрос.УстановитьПараметр("Праздник", Перечисления.ВидыДнейПроизводственногоКалендаря.Праздник);

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


Иначе
Возврат Неопределено
КонецЕсли;


Возврат Запрос.Выполнить();


КонецФункции


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Может в макете параметры неправильно заданы?

Оффлайн ls600

  • ****
  • Сообщений: 322
  • РЕПУТАЦИЯ: 20
  • КПД: 6%
  • Регистрация: 2012-05-14
  • Сайт: 
  • Профессия: Программист 1С
параметры заданы, вот сам отчет

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
не вмжу где вы в
Функция Печать()Экспорт
получаете
Функция СформироватьЗапросДляПечати(Режим) 

Оффлайн andr2510

  • ООО "ДиГри"
  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 0
  • anfr2510
  • Регистрация: 2010-04-27
  • Сайт: 
А если сделать трассировку, то в выборке есть что нить?
ООО "ДиГри"
www.di-gri.ru


Теги:
 

Форма "Взнос наличными в банк" где она :)

Автор lefantiy_94Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 4674
Последний ответ 30 Июн 2015, 03:50
от lefantiy_94
Вопрос по УНФ (форма "Задание на работу")

Автор tantonyРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 350
Последний ответ 22 Июн 2017, 18:22
от tantony
Как программно вызывать обработчик ПриИзменении поля табличной части после того, как форма была заполнена программно?

Автор ИстребительРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 4384
Последний ответ 27 Июл 2015, 06:21
от cska-fanat-kz
Для объекта не определена форма по умолчанию, соответствующая текущему режиму запуска. Объект: "Консоль Запросов"

Автор Азамат ХубиевРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 6407
Последний ответ 20 Июл 2016, 22:56
от Азамат Хубиев
Шаблон или Форма для заполнения "заказа покупателя"

Автор SandrРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 6614
Последний ответ 02 Сен 2013, 14:22
от LordWizard

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
63 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
alexandr_ll
24 Сообщений

* Кто онлайн

  • Точка Гостей: 272
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal