Еще раз о создании Внешней Печатной Формы на 8.2 из существующей

08.10.13

Разработка - Механизмы платформы 1С

Часто необходимо "немного" подправить существующую печатную форму. Изменить конфу просто, но потеряешь поддержку. Хорошо бы сделать внешнюю форму, но многочисленное освещение этого вопроса в интернете приводит только к новым вопросам. Продравшись через советы "гуру", предлагаю Вам коротенькую инструкцию.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример ВнешнейПечатнойФормы
.epf 10,59Kb
82
82 Скачать (1 SM) Купить за 1 850 руб.

Часто необходимо "немного" подправить существующую печатную форму. Изменить конфу просто, но потеряешь поддержку. Хорошо бы сделать внешнюю форму, но многочисленное освещение этого вопроса в интернете приводит только к новым вопросам. Продравшись через советы "гуру", предлагаю Вам коротенькую инструкцию:

1.Создать новую внешнюю обработку
2.В реквизиты добавить СсылкуНаОбъект можно неопределенный, но лучше на ДокументСсылка.Родитель
3.Скопировать Макет из родителя в новую обработку
4.Скопировать Процедуру Печать из модуля Родителя и превратить ее в Функцию Печать() Экспорт, именно так без параметров, если параметры необходимы описать их в теле функции
5.Скопировать все запрашиваемые функции и процедуры
6.Заменить прямые обращения к Реквизитам Родителя на 
         Реквизит=СсылкаНаОбъект.Реквизит;
7.Заменить ЭтотОбъект и ЭтотОбъект.Ссылка на СсылкаНаОбъект
8.Обратить Внимание! на вызов процедуры печати
было 
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект, ""), НепосредственнаяПечать);

выдавало ошибку не найден "Номер"!!!
    
стало
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер,   ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект, ""), НепосредственнаяПечать);

PS Теперь можно править Макет (осторожней с изменением его названия)

Прилагаю рабочий вариант НовогоСчета для БП 2.0.25.5

См. также

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    7459    bayselonarrend    20    

154

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    5947    dsdred    16    

80

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    17674    YA_418728146    26    

71

Перенос данных 1C Механизмы платформы 1С Системный администратор Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    11227    dsdred    44    

130

Механизмы платформы 1С Программист Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    23763    SeiOkami    48    

135

Механизмы платформы 1С Системный администратор Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    18835    human_new    27    

80

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

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

28.08.2023    14735    YA_418728146    7    

166
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4692 12.09.11 01:00 Сейчас в теме
(0) В типовых на 8.1. по другому делается?
2. Mamakan 20 12.09.11 06:50 Сейчас в теме
Да одинаково все и в 8.1, и в 8.2
3. gutentag 253 12.09.11 11:47 Сейчас в теме
Спасибо, пошел тренироваться :)
4. serega_sun 14.09.11 11:45 Сейчас в теме
По другому делается в УТ-11
MaeXtro; pumbaE; +2 Ответить
5. pumbaE 14.09.11 13:39 Сейчас в теме
(4) Более общий случай по другому делается в БСП.
6. miaso 5 14.09.11 18:10 Сейчас в теме
В управляемых все по другому. А в типовых "старых" есть прекрасный шаблон http://infostart.ru/public/67060/ в котором не нужно ничего переименовывать и как написано в описании выдирается любая печать за 5 минут.
7. Lyolik 9 15.09.11 12:59 Сейчас в теме
Спасибо за инструкцию. Все ясно и коротко.
8. Sean1s 8 16.09.11 05:43 Сейчас в теме
Да, спасибо! Очень чётко, кратко и понятно.
9. vikylena 16.09.11 09:43 Сейчас в теме
Спасибо! Очень нужная информация.
10. Alexey55 16.09.11 11:46 Сейчас в теме
11. demanu 18.09.11 20:45 Сейчас в теме
Да всё так, ничего сложного нет. Для облегчения отладки можно приладить форму, добавить в неё реквизит СсылкаНаОбъект и написать обработчик для кнопки выполнить, что-то типа того:

ТабДокумент = Печать();
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент);

Это позволит избежать необходимости постоянного обновления во внешних обработках.
12. Cab-dv 49 20.09.11 01:39 Сейчас в теме
Спасибо. В самый раз! была задача сделать внешний счет на оплату :)
13. zhuravlev_as 436 20.09.11 22:06 Сейчас в теме
Технология стара, для 8.1 и для 8.2 не управляемого приложения. Для 8.2, управляемых приложений (УТ ред. 11, УНФ, Документооборот) технология изменилась, и вышеописанный метод не подойдет. Найдите тут на инфостарте как делать внешние печатные формы, обработки таб.частей, ввод на основании, ссылку не помню.
14. viktorija-d 29.09.11 18:20 Сейчас в теме
Не знаю как сама внешняя печатная форма, но комментарий к ней отличный. Коротко ясно и последовательно. Сделала то,что необходимо мне буквально за 30 минут. Получила отличный результат за короткое время, руководствуясь алгоритмом действий. Огромное спасибо!!!!!!
15. finik 06.10.11 21:10 Сейчас в теме
Спасибо! Потратил три вечера, но сделал первую в жизни внешнюю форму....
16. natylit 52 26.10.11 19:07 Сейчас в теме
Уже не раз пришлось менять типовую форму. Спасибо за такую простую и полезную инструкцию
17. dmpas 418 16.01.12 14:22 Сейчас в теме
немножко вклинюсь:

4.Скопировать Процедуру Печать из модуля Родителя и превратить ее в Функцию Печать() Экспорт

процедуру переделываем в функцию не просто так! Эта функция должна вернуть табличный документ в качестве результата! Потому п. 8 теряет смысл: процедура Печать() в модуле документа получает табличный документ из функции Печать() внешней печ.формы и сама передаёт её в процедуру НапечататьДокумент().

В Вашем случае процедура НапечататьДокумент() вызывается дважды: во внешней обработке и в модуле документа.
Но потому как функция ничего не возвращает, то её результат есть Неопределено и второй вызов ничего не делает.

Нужно делать именно через результат функции, потому как в модуле документа ещё есть такие параметры, как КоличествоЭкземпляров, НаПринтер и НепосредственнаяПечать, которых нет во внешней печ. форме.
Оставьте свое сообщение