Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 мая 2024, 05:55

Вывод сразу 2-ух печатных форм

Автор gliokker, 18 сен 2013, 12:46

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

gliokker

Опять привет,возвращаюсь в начало я неправельно начал делать запрос переделал вот новый
Функция ПечатьДокумента(ФизЛицо)





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

Запрос.УстановитьПараметр("ФизЛицо", ФизЛицо);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();


ТабДокумент = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");

//ФормСтрока = "Л = ru_RU; ДП = Истина";
//ПарПредмета="рубль ,рубля ,рублей ,м,копейка,копейки,копеек,ж,2";//ПрописьЧисла
//Показатель1 = ЧислоПрописью(Выборка.Показатель1,ФормСтрока, ПарПредмета);
//ОбластьМакета.Параметры.Показатель1 = Показатель1;
ОбластьМакета.Параметры.Заполнить(Выборка);

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

Областьмакета = Макет.ПолучитьОбласть("Основное");
ОбластьМакета.Параметры.Заполнить(Выборка);
ТабДокумент.Вывести(ОбластьМакета);


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

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


Функция Печать() Экспорт
Для Каждого Строка из СсылкаНаОбъект.РаботникиОрганизации Цикл
ТабДокумент = ПечатьДокумента(Строка.ФизЛицо);
КонецЦикла ;

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

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


это процедура выводит макет печати из документа Приём на работу в организации.Столкнулся от с какой проблемой.А если у нас 2 сотрудника в одном документе то нужно выводит 2 договора.В функцию печать доавил Цикл НО если в документе 2 и более сотрудников то выводит на печать только последнего сотрудника  а остальных нет,подскажите что делаю не так.

LordWizard

Попробуй добавить

ТабДокумент.Вывести(....
ТабДокумент.ТолькоПросмотр() = Истина;
ТабДокумент.Показать("печатка... бла,бла,бла");
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

gliokker

Цитата: LordWizard от 18 сен 2013, 13:05
Попробуй добавить

ТабДокумент.Вывести(....
ТабДокумент.ТолькоПросмотр() = Истина;
ТабДокумент.Показать("печатка... бла,бла,бла");

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

   ТабДокумент = Новый ТабличныйДокумент;
   Макет = ПолучитьМакет("Макет");
   ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
   
//ФормСтрока = "Л = ru_RU; ДП = Истина";
//ПарПредмета="рубль ,рубля ,рублей ,м,копейка,копейки,копеек,ж,2";//ПрописьЧисла
//Показатель1 = ЧислоПрописью(Выборка.Показатель1,ФормСтрока, ПарПредмета);
//ОбластьМакета.Параметры.Показатель1 = Показатель1;
ОбластьМакета.Параметры.Заполнить(Выборка);
ТабДокумент.Вывести(ОбластьМакета);
   Областьмакета = Макет.ПолучитьОбласть("Основное");
   ОбластьМакета.Параметры.Заполнить(Выборка);
   ТабДокумент.Вывести(ОбластьМакета);
   ТабДокумент.ОтображатьСетку=Ложь;
   ТабДокумент.ОтображатьЗаголовки = Ложь;

   ТабДокумент.показать();

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

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


Функция Печать() Экспорт
   Для Каждого Строка из СсылкаНаОбъект.РаботникиОрганизации Цикл
      ТабДокумент = ПечатьДокумента(Строка.ФизЛицо);
    КонецЦикла ;
КонецФункции

Вот только теперь столкнулся вот с такой проблемой.В документе например 9 человек а нам нужен только один,как сделать чтоб печатолось только выбранная строка,(блин я загоняюсь).Я думал поставь условие вопрос с условием ну скажем выдаётся сообщение печатать пачку или нет если нет то печатаетс только активная строка если да то вся пачка.Вот только вообще не имею представления как это сделать.

LordWizard

Так ты же с формы дока печатаешь , так и проверяй активность строк Табла. и соответственно  печатай ее. если нет активных - печатать все.
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

gliokker

Цитата: LordWizard от 18 сен 2013, 13:29
Так ты же с формы дока печатаешь , так и проверяй активность строк Табла. и соответственно  печатай ее. если нет активных - печатать все.
Полюбому хоть один будет активный

LordWizard

Цитата: gliokker от 18 сен 2013, 13:34
Цитата: LordWizard от 18 сен 2013, 13:29
Так ты же с формы дока печатаешь , так и проверяй активность строк Табла. и соответственно  печатай ее. если нет активных - печатать все.
Полюбому хоть один будет активный
не будет. ты открываешь форму дока, и только после выбора в табличной части дока будет активна строка вроде.
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

gliokker

Цитата: LordWizard от 18 сен 2013, 13:38
Цитата: gliokker от 18 сен 2013, 13:34
Цитата: LordWizard от 18 сен 2013, 13:29
Так ты же с формы дока печатаешь , так и проверяй активность строк Табла. и соответственно  печатай ее. если нет активных - печатать все.
Полюбому хоть один будет активный
не будет. ты открываешь форму дока, и только после выбора в табличной части дока будет активна строка вроде.
Наши сотрудники (отдел кадров) полюбому сперва мышкой раз 10 нажмут потом начнут читать что в документе есть)))Ладно вопрос закрыт сам придумаю.Спасибо

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск