Доработать типовую печатную форму через Расширение
По теме из базы знаний
- Подключаемые печатные формы с .DOCX макетом без Word'а
- [Расширение] УТ 11.4. Счет на оплату с факсимиле
- Параметризация печатных форм под контрагентов (подключаемое расширение)
- Интеграция Честный Знак и 1C: обмен и синхронизация с маркировками для УТ11,УНФ,КА2,ERP,Розница:Расширение для работы с СУЗ,ГИСМТ,СБИС,Эдо-Лайт
- Пакетная печать и рассылка внешней печатной формы (шаблон внешней обработки)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Зависит от того как формируется печатная форма, если там все в одной функции формируется и она возвращает табличный документ, то проще внешнюю печатную форму сделать, так как единственный способ перехватить, это заменить функцию.
(2)
так как единственный способ перехватить, это заменить функцию.
Ойли? В расширение импортировать документ. С директивой &После в модуле менеджера документа сделать процедуру ДобавитьКомандыПечати со своим обработчиком - и ничего перехватывать не надо - в меню новый пункт и рисуем свою форму , какую хочется...)))
(4) Вы как настоящий журналист, вырвали цитату из контекста и написали свою фигню. Нельзя изменить функцию (до или после), её можно только заменить, а вот процедуру можно. А если формирование идет в одной функции (что очень часто), то какой смысл делать расширение?
Поэтому и написано, что зависит от того как написана формирование печатной формы.
И вопрос, чем лучше делать расширение со своей печатной формой или же просто написать внешнюю печатную форму? В принципе если лень писать, то можно взять готовую и подправить как требуется.
Поэтому и написано, что зависит от того как написана формирование печатной формы.
И вопрос, чем лучше делать расширение со своей печатной формой или же просто написать внешнюю печатную форму? В принципе если лень писать, то можно взять готовую и подправить как требуется.
(5)
Про нельзя До (&Перед) или &После функцию использовать (просветите, кстати попутно уж, раз так случилось, где запрещено &Перед/После для функций),так в этом конкретном случае и нужны процедуры из БСП
чтобы вся печать была в одной функции и очень часто - опять фингя...ну да ладно, Вы ж не журналисть - Вам херню пороть выыходит можно)))
ЗЫ без обид, просто не мог не ответить.....опять же гляишь про расширение чего новое узнаю...
Вы как настоящий журналист, вырвали цитату из контекста и написали свою фигню.
я написал много всякой фигни, можно даже тут посмотреть))))
Про нельзя До (&Перед) или &После функцию использовать (просветите, кстати попутно уж, раз так случилось, где запрещено &Перед/После для функций),так в этом конкретном случае и нужны процедуры из БСП
&После ("ДобавитьКомандыПечати")
Процедура _ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Товарная накладная (ТОРГ-12) с услугами
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ТОРГ12";
КомандаПечати.Представление = НСтр("ru = 'Товарная накладная (ТОРГ-12) <свойвариант>'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
КомандаПечати.Порядок = 5;
//итд
КонецПроцедуры
&После ("Печать")
Процедура _Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТОРГ12") Тогда
.......
Показатьчтобы вся печать была в одной функции и очень часто - опять фингя...ну да ладно, Вы ж не журналисть - Вам херню пороть выыходит можно)))
ЗЫ без обид, просто не мог не ответить.....опять же гляишь про расширение чего новое узнаю...
Перед и после это можно процедуру перехватить, а если функция, то можно только вместо. Читал как то, что можно будет часть кода заменить в расширение из стандартной процедуры, но это уже в новых версиях платформы будет или уже сделали.
Вопрос, зачем в расширение добавлять свою команду печати, если все равно придется писать свою печатную форму? Не проще внешнюю печатную форму сделать?
Вопрос, зачем в расширение добавлять свою команду печати, если все равно придется писать свою печатную форму? Не проще внешнюю печатную форму сделать?
(7)
(7)
(7)
Вопрос, зачем в расширение добавлять свою команду печати,
- например если "нужной" клиенту печатной формы в документе или хочется в меню Печать вывести её в конкретной строке - например в первой
(7)
если все равно придется писать свою печатную форму?
- тут не совсем корректно сказано - "придётся писать" писать придётся что внешнюю, что встроенную, но кода в расширении может понадобится совсем чуть чуть, а для ВПФ таки практически всегда больше. Плюс отладка в расширении гораздо комфортней, чем в ВПФ.
(7)
Не проще внешнюю печатную форму сделать?
- не, не проще, я много лет использовал и использую ВПФ, но с появлением и, что особенно важно, развитием расширений, ВПФ делаю всё реже и реже - в расширении проще и быстрее получается...
(9) Разрабатывая ВПФ, нужно иметь шаблон (экономит время). В большинстве случаев достаточно скопировать стандартные процедуры и функции из типовой или обращаться к ним, если возможно.
Проблему с отладкой уже давно решили, просто надо немного заморочиться один раз.
А вообщем как делать, решает каждый сам, кто бы что не говорил, но это не так важно. Тут главное что бы заказчик был доволен и все работало, а там хоть через компоненту. Заказчика в большинстве случаев это не волнует.
Проблему с отладкой уже давно решили, просто надо немного заморочиться один раз.
А вообщем как делать, решает каждый сам, кто бы что не говорил, но это не так важно. Тут главное что бы заказчик был доволен и все работало, а там хоть через компоненту. Заказчика в большинстве случаев это не волнует.
По поводу формирования всей печатной формы в одной функции примеров много. Само получение данных для формирования может быть и в отдельной процедуре/функции, но формирование табличного документа идет в одной процедуре/функции.
(8) Получение табличного документа практически всегда это функция, только для её вызова в раширении или ВПФ один хрен надо писать ещё много чего, и Процедура Печать в ВПФ будет всё равно...
Печатные формы в типовых конфигурациях сейчас ... с одной функцией ... примеров много...ню ню...
Или имеются ввиду бесчисленные нетленки? Так там и макет может выводиться с сеточкой (видел много раз), работает жеж))))
А вот печать в типовых сейчас с одной функцией - это ж натить надо - тут и обработки и общие модули,вот это не часто, а практически везде...или я не прав?
Печатные формы в типовых конфигурациях сейчас ... с одной функцией ... примеров много...ню ню...
Или имеются ввиду бесчисленные нетленки? Так там и макет может выводиться с сеточкой (видел много раз), работает жеж))))
А вот печать в типовых сейчас с одной функцией - это ж натить надо - тут и обработки и общие модули,вот это не часто, а практически везде...или я не прав?
(10) Про нетленки говорить незачем, там может быть все что угодно (хотя и в типовых своего хватает). А по теме, например УТ 11 акт сверки. Есть процедура "печать".
Вот такой код вызова формирования ТабличногоДокумента.
То есть в одной функции формируется вся печатная форма. Она может вызывать разные общие модули и прочее, но формирование идет в одной функции и возвращенный табличный документ добавляется в коллекцию, а дальше отправляется на печать.
И в принципе незачем разбивать формирование ТабличногоДокумента на части в большинстве случаев.
То есть не используется множество разный функций и процедур, куда можно было бы точечно вмешаться, работать с уже готовым документом, можно, но это уже если что то добавить в конце или начале документа или добавить элемент по определенным координатам.
Если же говорить про печать в целом, то да. В типовых это в классике выглядит так:
Есть процедура "Печать", куда передаются ссылка на документ и названия печатных форм.
Далее вызывается формирование соответствующей формы.
Далее отправляется на печать.
Но это Вы и без меня знаете, но это ни как точечно не позволяет изменить формирование, например доработать макет и при формирование подставить свой макет.
По своему Вы правы, просто все это вызывается из одной функции и единственный способ это изменить, это заменить функцию (скопировать в расширение и поправить как надо).
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
"АктСДаннымиКонтрагента",
НСтр("ru='Акт сверки взаимных расчетов (с задолженностью по данным контрагента)'"),
СформироватьПечатнуюФормуАктСДаннымиКонтрагента(МассивОбъектов, ОбъектыПечати));
Вот такой код вызова формирования ТабличногоДокумента.
То есть в одной функции формируется вся печатная форма. Она может вызывать разные общие модули и прочее, но формирование идет в одной функции и возвращенный табличный документ добавляется в коллекцию, а дальше отправляется на печать.
И в принципе незачем разбивать формирование ТабличногоДокумента на части в большинстве случаев.
То есть не используется множество разный функций и процедур, куда можно было бы точечно вмешаться, работать с уже готовым документом, можно, но это уже если что то добавить в конце или начале документа или добавить элемент по определенным координатам.
Если же говорить про печать в целом, то да. В типовых это в классике выглядит так:
Есть процедура "Печать", куда передаются ссылка на документ и названия печатных форм.
Далее вызывается формирование соответствующей формы.
Далее отправляется на печать.
Но это Вы и без меня знаете, но это ни как точечно не позволяет изменить формирование, например доработать макет и при формирование подставить свой макет.
А вот печать в типовых сейчас с одной функцией - это ж натить надо - тут и обработки и общие модули,вот это не часто, а практически везде...или я не прав?
По своему Вы правы, просто все это вызывается из одной функции и единственный способ это изменить, это заменить функцию (скопировать в расширение и поправить как надо).
В итоге сделал через Расширение
- Добавил в Расширение типовой макет ПФ_MXL_АктСверкиВзаимныхРасчетов
- в модуль менеджера Расширения добавил две функции:
1.
&Вместо("ВыборкаДанныхДокумента")
Функция зсп_ВыборкаДанныхДокумента(МассивОбъектов, НастройкиПечати)
тут в структуру НастройкиПечати добавил свое Значение.
2.
&Вместо("ТекстЗапросаДанныеДокумента")
тут сделал замену запроса, добавил свое
- и на макете добавил Параметр КонтактыМенеджера
- Добавил в Расширение типовой макет ПФ_MXL_АктСверкиВзаимныхРасчетов
- в модуль менеджера Расширения добавил две функции:
1.
&Вместо("ВыборкаДанныхДокумента")
Функция зсп_ВыборкаДанныхДокумента(МассивОбъектов, НастройкиПечати)
тут в структуру НастройкиПечати добавил свое Значение.
2.
&Вместо("ТекстЗапросаДанныеДокумента")
Функция зсп_ТекстЗапросаДанныеДокумента(НастройкиПечати)
Результат = ПродолжитьВызов(НастройкиПечати);
// добавим в типовой запрос КонтактыМенеджера
Результат = СтрЗаменить(Результат,
"ДокументСверки.ФИОРуководителяКонтрагента КАК ФИОРуководителяКонтрагента,",
"ДокументСверки.ФИОРуководителяКонтрагента КАК ФИОРуководителяКонтрагента," + " " + НастройкиПечати.КонтактыМенеджера + " КАК КонтактыМенеджера," );
Результат = СтрЗаменить(Результат,
"МАКСИМУМ(ДолжностьРуководителяКонтрагента),",
"МАКСИМУМ(ДолжностьРуководителяКонтрагента)," + " МАКСИМУМ(КонтактыМенеджера),");
Возврат Результат;
КонецФункции
Показатьтут сделал замену запроса, добавил свое
- и на макете добавил Параметр КонтактыМенеджера
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот