Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как быстро вынести типовую печатную форму из конфигурации во внешнюю печатную форму          
Vofka Подменю пользователя
сообщение 26.02.12, 12:42
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Как быстро и с минимальными изменениями встроенную печатную форму (например, ТОРГ-12) вынести во внешнюю печатную форму и выполнить требуемые доработки?

Иногда требуется модифицировать встроенные печатные формы. Один из вариантов - выносить их во внешние печатные формы (чтобы конфигурацию не сильно портить). Но сталкиваемся с проблемой: хотя в типовой конфигурации логически выделяется в виде функции печать каждой печатной формы, но идет непосредственно обращение к реквизитам документа. А во внешней печатной форме этих реквизитов нет, есть только ссылка на объект. Приходится менять код формирования печатной формы не только там, где это нужно нам, но и везде. Плюс это вызовет проблему при возможном обновлении этого участка кода у поставщика конфигурации - придется или вникать в изменения после обновления, или заново вносить все наши изменения.

Как вариант решения этой проблемы - завести во внешней обработке, содержащей печатную форму, переменные, аналогичные реквизитам и табличным частям документа. А чтобы не уподобляться мастерам китайского кода, и не писать вещи, такие как: Реквизит1 = Док.Реквизит1 и т.д., можно воспользовать хорошей функцией
ЗаполнитьЗначенияСвойств
. Только переменные в обработке нужно объявлять экспортными. Вот пример кода модуля для внешней печатной формы заказа на производство (текст модуля ПечатьЗаказа() убран из соображений краткости).

Перем мВалютаРегламентированногоУчета Экспорт;

Перем //реквизиты док-та
ВремяНапоминания Экспорт,
ДатаИсполнения Экспорт,
Комментарий Экспорт,
НапомнитьОСобытии Экспорт,
Организация Экспорт,
Ответственный Экспорт,
Подразделение Экспорт,
Исполнитель Экспорт,
ОсновнойЗаказНаПроизводство Экспорт,
ДатаЗапуска Экспорт;

Перем
Номер Экспорт, Дата Экспорт, Проведен Экспорт, Ссылка Экспорт;

Перем //табличные части док-та
Продукция Экспорт,
ПараметрыВыпускаПродукции Экспорт,
Материалы Экспорт;

Процедура ЗаполнитьЗначенияРеквизитовИзДокумента()

    ЗаполнитьЗначенияСвойств(ЭтотОбъект, СсылкаНаОбъект);

КонецПроцедуры

Функция ПечатьЗаказа()


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

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

    Если Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(СсылкаНаОбъект.Проведен) Тогда
        Предупреждение("Недостаточно полномочий для печати непроведенного документа!");
        Возврат Неопределено;
    КонецЕсли;

    ТабДокумент = ПечатьЗаказа();

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

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


Такой подход позволяет нетронутыми использовать участки типового кода, внося изменения только там, где это нужно.

[необходимо зарегистрироваться для просмотра ссылки]

Спасибо сказали: craneua, Егор Динин,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 27.04.24, 3:04
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!