|
ЗУП 3.1.8, БСП. Апофеоз печатных форм | ☑ | ||
---|---|---|---|---|
0
1CIlya
17.12.18
✎
15:49
|
Здравствуйте, друзья!
Постараюсь выражать мысли связанно, но что-то пока один поток сознания. Имеем несложную задачу. В печатной форме приказа на отпуск (Т-6) вывести дополнительный абзац текста в том случае, когда работник написал заявление о предоставлении единовременного поощрения. Понять, что работник это заявление написал просто - реквизит шапки документа ПредоставитьЕдиновременнуюВыплатуКОтпуску. Немного поковырявшись в том, как они переделали печать Т-6, понимаешь, что собственно вывод происходит в процедуре Процедура ВывестиНаПечатьТ6(ДокументРезультат, ДанныеСсылок, МакетПечатнойФормы, ИдентификаторыМакета = Неопределено, ОбъектыПечати = Неопределено) Экспорт ... ЗарплатаКадрыОтчеты.ВывестиВДокументРезультатОбластиМакета( ДокументРезультат, МакетПечатнойФормы, "Шапка,Работник,Подвал", ДанныеНаПечать, ДанныеВычисляемыеНаХоду); ... КонецПроцедуры Здесь последовательность областей макета перечислена через запятую и используется очень простая процедура БСП. Она заполняет область данными и выводит в ДокументРезультат. Вопрос. Можно ли средствами БСП выводить область в зависимости от условия (стоит ли галка)? Желательно при этом сильно не ломать типовую. |
|||
1
HawkEye
17.12.18
✎
15:50
|
(0) через "е" пишется....
|
|||
2
1CIlya
17.12.18
✎
16:07
|
Пока на ум приходит "обернуть" вызов процедуры. В своем модуле проанализировать стоит ли галка и в зависимости от этого сформировать последовательность областей.
|
|||
3
d4rkmesa
17.12.18
✎
16:27
|
(0) Навскидку, через расширение с вызовом проверки &Перед переопределить макет печатной формы, нужное дополнение включить в шапку или подвал нового макета. Некрасиво, конечно.
|
|||
4
2S
17.12.18
✎
16:46
|
то ли еще будет
|
|||
5
Alexandr_U1982
17.12.18
✎
18:08
|
(0) Программный интерфейс подсистемы "Печать":
https://its.1c.ru/db/bsp302doc#content:3326:hdoc |
|||
6
Alexandr_U1982
17.12.18
✎
18:17
|
(0) Как вариант:
... ЗарплатаКадрыОтчеты.ВывестиВДокументРезультатОбластиМакета( ДокументРезультат, МакетПечатнойФормы, "Шапка,Работник", ДанныеНаПечать, ДанныеВычисляемыеНаХоду); Если ПредоставитьЕдиновременнуюВыплатуКОтпуску Тогда ЗарплатаКадрыОтчеты.ВывестиВДокументРезультатОбластиМакета( ДокументРезультат, МакетПечатнойФормы, "СвойНовыйАбзац", ДанныеНаПечать, ДанныеВычисляемыеНаХоду); КонецЕсли; ЗарплатаКадрыОтчеты.ВывестиВДокументРезультатОбластиМакета( ДокументРезультат, МакетПечатнойФормы, "Подвал", ДанныеНаПечать, ДанныеВычисляемыеНаХоду); ... Если не хочешь ломать типовую, то делай либо расширение, либо внешнюю печатную форму. |
|||
8
2S
18.12.18
✎
09:32
|
(0) Типовую не ломай
Ежики очень сильно кололись после перехода на 3.1.8 |
|||
9
1CIlya
18.12.18
✎
10:38
|
(6) Сделал почти тоже самое, спасибо! Только обернул, так меньше своего кода в типовом модуле.
|
|||
10
1CIlya
18.12.18
✎
10:39
|
(8) Варианты? Пока только (3), но тут и сам автор считает, что еще подумать нужно.
|
|||
11
1CIlya
18.12.18
✎
11:02
|
(6) // ... либо внешнюю печатную форму.
В релизе 3.1.5 именно так и сделал. Аккуратно скопировал во внешнюю печатную форму несколько типовых процедур и "доработал напильником". В релизе 3.1.8 архитектура вывода на печать сломала мне мозг. Из типового модуля вызов в отчет. В отчете только макет СКД, макет табличного документа в общих макетах. Далее снова в типовые модули, причем не локально несколько процедур как в 3.1.5, а ловкой рукой "размазано" по куче модулей. Все эти процедуры к себе в обработку не забрать. В итоге подсистема призванная к сокращению вмешательства в типовой код не оставляет иного и, перепробовав несколько вариантов, понимаешь, что проще всего - вмешаться в типовой код. Минутка уныния, господа... |
|||
12
Alexandr_U1982
18.12.18
✎
11:16
|
(11)Печатная форма от 3.1.5 должна продолжать работать и в 3.1.8.
|
|||
13
Alexandr_U1982
18.12.18
✎
11:17
|
+(12)Внешняя печатная форма
|
|||
14
Alexandr_U1982
18.12.18
✎
11:18
|
(11) Перенос печатных форм в отчеты на СКД обусловлен вот этим:
https://its.1c.ru/db/updinfo#content:588:1:issogl1_1 В программе имеется возможность вносить определённые изменения в макеты печатных форм и отчётов самим пользователем, без изменения конфигурации. В версии 3.1.8 эти возможности существенно расширены. Теперь через раздел "Настройка" – "Сервис" – "Настраиваемые печатные формы" можно вывести в некоторые макеты множество различных реквизитов, в том числе добавленных самостоятельно в качестве дополнительных. После этого добавленное поле можно разместить непосредственно в печатной форме. Это можно сделать разными способам: •или перенести поле в нужное место формы, удерживая его курсором мыши; •или в контекстном меню (правая кнопка мыши на поле) нажать "Копировать идентификатор", затем аналогично в нужно месте печатной формы нажать "Вставить идентификатор" •или впечатать идентификатор в печатную форму вручную При этом в свойствах ячейки печатной формы свойство "Заполнение" должно быть установлено как "Параметр" (или "Шаблон", если в ячейку кроме поля требуется впечатать текст, или же используется несколько полей – каждое поле должно быть заключено в квадратные скобки). Имеется возможность добавить собственное поле, заполняемое на основании доступных полей. И т.д. и т.п. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |