|
Печатная форма договора | ☑ | ||
---|---|---|---|---|
0
Ychenik1c
20.07.16
✎
11:31
|
Здравствуйте форумчани. Делаю печатную форму доп соглашения к договору. Он выходит на печать с документа «Кадровые перемещения организации» в зуп 2.5. В одном документе может быть несколько сотрудников. Моя печатная форма выводит договор только для первого сотрудника в списке. Подскажите как можно напечатать для любого сотрудника из списка или для всех?
[spoiler] Функция Печать() Экспорт ладОтчет = Новый ТабличныйДокумент; ладОтчет.Очистить(); спМакеты = Новый СписокЗначений; спМакеты.Добавить("Договор"); спМакеты.Добавить("Договор1"); выб = спМакеты.ВыбратьЭлемент(); Если выб=неопределено Тогда возврат неопределено; КонецЕсли; лаМакет = ПолучитьМакет(выб.Значение); ТабДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет(выб.Значение); ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Номер = Строка(Формат(Число(СсылкаНаОбъект.Номер),"ЧГ=0")); ОбластьМакета.Параметры.Дата = Формат(СсылкаНаОбъект.Дата, "ДЛФ=ДД"); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Договор"); Для Каждого ФизЛица Из ЭтотОбъект.СсылкаНаОбъект.РаботникиОрганизации Цикл ОбластьМакета.Параметры.ФИОСотрудника = ФизЛица.Сотрудник; ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Имена"); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Подвал"); ОбластьМакета.Параметры.ФИО = ФизЛица.Сотрудник; ОбластьМакета.Параметры.ДатаРождения = Формат(ФизЛица.Сотрудник.Физлицо.ДатаРождения, "ДЛФ=ДД") + "р"; ОбластьМакета.Параметры.Адрес = СформироватьЗапросДляПечатиТрудовогоДоговора(ФизЛица.Сотрудник.Физлицо); ОбластьМакета.Параметры.Паспорт = ПолучитьПаспортныеДанныеСотрудника(); //ОбластьМакета.Параметры.Паспорт = ПолучитьПаспортныеДанныеСотрудника(ФизЛица.Сотрудник.Физлицо); ОбластьМакета.Параметры.ИНН = ФизЛица.Физлицо.ИНН; ОбластьМакета.Параметры.СНИЛС = ФизЛица.Физлицо.СтраховойНомерПФР; ОбластьМакета.Параметры.ФИО1 = ОбщегоНазначенияЗК.ФамилияИнициалыФизЛица(ФизЛица.Физлицо); ОбластьМакета.Параметры.Дата = Формат(ФизЛица.ДатаНачала, "ДЛФ=ДД"); ТабДокумент.Вывести(ОбластьМакета); Возврат ТабДокумент; КонецЦикла; КонецФункции [/spoiler] |
|||
1
butterbean
20.07.16
✎
11:33
|
убери
ТабДокумент.Вывести(ОбластьМакета); Возврат ТабДокумент; из цикла |
|||
2
Ychenik1c
20.07.16
✎
11:46
|
Ни чего не поменялось. Печатается только для первого сотрудника.
|
|||
3
Nuobu
20.07.16
✎
11:51
|
(2) Сохрани, и переподключи печатную форму.
|
|||
4
Ychenik1c
20.07.16
✎
11:54
|
(3) Так и делал.
|
|||
5
Nuobu
20.07.16
✎
11:55
|
(2) Значит у тебя один сотрудник в документе.
|
|||
6
В тылу врага
20.07.16
✎
11:55
|
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла; Возврат ТабДокумент; |
|||
7
Ychenik1c
20.07.16
✎
11:57
|
(6) И так пробовал.
|
|||
8
Nuobu
20.07.16
✎
11:58
|
(7) Сотрудников сколько в договоре?
|
|||
9
Nuobu
20.07.16
✎
11:58
|
(7) +
Для Каждого ФизЛица Из ЭтотОбъект.СсылкаНаОбъект.РаботникиОрганизации Цикл Для Каждого ФизЛица Из ЭтотОбъект.РаботникиОрганизации Цикл |
|||
10
Ychenik1c
20.07.16
✎
12:01
|
(9) Сотрудников от 5 до 40.
|
|||
11
Nuobu
20.07.16
✎
12:03
|
(10) Отладчиком бежал?
|
|||
12
del123
20.07.16
✎
12:04
|
Добавь
ОбластьМакета = Макет.ПолучитьОбласть("Договор"); в цикл, либо обзови области по разному |
|||
13
Ychenik1c
20.07.16
✎
12:06
|
(11) Отладчик при входе в цикл:
{ВнешняяОбработка.ДополнительноеСоглашение.МодульОбъекта(89)}: Поле объекта не обнаружено (РаботникиОрганизации) Для Каждого ФизЛица Из ЭтотОбъект.РаботникиОрганизации Цикл |
|||
14
Nuobu
20.07.16
✎
12:11
|
(13) извини за мою глупость. поставь как было и опять пройдись отладчиком.
|
|||
15
Ychenik1c
20.07.16
✎
12:16
|
(14) Ничего страшного. Я поменял на Для Каждого ФизЛица Из ЭтотОбъект.ЭтотОбъект.СсылкаНаОбъект.РаботникиОрганизации Цикл. Первый круг проходит без ошибок, а при входе на второй круг: {ВнешняяОбработка.ДополнительноеСоглашение.МодульОбъекта(90)}: Поле объекта не обнаружено (ФИОСотрудника)
ОбластьМакета.Параметры.ФИОСотрудника = ФизЛица.Сотрудник; |
|||
16
Ychenik1c
20.07.16
✎
12:17
|
Он получается видит только одного первого сотрудина. Я менял код цикл ставил выше - тогда выводил последнего сотрудника из документа.
|
|||
17
Mankubus
20.07.16
✎
12:17
|
(15) надо больше ЭтотОбъект.ЭтотОбъект.ЭтотОбъект.ЭтотОбъект.ЭтотОбъект
|
|||
18
Nuobu
20.07.16
✎
12:19
|
(16) ОбластьМакета = Макет.ПолучитьОбласть("Договор");
Внеси в цикл. |
|||
19
Ychenik1c
20.07.16
✎
12:19
|
(17) Спасибо за подсказку))) Поправил, убрал лишнее.
|
|||
20
Ychenik1c
20.07.16
✎
12:26
|
(18) Теперь в отладке без ошибки и конце на "Возврат ТабДокумент;" на одним списком выходят все договоры для всех сотрудниках. Но без отладчика в 1с выходит только для первого сотррудника договор.
|
|||
21
Ychenik1c
20.07.16
✎
12:32
|
Цикл перенес выше иначе у второго и последующих договоров нет шапки.
[spoiler] лаМакет = ПолучитьМакет(выб.Значение); ТабДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет(выб.Значение); Для Каждого ФизЛица Из ЭтотОбъект.СсылкаНаОбъект.РаботникиОрганизации Цикл ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Номер = Строка(Формат(Число(СсылкаНаОбъект.Номер),"ЧГ=0")); ОбластьМакета.Параметры.Дата = Формат(СсылкаНаОбъект.Дата, "ДЛФ=ДД"); ТабДокумент.Вывести(ОбластьМакета); //Для Каждого ФизЛица Из ЭтотОбъект.СсылкаНаОбъект.РаботникиОрганизации Цикл ОбластьМакета = Макет.ПолучитьОбласть("Договор"); [/spoiler] |
|||
22
Ychenik1c
21.07.16
✎
04:35
|
Так пока не удается решить проблему. В отладчике выводит печатные формы для всех сотрудников в договоре. Без отладчика только для последнего. Необходимо печатать либо для всех либо для выделенныз (любой из вариантов). Лучше конечно для выделенного сотрудника из списка.
|
|||
23
Ychenik1c
21.07.16
✎
05:06
|
И плюс как сделать чтобы при печати следующего договора начиналось с нового листа, а не все договора слитно?
|
|||
24
Karlay
21.07.16
✎
05:11
|
(23) ВставитьГоризонтальныйРазделительСтраниц
|
|||
25
Karlay
21.07.16
✎
05:13
|
(23) ВывестиГоризонтальныйРазделительСтраниц
|
|||
26
Ychenik1c
21.07.16
✎
06:58
|
(25) Спасибо большое, работает. Теперь только не пойму почему в отладчике печатаются правильно все договоры, а в 1с только либо первый либо последни?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |