1с создание внешней печатной формы на основе встроенной

1с создание внешней печатной формы на основе встроенной

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

Например, в программе «1С Управление торговлей 11.2» нам нужно создать печатную форму «Спецификация товара», которая будет распечатываться из документа «Заказ клиента».

Набор данных для новой внешней печатной формы схож с набором данных для встроенной печатной формы «Заказ клиента». Поэтому, выберем эту печатную форму в качестве основы для конструирования новой формы.

Создадим заготовку внешней печатной формы, как описано в статье «Создание внешнего отчёта, обработки, печатной формы».

Потом откроем менеджер объекта конфигурации Документ «Заказ клиента», и найдём в нём Функцию «ПолучитьДанныеДляПечатнойФормыЗаказаНаТоварыУслуги». Скопируем её в модуль объекта нашей внешней печатной формы. В этой функции находится запрос, который получает данные для печатной формы. Мы можем изменить запрос, чтобы получить в нём какие-то дополнительные данные и отменить получение ненужных.

Найдём объект конфигурации Обработка «ПечатьЗаказовНаТоварыУслуги». В нём хранится макет печатной формы «Заказ клиента». Скопируем его во внешнюю печатную форму. Переименуем макет в «ПФ_MXL_Спецификация» и доработаем его под свои нужды. Из модуля менеджера обработки скопируем процедуру Печать, а также другие процедуры и функции, необходимые для печати. Их можно определить по названию. Естественно все эти процедуры и функции мы «затачиваем» под свои задачи.

Например, изменяем Функцию СформироватьПечатнуюФормуЗаказаНаТоварыИУслуги таким образом, чтобы переменная ДанныеДляПечати формировалась из процедуры нашей внешней печатной формы.

Важный момент: в процедуре ЗаполнитьТабличныйДокументЗаказаНаТоварыУслуги мы должны вместо штатного макета подставить свой.

Макет выбиратся здесь:

Мы заменим вторую строку приведённого кода на такую:

Всё остальное, что называется, по вкусу.

О том, как выполнять отладку внешних печатных форм и обработок, можно почитать здесь.

Источник

Как из встроенной печатной формы 1С сделать внешнюю

Рассмотрим создание внешней печатной формы из встроенной на примере Торг 12 из типовой конфигурации 1С 8.2 Бухгалтерия 2.0.

Создадим новую внешнюю обработку, назовем ее Торг12Внешняя. Добавим реквизит СсылкаНаОбъект и присвоим ему тип ДокументСсылка.РеализацияТовароУслуг (Торг 12 печатается из реализации).

%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5 %D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B9 %D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8 %D0%B4%D0%BB%D1%8F %D0%A2%D0%BE%D1%80%D0%B312

В модуле обработки создадим обязательную для печатных форм функцию Печать(), пока оставим ее пустой.

Также, для отладки печатной формы можно создать форму обработки. Если вы не знаете как это сделать, прочитайте эту статью. Теперь в конфигураторе открываем модуль объекта документа РеализацияТоваровУслуг, и ищем там функцию Печать. Она выглядит так:

Так как нас интересует только Торг12, копируем строчку

к себе в модуль печатной формы(также сразу сделаем возврат Табличного документа).

Теперь найдем в модуле документа процедуру ПечатьТОРГ12() и скопируем ее в модуль печатной формы. Нажимаем Сохранить и видим, что не определена переменная мВалютаРегламентированногоУчета. Опишем ее в начале модуля:

и инициализируем в конце:

Далее нужно исправить все ошибки возникшие в модуле печатной формы, они могут быть нескольких типов:

Получите понятные самоучители по 1С бесплатно:

Также нужно заменить обращения к текущему документу через конструкции Ссылка и ЭтотОбъект на СсылкаНаОбъект и СсылкаНаОбъект.ПолучитьОбъект() соответственно(стоит заметить, что конструкцию ЭтотОбъект.Ссылка следует заменять на СсылкаНаОбъект).

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

На этом создание внешней печатной формы из встроенной для 1с 8 завершено, вносим в нее нужные изменения и подключаем к документу.

Скачать что у нас получилось можно по ссылке.

Источник

Программирование в 1С для всех

В этой статье мы научимся создавать внешнюю печатную форму для управляемого приложения 1С 8.3, которое написано на БСП («1С: Бухгалтерия предприятия 3.0», «1С: Управление торговлей 11»). Причем создавать с нуля, не используя так называемые шаблоны. Вы сами научитесь создавать шаблоны внешних печатных форм.

Все это делается довольно просто))

И так, создадим новую обработку 1С.

Мы будем создавать внешний счет на оплату покупателю, поэтому обработку так и назовем: «СчетНаОплатуВнешний».

0

Сохраним ее на жесткий диск.

Регистрация внешней обработки или отчета в базе 1С осуществляется на основании сведений, которые поставляет сама обработка. Поэтому эти сведения должны быть описаны в обработке. Осуществляется это с помощью структуры, которая имеет определенный набор полей, и которая возвращается экспортной функций СведенияОВнешнейОбработке.

Зайдем в модуль обработки, и создадим экспортную функцию СведенияОВнешнейОбработке.

Внутри этой функции создадим структуру ПараметрыРегистрации, которая будет содержать определенный список полей. Каждое поле мы разберем в отдельности.

Создадим первый элемент структуры, он будет иметь ключ с название «Вид».

Значением данной связки КлючИЗначение идет одна из строк:

В нашем случае должна быть строка «ПечатнаяФорма».

Следующий элемент структуры должен иметь ключ с названием Назначение.

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

Они должны иметь тип строка, и быть в следующем формате:

Документ.»НазваниеДокумента»

Справочник.»НазваниеСправочника»

У нас этот массив будет возвращать отдельная функция ПолучитьНазначениеОбработки.

Допишем созданный последним элемент структуры.

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

Следующий элемент структуры будет иметь название «Версия», значением данного элемента будет версия обработки. Задается программистом на его усмотрение.

Следующий элемент имеет название «Информация», который содержит краткую информацию по обработке.

Следующий элемент имеет название «БезопасныйРежим», его необходим устанавливать в значение истина или ложь, в зависимости от того необходимо устанавливать или отключать безопасный режим во время выполнения обработки. Мы установим значение Истина.

И в последнем параметре необходимо добавить команды, которые будут поставляться обработкой. Для этого нам необходимо создать и заполнить таблицу команд. Разработаем функцию, которая создает и возвращает таблицу с определенным набором полей. Делать это будем в функции ПолучитьТаблицуКоманд.

Создадим функцию и таблицу значений внутри нее.

Теперь создадим пять колонок этой таблицы.

И первая колонка – Представление (тип строка).

Эта колонка – представление команды в пользовательском интерфейсе, т.е. то, что пользователь увидит при нажатии меню»Печать» в документе или справочнике.

Вторая колонка – Идентификатор.

Это может быть любая текстовая строка, уникальная в пределах данной обработки.

Третья колонка – Использование.

Параметр данной колонки типа строка, должен принимать одно из четырех значений –

Конкретно мы будем использовать вызов серверного метода.

Следующая колонка – показывать оповещение. Принимает значение истина или ложь, в зависимости от того надо показывать оповещение или нет.

И последняя колонка – модификатор. Это дополнительный модификатор команды. В нашем случае будет иметь название ПечатьMXL.

Теперь создадим процедуру, которая будет заполнять данную таблицу значений.

В данном коде все понятно.

В функции СведенияОВнешнейОбработке создадим команду и заполним ее.

Создаем таблицу значений:

Теперь заполним ее.

Еще раз пройдемся по параметрам.

Теперь передадим вновь созданную таблицу команд в структуру ПараметрыРегистрации.

И пусть наша функция СведенияОВнешнейОбработке возвращает данную структуру.

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

Теперь в модуле объекта создадим процедуру Печать. Это процедура с четырьмя параметрами: МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода.

И вот начинается самое интересное, теперь вам необходимо войти в аналогичную процедуру в менеджере объекта счет на оплату покупателю, или в обработке, которая, по сути, является менеджером печати.

Как узнать, где находится нужная нам функция?

Откроем модуль менеджера документа Счет на оплату покупателю.

23

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

Посмотрим на процедуру ДобавитьКомандыПечати в модуле менеджера документа «Счет на оплату покупателя».

2

оскольку мы делаем внешнюю печатную форму счета на оплату, то нас интересует первое добавление в таблицу значений (см. свойство Представление), и мы видим, что в этом случае заполнено свойство МенеджерПечати, где указан объект Обработка.ПечатьСчетаНаОплату. Это значит, что нам нужно найти процедуру Печать в модуле менеджера обработки ПечатьСчетаНаОплату.

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

Откроем модуль менеджера обработки ПечатьСчетаНаОплату.

3

И раскроем процедуру Печать.

4

Нас интересует второе условие (где фигурирует строка «СчетЗаказ», см. идентификатор нужной команды в процедуре ДобавитьКомандыПечати модуля менеджера документа), скопируем это условие в процедуру Печать нашей внешней обработки.

Внимание! Копировать напрямую процедуру Печать из модуля менеджера (без разницы обработка это, документ или справочник) не следует. Поскольку у них отличается количество параметров, в последствие это приводит к ошибкам при работе.

Так же из модуля менеджера обработки скопируем процедуру СформироватьПечатнуюФорм

В этом коде есть строка, где заполняется таблица сведений счета на оплату.

Эта таблица получается при помощи процедуры модуля менеджера объекта (в нашем случае это документ СчетНаОплатуПокупателю). Найдем эту процедуру в модуле менеджера документа СчетНаОплатуПокупателю.

5

И скопируем её в модель нашей внешней обработки.

А сам код процедуры СформироватьПечатнуюФорму в модуле внешней обработки исправим, убрав все не нужное от туда.

Если мы сейчас сделаем проверку модуля внешней обработки, то выйдет две ошибки. Первая, что не определена переменная ПараметрыПечати в процедуре Печать, и, что не найдена функция ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату в функции ПолучитьТаблицуСведенийСчетаНаОплату.

Создадим переменную ПараметрыПечати в процедуре Печать. Это будет простая структура.

А потом найдем функцию ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату в модуле менеджера документа СчетНаОплатуПокупателю и скопируем её в модуль внешней обработки.

6

Должен получится следующий состав процедур и функций модуля внешней обработки (для удобства я разделил их на две области).

7

Еще раз делаем проверку модуля. Ошибок не обнаружено.

Продолжаем, теперь нам необходимо, что бы брался наш макет, и печатался по нашей команде.

Нас интересует процедура СформироватьПечатнуюФорму, а в ней мы уделим внимание методу ПечатьСчетаНаОплату общего модуля ПечатьТорговыхДокументов.

8

Очевидно, она непосредственно формирует табличный документ. Перейдем в этот общий модуль, и скопируем функцию ПечатьСчетаНаОплату в модуль нашей внешней обработки.

9Делаем проверку модуля внешней обработки. Ругается на несуществующие методы ВывестиЗаголовокПредупреждение и НомерСчетаНаОплату.

10

11

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

Проверяем еще раз ошибки. Все нормально.

Не забудем в процедуре СформироватьПечатнуюФорму убрать вызов метода ПечатьСчетаНаОплату из общего модуля.

Теперь зайдем в скопированную функцию ПечатьСчетаНаОплату, и посмотрим, где в ней подтягивается макет.

12Находим данный макет в общих макетах и копируем его в макеты нашей обработки.

13Исправляем выделенный код, где подтягивается макет, следующий образом.

Теперь зайдем в наш скопированный макет, и сделаем какое-нибудь изменение, чтобы вы видели, что команда подтянула именно макет из внешней обработки.

14

Вернемся обратно в процедуру Печать нашей внешней обработки.

И теперь осталась одна небольшая хитрость, без которой ваш внешний отчет не будет работать. Необходимо текст «СчетЗаказ» (это идентификатор типовой печатной формы).15

Заменить на название идентификатора команды («СчетНаОплатуВнешний»).

Все, сохраняем данную обработку. И запускаем «1С: Предприятие» из конфигуратора 1С.

Идем в администрирование. В дополнительные отчеты и обработки.

Нажимаем на кнопку «Добавить из файла» и выбираем нашу созданную обработку.

16

Записываем. И смотрим, как выходит наша печатная форма.

17

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

1 %D0%B2 %D0%B6%D0%B5%D0%BB%D1%82%D0%BE%D0%BC %D1%86%D0%B2%D0%B5%D1%82%D0%B5 3D %D0%BC%D0%B0%D0%BB%D0%B5%D0%BD%D1%8C%D0%BA%D0%B0%D1%8F

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Промо-код на скидку в 15% — 48PVXHeYu


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

2 thoughts on “ Создание внешней печатной формы в типовых конфигурациях 1С 8.3 ”

программирование не для всех.
то ПечатьXML, то ПечатьMXL, потом опять ПечатьXML. где правильно?
открыть модуль менеджера документа Счет на оплату покупателю — у меня там пусто. приехали, конечная. вот и поучились программированию.

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

Источник

Создание внешней печатной формы в 1С

1. Для чего необходимо создавать внешние печатные формы в 1С

Добрый день! В этой статье мы рассмотрим создание внешней печатной формы «Авансовый отчёт» на основании имеющейся «Авансовый отчёт (АО-1)» с помощью одной интересной и полезной функции 1С, «Замера производительности». Она позволяет, в том числе, отследить, какие блоки кода скомпилировались в ходе работы той или иной функции или процедуры. Преимущество внешних печатных форм заключается в том, что их можно настраивать или дорабатывать, изменять для конкретных нужд, в отличие от неизменяемой стандартной печатной формы.

Для начала, поскольку мы, всё-таки, создаём внешнюю печатную форму, потребуется создание внешней обработки. В левом верхнем углу ищем «Файл», далее «Новый» и жмём «Внешняя обработка» (рис. 1). Описанные ниже действия стандартны для создания внешней обработки.

sozdanie vneshnej pechatnoj formy 1

Рисунок 1 Создание внешней обработки

Назначим нашей обработке имя и синоним и перейдём в модуль внешней обработки. Для этого снизу в меню процедуры нажмём на кнопку «Действия → Открыть модуль объекта» (рис. 2).

sozdanie vneshnej pechatnoj formy 2

Рисунок 2 Открытие модуля объекта при создании внешней обработки

Затем в модуле объекта пропишем ряд типовых для всех внешних обработок функций и процедур (рис. 3-4).

Рисунок 3 Код в модуле объекта при создании внешней обработки

1s sozdanie vneshnej pechatnoj formy 4

Рисунок 4 Пример кода в модуле объекта при создании внешней обработки

Сохраним полученную процедуру (нажмём сочетание клавиш Ctrl + S или перейдём в «Файл → Сохранить»).

1s sozdanie vneshnej pechatnoj formy 5

Рисунок 5 Сохранение при создании внешней обработки

Выбираем нужную локацию и сохраняем.

Далее начинается самое интересное. Вернёмся к нашему модулю объекта. Поставим точку останова (нажав F9) около любой строки кода в модуле объекта и начинаем отладку (нажав F5 или через «Отладка → Начать отладку») (рис. 6).

1s sozdanie vneshnej pechatnoj formy 6

Рисунок 6 Запуск отладки – первый шаг при создании внешней печатной формы

После этого открываем нужный нам объект, для которого мы создаём данную обработку. В нашем случае это документ «Авансовые отчёты».

2. Использование Замера производительности

При всё также запущенной программе 1С:Предприятие 8 переключаемся в режим Конфигуратора. Всё в том же меню «Отладка» жмём «Замер производительности» (рис. 7).

sozdanie vneshnej pechatnoj formy 8.3 7

Рисунок 7 Запуск Замера производительности

Затем переходим обратно на уже запущенный режим версии 1С:Предприятия 8, жмём пункт «Печать» и выбираем ту стандартную обработку, на основе которой будет создаваться наша. В нашем случае это «Авансовый отчёт АО-1» (рис. 8). Жмём на неё.

sozdanie vneshnej pechatnoj formy 8.3 8

Рисунок 8 Стандартная обработка Авансового отчета АО-1

Открылась стандартная (встроенная) печатная форма (рис. 9).

sozdanie vneshnej pechatnoj formy 8.3 9

Рисунок 9 Печатная форма Авансового отчета АО-1

Снова, не закрывая режим конфигурации 1С:Предприятия 8, переходим в режим Конфигуратора. Также как включали режим Замера производительности (рисунок 7), выключаем его.

Откроется таблица со всеми выполненными процедурами и функциями (рис. 10).

Рисунок 10 Результат замера производительности

Отсортируем результаты запроса по модулю – кликнем по любой строке и откроем модуль Менеджера нашего документа. Именно здесь, в основном, и формируются все необходимые процедуры и функции.

Найдём здесь процедуру, содержащую код запроса (обычно именно через код запроса формируется то, что будет на печатной форме). В данном случае она называется «ПечатьАвансовогоОтчета» (рис. 11). Откомпилированные процедуры и функции помечаются серым значком слева.

sozdanie vneshnej pechatnoj formy 8.3 11

Рисунок 11 Функция ПечатьАвансовогоОтчета в программе 1С:Предприятие 8

Копируем её в нашу обработку (рис. 12), кроме последних строк. В данном случае они нам не пригодятся (рис. 13).

sozdanie vneshnej pechatnoj formy 8.3 12

Рисунок 12 Функция ПечатьАвансовогоОтчета в программе 1С:Предприятие 8 в нашей обработке

Рисунок 13 Строки кода из ПечатьАвансовогоОтчета не для копирования

Теперь всё в том же модуле менеджера найдём процедуру, ответственную за непосредственно вывод на печать (рис. 14). Здесь нас интересует блок печати авансового отчёта М4.

avansovyj otchet ao 14
Рисунок 14 Печать Авансового отчета АО-1

Копируем и вставляем в нашу обработку эту процедуру, убрав из передаваемых значений ПараметрыПечати (это важно!), оставляем только блок авансового отчёта (рис. 15)

Рисунок 15 Блок АвансовыйОтчет в программе 1С:Предприятие 8

Далее заменим имя макета «Аванс_Отчет» на то имя макета, который прописали в своей обработке. Ищем функцию «СведенияОВнешнейОбработке», в ней – пункт «ДобавитьКоманды» и наш идентификатор. Это прописанная слитно, с заглавными буквами фраза (рис. 16).

Рисунок 16 Задаем имя макета в программе 1С:Предприятие 8

Оттуда же берём синоним макета (фраза с пробелами, скобками) (рис. 17), которым мы заменяем фразу «Авансовый отчет» в процедуре «Печать».

forma ao 1 avansovyj otchet 17
Рисунок 17 В данном случае синонимом макета является фраза «Авансовый отчёт (внешняя обработка)»

Вот так наш изменённый блок кода выглядит в процедуре «Печать» теперь (рис. 18).

forma ao 1 avansovyj otchet 18
Рисунок 18 Текущий код в процедуре печать в программе 1С:Предприятие 8

Как мы видим, процедура «Печать» также обращается к некоему макету «ПФ.MXL_АвансовыйОтчет». Найдём его в нашем конфигураторе в макетах документа АвансовыйОтчет (рис. 19).

Рисунок 19 Макет «ПФ.MXL_АвансовыйОтчет» у документа «АвансовыйОтчет»

Теперь просто скопируем (перетащим) макет с документа в нашу обработку (рис. 20).

Рисунок 20 Перенесённый макет документа при создании внешней печатной формы в 1С

Затем «отсоединим» в нашей обработке (рис. 21) макет от документа, сделав его независимым (в противном случае наша обработка будет всегда обращаться только к макету в конфигурации, игнорируя наш, измененные / добавленные поля там и проч). Для этого в процедуре «Печать» просто убираем фразу «Документ.АвансовыйОтчет» (рис. 22).

Рисунок 21 Неизменная процедура при создании внешней печатной формы в 1С

zamer proizvoditel nosti 22
Рисунок 22 Итоговая процедура при создании внешней печатной формы

Сохраняем обработку (Ctrl+S). Как мы видим, сохраниться не даёт ошибка (рис. 23) о том, что не хватает процедуры «ПолучитьДанныеДокументов».

Рисунок 23 Ошибка об отсутствии процедуры или функции при создании внешней печатной формы

Найдём её в модуле менеджера документа «Авансовый отчёт» (рис. 24) и скопируем в нашу обработку. Сохраняем обработку (Ctrl+S).

zamer proizvoditel nosti 24
Рисунок 24 Функция ПолучитьДанныеДокумента в программе 1С:Предприятие 8

Теперь нам нужно добавить в обработку реквизит (в нашем случае он называется «СсылкаНаОткрываемыйДокумент»). Важно, чтобы его длина не была неограниченной – ставим 30 символов. Тип – «ДокументСсылка». Далее требуется добавить форму и вывести созданный реквизит на форму, далее – создать команду (у нас это «Открыть документ») и также вынести её на форму. Зачем это нужно? В дальнейшем это позволит открывать созданную процедуру в программе 1С:Предприятие 8 через «Файл → Открыть», что гораздо быстрее, чем регистрировать её в разделе «Администрирование» после каждого внесённого изменения.

В итоге у нас получилась форма с реквизитом и кнопкой-командой (рис. 25).

zamer proizvoditel nosti 25
Рисунок 25 Итог создания печатных форм

Создадим действие команды (на клиенте и процедуру на сервере) (рис. 26).

Рисунок 26 Создание команд при создании печатных форм в 1С

Перейдём в модуль формы, где пропишем следующий код:

sozdat vneshnjuju pechatnuju formu 27
Рисунок 27 Код в модуле при создании печатной формы в 1С

Теперь для создания внешней печатной формы в 1С 8.3 остаётся добавить ссылку на формируемый массив объектов. За это ответственна функция «ПечатьАвансовогоОтчета», которую нам нужно будет немного подправить.

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

sozdat vneshnjuju pechatnuju formu 28
Рисунок 28 Изменения в функции при создании внешних печатных форм

И допишем наш код из рисунка 27 (рис. 29).

Рисунок 29 Итоговый код при создании внешних печатных форм в 1С 8.3

Сохраняем процедуру (Ctrl+S), снимаем точки останова в модуле объекта, которые мы ставили ранее (рис. 30).

Рисунок 30 Удаление точек останова при создании внешних печатных форм

В запущенном режиме программы 1С:Предприятия 8 откроем нашу процедуру, притом не долгим путём (через регистрацию в Администрировании), а через «Файл → Открыть» (рис27). Открываем обработку из той локации, где мы её сохранили.

sozdanie vneshnej obrabotki 31
Рисунок 31 Открытие созданной обработки в программе 1С:Предприятие 8

Игнорируем предупреждение безопасности, жмём «Да» (рис. 32).

Рисунок 32 Предупреждение безопасности в программе 1С:Предприятие 8

Выберем нужный документ (рис. 33), жмём кнопку «Открыть документ».

Рисунок 33 Выбор нужного документа в программе 1С:Предприятие 8

3. Изменение обработки после создания внешней печатной формы

Вуаля! Наша обработка полностью повторяет стандартную (рис. 34), однако стандартную мы менять не можем, а созданную нами – можем.

Рисунок 34 Документ выведенный на печать в программе 1С:Предприятие 8

После всех изменений и создание внешней печатной формы в 8.3, которые будут внесены в код обработки, изменений макета и прочих действий, нужных при решении конкретных задач, обработку можно будет «встроить» в 1С. Сначала, в главном меню обработки, отключим форму обработки, нажав на крестик справа (рис. 35-36).

sozdanie vneshnej obrabotki 35

Рисунок 35 Отключение формы обработки в программе 1С:Предприятие 8

Рисунок 36 Отключение формы обработки

После этого в меню слева спускаемся вниз до вкладки «Администрирование». В меню «Настройки программы» ищем пункт «Печатные формы, отчёты и обработки» (рис. 37).

Рисунок 37 Печатные формы, отчеты и обработки

Потом переходим на вкладку «Дополнительные отчёты и обработки» (рис. 38).

Рисунок 38 Дополнительные отчеты и обработки в программе 1С:Предприятие 8

Здесь сохранены все имеющиеся внешние обработки. Загрузим нашу обработку, нажав «Добавить из файла» (рис. 39).

Рисунок 39 Загрузка файла в программе 1С:Предприятие 8

Игнорируем предупреждние безопасности (рис 40) и заходим в локацию, где мы сохранили нашу обработку, дважды кликаем по ней.

vneshnij otchet obrabotka 40

Рисунок 40 Предупреждение о безопасности в 1С:Предприятие, редакция 3.0

Жмём «Записать и закрыть» (рис. 41).

Рисунок 41 Обработка перед записью в программе 1С:Предприятие 8

Далее её можно будет вызвать из меню «Печать» у документа (в нашем случае «Авансового отчёта») (рис. 42).

vneshnij otchet obrabotka 42

Рисунок 42 Вызываем обработку после создания внешней печатной формы в 1С 8.3

Рисунок 43 Итоговая обработка после создания внешней печатной формы в 1С

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с создание внешнего отчета управляемые формы
  • 1с создаем печатную форму