Как быстро вынести типовую печатную форму из конфигурации во внешнюю печатную форму

20.02.12

Разработка - Универсальные функции

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

Скачать исходный код

Наименование Файл Версия Размер
Заказ на производство.epf
.epf 12,15Kb
87
.epf 12,15Kb 87 Скачать

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

Еще вот челвек предложил алгоритм для автоматического формирования списка экспортных переменных из реквизитов документа: //infostart.ru/public/116567/

См. также

Вставляем картинку из буфера обмена (платформа 1С 8.3.24)

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    2861    1    John_d    10    

56

GUID в 1С 8.3 - как с ними быть

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    4995    atdonya    22    

51

Переоткрытие внешних обработок

Универсальные функции Платформа 1С v8.3 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    4091    ke.92@mail.ru    16    

62

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    9331    YA_418728146    6    

143

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2197    24    progmaster    7    

3

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    16329    142    sapervodichka    112    

130

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    7345    quazare    8    

110
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. smooth 196 17.12.11 11:19 Сейчас в теме
А почему бы не воспользоваться вариантом:
http://infostart.ru/public/66588/
?
И переменные переносить не надо! Форма обработки, в этом случае, сама думает, что она документ, со всеми вытекающими от сюда возможностями...
Конечно как вариант...
Anything; ir_en; sound; artbear; +4
3. Kutuzov 739 17.12.11 14:57 Сейчас в теме
(1) smooth, спасибо за ссылку, там даже более универсальный вариант получается.
+
7. sound 535 23.12.11 13:32 Сейчас в теме
Да реально в (1) ссылка на более красивое решение, всегда под рукой есть такой шаблончик.
+
2. Alex_E 2353 17.12.11 11:49 Сейчас в теме
Сам давно пользуюсь этим способом, а вот заполнить переменные функцией не догадался. Спасибо за подсказку!
+
4. Модератор раздела 19.12.11 18:45 Сейчас в теме
(0) Давно известный баян, (1) намного функциональнее и проще.
5. musatov1c.ru 6 21.12.11 08:38 Сейчас в теме
Спасибо автору за поднятую тему. И спасибо прокомментировавшим. Проблема регулярная. Любая методическая помощь будет кстати :)
+
6. Mshaydurov 2 23.12.11 10:27 Сейчас в теме
ТАк то крутой выход. Спасибо автору! Интересно - сам додумался?
+
8. пользователь 29.12.11 09:19
Сообщение было скрыто модератором.
...
9. avenira_ 29.12.11 19:01 Сейчас в теме
Спасибо! Для начинающего программиста (как я) очень полезная информация.
+
10. adhocprog 1139 24.01.12 21:19 Сейчас в теме
"+" за идею
хотя сам делаю как "мастер китайского кода".
изменения в типовом коде отмечаю, поэтому легко их внести повторно.
+
11. Akahe 25.01.12 05:19 Сейчас в теме
Спасибо очень интересная информация.
+
12. Karglak 25.01.12 10:41 Сейчас в теме
Очень полезной была бы подобная инфа по УТ 11 например.
+
13. q_i 577 19.02.12 16:26 Сейчас в теме
Написал генератор раздела описания переменных для данного алгоритма. Если кому нужно: http://infostart.ru/public/116567/
Kutuzov; +1
14. Программулькин 301 22.02.12 03:45 Сейчас в теме
15. frkbvfnjh 787 22.06.22 09:29 Сейчас в теме
Вы лучше расскажите как найти процедуру печати той или иной встроенной печатной формы
+
16. Kutuzov 739 22.06.22 14:15 Сейчас в теме
(15) Через отладку - замер производительности
+
17. frkbvfnjh 787 22.06.22 14:32 Сейчас в теме
(16) Отладка в типовых - не вариант, там так написан код, что он не поддается отладке, по крайней мере, что то найти с помощью отладки не реально. Короче методом тыка нашел, что ноги растут из метода Печать() модуля менеджера того объекта из которого идет печать печатной формы, а вот там уже отладкой, через миллиарды вложенных процедур и функций удалось добраться до кода нужно печатной формы. Но если не знать что нужно начать с этого метода, то отладкой ничего не найти
+
18. frkbvfnjh 787 22.06.22 14:34 Сейчас в теме
(16) Аааа, я понял, вы имеете ввиду замер производительности включить и потом посмотреть где оно вообще пробигает? Умно, спасибо, теперь так и буду делать.
+
Внимание! Тема сдана в архив