Створення зовнішніх друкованих форм під керованим додатком з нуля

UPD Стаття і обробки до неї оновлені на лютий 2019 року

UPD 25.03.2019 Додані приклади зовнішніх друкованих форм для УТ 11.4

У цій статті ми навчимося створювати зовнішню друковану форму для "1С: Бухгалтерія підприємства 3.0". Причому створювати з нуля, без використання так звані шаблони. Ви самі навчитеся створювати шаблони зовнішніх друкованих форм.

Все це робиться досить просто))

І так, створимо нову обробку.

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

Збережемо її на жорсткий диск.

Реєстрація зовнішньої обробки або звіту в базі 1С здійснюється на підставі відомостей, які постачає сама обробка. Тому ці відомості повинні бути описані в обробці. Здійснюється це за допомогою структури, яка має певний набір полів, і яка повертається експортної функцій СведеніяОВнешнейОбработке.

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

Функція СведеніяОВнешнейОбработке () Експорт КонецФункціі

Усередині цієї функції створимо структуру ПараметриРегістраціі, яка буде містити певний список полів. Кожне поле ми розберемо окремо.

Функція СведеніяОВнешнейОбработке () Експорт ПараметриРегістраціі = Новий Структура; КонецФункціі

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

ПараметриРегістраціі = Новий Структура; ПараметриРегістраціі.Вставіть ( "Вид",);

Значенням даної зв'язки КлючІЗначеніе йде одна з рядків:

  • «ДополнітельнаяОбработка»
  • «ДополнітельнийОтчет»
  • «ЗаполненіеОб'екта»
  • «Звіт»
  • "Печатна форма"
  • «СозданіеСвязаннихОб'ектов»

У нашому випадку повинна бути рядок "ПечатнаяФорма".

ПараметриРегістраціі = Новий Структура; ПараметриРегістраціі.Вставіть ( "Вид", "ПечатнаяФорма");

Наступний елемент структури повинен мати ключ з назвою Призначення.

ПараметриРегістраціі.Вставіть ( "Вид", "ПечатнаяФорма"); ПараметриРегістраціі.Вставіть ( "Призначення",);

Як значення даного елемента повинен виступати масив, де перераховані будуть всі документи або довідники, в яких буде виходити ця друкована форма.

Вони повинні мати тип рядок, і бути в такому форматі:

Документ. "НазваніеДокумента"

Довідник. "НазваніеСправочніка"

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

Створимо її.

Функція ПолучітьНазначеніеОбработкі () Масив = Новий Масив; Массів.Добавіть ( "Документ.СчетНаОплатуПокупателю"); Повернення Масив; КонецФункціі

Допишемо створений останнім елемент структури.

ПараметриРегістраціі.Вставіть ( "Призначення", ПолучітьНазначеніеОбработкі ());

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

ПараметриРегістраціі.Вставіть ( "Вид", "ПечатнаяФорма"); ПараметриРегістраціі.Вставіть ( "Призначення", ПолучітьНазначеніеОбработкі ()); ПараметриРегістраціі.Вставіть ( "Найменування", "Рахунок на оплату ЗОВНІШНІЙ");

Наступний елемент структури матиме назву «Версія», значенням даного елемента буде версія обробки. Здається програмістом на його розсуд.

ПараметриРегістраціі.Вставіть ( "Вид", "ПечатнаяФорма"); ПараметриРегістраціі.Вставіть ( "Призначення", ПолучітьНазначеніеОбработкі ()); ПараметриРегістраціі.Вставіть ( "Найменування", "Рахунок на оплату ЗОВНІШНІЙ"); ПараметриРегістраціі.Вставіть ( "Версія", "1.0");

Наступний елемент має назву «Інформація», який містить коротку інформацію по обробці.

ПараметриРегістраціі.Вставіть ( "Вид", "ПечатнаяФорма"); ПараметриРегістраціі.Вставіть ( "Призначення", ПолучітьНазначеніеОбработкі ()); ПараметриРегістраціі.Вставіть ( "Найменування", "Рахунок на оплату ЗОВНІШНІЙ"); ПараметриРегістраціі.Вставіть ( "Версія", "1.0"); ПараметриРегістраціі.Вставіть ( "Інформація", "Рахунок на оплату (зовнішня друкована форма)");

Наступний елемент має назву «БезопаснийРежім», його необхідний встановлювати в значення істина або брехня, в залежності від того необхідно встановлювати або відключати безпечний режим під час виконання обробки. Ми встановимо значення Істина.

ПараметриРегістраціі.Вставіть ( "Вид", "ПечатнаяФорма"); ПараметриРегістраціі.Вставіть ( "Призначення", ПолучітьНазначеніеОбработкі ()); ПараметриРегістраціі.Вставіть ( "Найменування", "Рахунок на оплату ЗОВНІШНІЙ"); ПараметриРегістраціі.Вставіть ( "Версія", "1.0"); ПараметриРегістраціі.Вставіть ( "Інформація", "Рахунок на оплату (зовнішня друкована форма)"); ПараметриРегістраціі.Вставіть ( "БезопаснийРежім", Істина);

І в останньому параметрі необхідно додати команди, які будуть поставлятися обробкою. Для цього нам необхідно створити і заповнити таблицю команд. Розробимо функцію, яка створює і повертає таблицю з певним набором полів. Робити це будемо в функції ПолучітьТабліцуКоманд.

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

Функція ПолучітьТабліцуКоманд () Команди = Новий ТабліцаЗначеній; КонецФункціі

Тепер створимо п'ять колонок цієї таблиці.

І перша колонка - Подання (тип рядок).

Команди.Колонкі.Добавіть ( "Подання", Новий ОпісаніеТіпов ( "Рядок"));

Ця колонка - представлення команди в інтерфейсі, тобто то, що користувач побачить при натисканні меню "Друк" в документі або довіднику.

Друга колонка - Ідентифікатор.

Команди.Колонкі.Добавіть ( "Ідентифікатор", Новий ОпісаніеТіпов ( "Рядок"));

Це може бути будь-яка текстова рядок, унікальна в межах даної обробки.

Третя колонка - Використання.

Команди.Колонкі.Добавіть ( "Використання", Новий ОпісаніеТіпов ( "Рядок"));

Параметр даної колонки типу рядок, повинен приймати одне з чотирьох значень -

  • ОткритіеФорми - Відкриває форму обробки.
  • ВизовКліентскогоМетода - буде викликана клієнтська процедура з модуля форми обробки.
  • ВизовСерверногоМетода - буде викликана серверна процедура з модуля обробки.
  • СценарійВБезопасномРежіме - теж буде викликана серверна процедура з модуля обробки в безпечному режимі.

Саме ми будемо використовувати виклик серверного методу.

Наступна колонка - показувати сповіщення. Приймає значення істина або брехня, в залежності від того треба показувати сповіщення чи ні.

Команди.Колонкі.Добавіть ( "ПоказиватьОповещеніе", Новий ОпісаніеТіпов ( "Булево"));

І остання колонка - модифікатор. Це додатковий модифікатор команди. У нашому випадку буде мати назву ПечатьXML.

Функція ПолучітьТабліцуКоманд () Команди = Новий ТабліцаЗначеній; Команди.Колонкі.Добавіть ( "Подання", Новий ОпісаніеТіпов ( "Рядок")); Команди.Колонкі.Добавіть ( "Ідентифікатор", Новий ОпісаніеТіпов ( "Рядок")); Команди.Колонкі.Добавіть ( "Використання", Новий ОпісаніеТіпов ( "Рядок")); Команди.Колонкі.Добавіть ( "ПоказиватьОповещеніе", Новий ОпісаніеТіпов ( "Булево")); Команди.Колонкі.Добавіть ( "Модифікатор", Новий ОпісаніеТіпов ( "Рядок")); Повернення Команди; КонецФункціі

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

Процедура ДобавітьКоманду (ТабліцаКоманд, Подання, Ідентифікатор, Використання, ПоказиватьОповещеніе = Брехня, Модифікатор = "") НоваяКоманда = ТабліцаКоманд.Добавіть (); НоваяКоманда.Представленіе = Подання; НоваяКоманда.Ідентіфікатор = Ідентифікатор; НоваяКоманда.Іспользованіе = Використання; НоваяКоманда.ПоказиватьОповещеніе = ПоказиватьОповещеніе; НоваяКоманда.Модіфікатор = Модифікатор; КонецПроцедури

В даному коді все зрозуміло.

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

Створюємо таблицю значень:

// .... ПараметриРегістраціі.Вставіть ( "БезопаснийРежім", Істина); Команди = ПолучітьТабліцуКоманд ();

Тепер заповнимо її.

Команди = ПолучітьТабліцуКоманд (); ДобавітьКоманду (Команди, "Рахунок на оплату (зовнішня друкована форма)", "СчетНаОплатуВнешній", "ВизовСерверногоМетода", Брехня, "ПечатьMXL");

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

  • Перший параметр, безпосередньо таблиця команд новостворена.
  • Другий параметр, як буде відображатися команда користувачеві на формі (документа, довідника).
  • Третій - унікальний ідентифікатор команди, запам'ятайте його, він нам ще знадобиться!
  • Четвертий параметр - використання, що викличе Ваша команда.
  • П'ятий параметр - показувати сповіщення, ми не будемо це робити.
  • Шостий параметр - модифікатор, в нашому випадку він завжди один ПечатьXML.

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

І нехай наша функція СведеніяОВнешнейОбработке повертає дану структуру.

ПараметриРегістраціі.Вставіть ( "Команди", Команди); Повернення ПараметриРегістраціі;

Все тепер наша обробка буде передавати потрібні параметри реєстрації, які будуть необхідні при створенні елемента довідника додаткові друковані форми і обробки. Звертаю вашу увагу, що назва всіх полів в структурі Параметри реєстрації, а також назву і типи всіх колонок в таблиці команд, повинні бути ті які наведені в прикладі, інакше Ваша обробка не зареєструється.

Тепер в модулі об'єкта створимо процедуру Друк. Це процедура з чотирма параметрами: МассівОб'ектов, КоллекціяПечатнихФорм, Об'ектиПечаті, ПараметриВивода.

Процедура Друк (МассівОб'ектов, КоллекціяПечатнихФорм, Об'ектиПечаті, ПараметриВивода) Експорт КонецПроцедури

І ось починається найцікавіше, тепер вам необхідно увійти в аналогічну процедуру в менеджері об'єкта рахунок на оплату покупцеві, або в обробці, яка, по суті, є менеджером друку.

Як дізнатися, де знаходиться потрібна нам функція?

Відкриємо модуль менеджера документа Рахунок на оплату покупцеві.

І знайдемо процедуру ДобавітьКомандиПечаті, яка заповнює список команд.

У цій процедурі знайдемо код, де додається команда для потрібної нам друкованої форми (список команд додається в таблицю значень КомандиПечаті). І звернемо увагу на властивість МенеджерПечаті. Якщо цій властивості присвоюється якесь значення - це шлях до об'єкта метаданих, як правило до обробки, то значить при виведенні потрібної друкованої форми буде відпрацьований код в процедурі Друк, яка знаходиться в модулі менеджері цього об'єкта (в обробці). А якщо це властивість в принципі не фігурує при заповненні команди друку, то значить буде відпрацьований код в процедурі Друк, яка знаходиться в модулі менеджера нашого основного об'єкта (в нашому випадку це документ СчетНаОплатуПокупателю)

Подивимося на процедуру ДобавітьКомандиПечаті в модулі менеджера документа "Рахунок на оплату покупця".

Оскільки ми робимо зовнішню друковану форму рахунку на оплату, то нас цікавить першій доданій в таблицю значень (див. Властивість Подання), і ми бачимо, що в цьому випадку заповнене властивість МенеджерПечаті, де вказано об'єкт Обработка.ПечатьСчетаНаОплату. Це означає, що нам потрібно знайти процедуру Друк в модулі менеджера обробки ПечатьСчетаНаОплату.

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

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

І розкриємо процедуру Друк.

Нас цікавить друга умова (де фігурує рядок "СчетЗаказ", див. Ідентифікатор потрібної команди в процедурі ДобавітьКомандиПечаті модуля менеджера документа), скопіюємо цю умову в процедуру Друк нашої зовнішньої обробки.

Увага! Копіювати безпосередньо процедуру Друк з модуля менеджера (без різниці обробка це, документ або довідник) не слід. Оскільки у них відрізняється кількість параметрів, в наслідок це призводить до помилок при роботі.

Якщо УправленіеПечатью.НужноПечататьМакет (КоллекціяПечатнихФорм, "СчетЗаказ") Тоді СформіроватьПечатнуюФорму (МассівОб'ектов, ПараметриПечаті, КоллекціяПечатнихФорм, "СчетЗаказ", "Рахунок на оплату", Об'ектиПечаті, ПараметриВивода); КонецЕсли;

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

Процедура СформіроватьПечатнуюФорму (МассівОб'ектов, ПараметриПечаті, КоллекціяПечатнихФорм, ІмяМакета, СінонімМакета, Об'ектиПечаті, ПараметриВивода) ТіпиОб'ектов = ОбщегоНазначеніяБП.РазложітьСпісокПоТіпамОб'ектов (МассівОб'ектов); Для кожного Об'ектиТіпа З ТіпиОб'ектов Цикл МенеджерОб'екта = ОбщегоНазначенія.МенеджерОб'ектаПоСсилке (Об'ектиТіпа.Значеніе [0]); ДокументиБезСчетовНаОплату = Не визначено; ТабліцаСведенійСчетНаОплату = МенеджерОб'екта.ПолучітьТабліцуСведенійСчетаНаОплату (Об'ектиТіпа.Значеніе, ДокументиБезСчетовНаОплату); Якщо ЗначеніеЗаполнено (ДокументиБезСчетовНаОплату) Тоді Якщо ПараметриПечаті.Свойство ( "СокращенноеСообщеніеОбОшібке") Тоді ВивестіСообщеніеНеУказанСчетНаОплату (ДокументиБезСчетовНаОплату, ПараметриПечаті.СокращенноеСообщеніеОбОшібке); Інакше ВивестіСообщеніеНеУказанСчетНаОплату (ДокументиБезСчетовНаОплату); КонецЕсли; КонецЕсли; УправленіеПечатью.ВивестіТаблічнийДокументВКоллекцію (КоллекціяПечатнихФорм, ІмяМакета, СінонімМакета, ПечатьТорговихДокументов.ПечатьСчетаНаОплату (ТабліцаСведенійСчетНаОплату, Об'ектиПечаті, ПараметриПечаті) ,, "ОбщійМакет.ПФ_MXL_СчетЗаказ"); КонецЦікла; ПараметриВивода.Вставіть ( "ФорміроватьЕД", Істина); ОбщегоНазначеніяБП.ЗаполнітьДополнітельниеПараметриПечаті (МассівОб'ектов, КоллекціяПечатнихФорм, Об'ектиПечаті, ПараметриВивода); КонецПроцедури

У цьому коді є рядок, де заповнюється таблиця відомостей рахунку на оплату.

ТабліцаСведенійСчетНаОплату = МенеджерОб'екта.ПолучітьТабліцуСведенійСчетаНаОплату (Об'ектиТіпа.Значеніе, ДокументиБезСчетовНаОплату);

Ця таблиця виходить за допомогою функції модуля менеджера об'єкта (в нашому випадку це документ СчетНаОплатуПокупателю). Знайдемо цю функцію в модулі менеджера документа СчетНаОплатуПокупателю.

Знайдемо цю функцію в модулі менеджера документа СчетНаОплатуПокупателю

І скопіюємо її в модель нашої зовнішньої обробки.

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

Процедура СформіроватьПечатнуюФорму (МассівОб'ектов, ПараметриПечаті, КоллекціяПечатнихФорм, ІмяМакета, СінонімМакета, Об'ектиПечаті, ПараметриВивода) ТіпиОб'ектов = ОбщегоНазначеніяБП.РазложітьСпісокПоТіпамОб'ектов (МассівОб'ектов); Для кожного Об'ектиТіпа З ТіпиОб'ектов Цикл ТабліцаСведенійСчетНаОплату = ПолучітьТабліцуСведенійСчетаНаОплату (Об'ектиТіпа.Значеніе); УправленіеПечатью.ВивестіТаблічнийДокументВКоллекцію (КоллекціяПечатнихФорм, ІмяМакета, СінонімМакета, ПечатьТорговихДокументов.ПечатьСчетаНаОплату (ТабліцаСведенійСчетНаОплату, Об'ектиПечаті, ПараметриПечаті) ,, "ОбщійМакет.ПФ_MXL_СчетЗаказ"); КонецЦікла; ПараметриВивода.Вставіть ( "ФорміроватьЕД", Істина); ОбщегоНазначеніяБП.ЗаполнітьДополнітельниеПараметриПечаті (МассівОб'ектов, КоллекціяПечатнихФорм, Об'ектиПечаті, ПараметриВивода); КонецПроцедури

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

Створимо змінну ПараметриПечаті в процедурі Друк. Це буде проста структура.

Процедура Друк (МассівОб'ектов, КоллекціяПечатнихФорм, Об'ектиПечаті, ПараметриВивода) Експорт ПараметриПечаті = Новий Структура; Якщо УправленіеПечатью.НужноПечататьМакет (КоллекціяПечатнихФорм, "СчетЗаказ") Тоді СформіроватьПечатнуюФорму (МассівОб'ектов, ПараметриПечаті, КоллекціяПечатнихФорм, "СчетЗаказ", "Рахунок на оплату", Об'ектиПечаті, ПараметриВивода); КонецЕсли; КонецПроцедури

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

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

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

Повинен вийде наступний склад процедур і функцій модуля зовнішньої обробки (для зручності я розділив їх на дві області)

Ще раз робимо перевірку модуля. Помилок не виявлено.

Продовжуємо, тепер нам необхідно, що б брався наш макет, і друкувався по нашій команді.

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

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

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

Перейдемо в цей загальний модуль, і скопіюємо функцію ПечатьСчетаНаОплату в модуль нашої зовнішньої обробки

Робимо перевірку модуля зовнішньої обробки. Лається на неіснуючі методи ВивестіЗаголовокПредупрежденіе і НомерСчетаНаОплату.

Лається на неіснуючі методи ВивестіЗаголовокПредупрежденіе і НомерСчетаНаОплату

Переходимо до загального модуль, від куди ми взяли функцію ПечатьСчетаНаОплату, знаходимо процедуру ВивестіЗаголовокПредупрежденіе, і копіюємо її в модуль зовнішньої обробки.

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

НомерДокумента = ПечатьТорговихДокументов.НомерСчетаНаОплату (СведеніяОДокументе.ГосударственнийКонтракт, СведеніяОДокументе.НомерДокумента);

Перевіряємо ще раз помилки. Все нормально.

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

Процедура СформіроватьПечатнуюФорму (МассівОб'ектов, ПараметриПечаті, КоллекціяПечатнихФорм, ІмяМакета, СінонімМакета, Об'ектиПечаті, ПараметриВивода) ТіпиОб'ектов = ОбщегоНазначеніяБП.РазложітьСпісокПоТіпамОб'ектов (МассівОб'ектов); Для кожного Об'ектиТіпа З ТіпиОб'ектов Цикл ТабліцаСведенійСчетНаОплату = ПолучітьТабліцуСведенійСчетаНаОплату (Об'ектиТіпа.Значеніе); УправленіеПечатью.ВивестіТаблічнийДокументВКоллекцію (КоллекціяПечатнихФорм, ІмяМакета, СінонімМакета, ПечатьСчетаНаОплату (ТабліцаСведенійСчетНаОплату, Об'ектиПечаті, ПараметриПечаті) ,, "ОбщійМакет.ПФ_MXL_СчетЗаказ"); КонецЦікла; ПараметриВивода.Вставіть ( "ФорміроватьЕД", Істина); ОбщегоНазначеніяБП.ЗаполнітьДополнітельниеПараметриПечаті (МассівОб'ектов, КоллекціяПечатнихФорм, Об'ектиПечаті, ПараметриВивода); КонецПроцедури

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

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

Знаходимо даний макет в загальних макетах і копіюємо його в макети нашої обробки.

Знаходимо даний макет в загальних макетах і копіюємо його в макети нашої обробки

Виправляємо виділений код, де підтягується макет, наступний чином.

Макет = ПолучітьМакет ( "ПФ_MXL_СчетЗаказ");

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

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

Повернемося назад в процедуру Друк нашої зовнішньої обробки.

І тепер залишилася одна невелика хитрість, без якої ваш зовнішній звіт не буде працювати. Необхідно текст "СчетЗаказ" (це ідентифікатор типовий друкованої форми).

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

Процедура Друк (МассівОб'ектов, КоллекціяПечатнихФорм, Об'ектиПечаті, ПараметриВивода) Експорт ПараметриПечаті = Новий Структура; Якщо УправленіеПечатью.НужноПечататьМакет (КоллекціяПечатнихФорм, "СчетНаОплатуВнешній") Тоді СформіроватьПечатнуюФорму (МассівОб'ектов, ПараметриПечаті, КоллекціяПечатнихФорм, "СчетНаОплатуВнешній", "Рахунок на оплату", Об'ектиПечаті, ПараметриВивода); КонецЕсли; КонецПроцедури

Все, зберігаємо цю обробку. І запускаємо "1С: Підприємство" з конфігуратора.

Йдемо в адміністрування. У додаткові звіти і обробки.

Натискаємо на кнопку "Додати з файлу" і вибираємо нашу створену обробку.

Записуємо. І дивимося, як виходить наша друкована форма.

оригінал статті

Нижче наведені приклади зовнішніх друкованих форм для конфігурацій:

"1С: Бухгалтерія підприємства" (реліз 3.0.67.67).

  • Рахунки на оплату,
  • ТОРГ 12,
  • ПКО,
  • М11 і Вимога накладна в одній обробці (документ Вимога накладна).

"1С: Управління торгівлею 11.4" (реліз 11.4.6.230).

  • Рахунок на оплату (для документів Рахунки на оплату і Замовлення клієнта, виконується в небезпечному режимі через використання штрих-коду)
  • ТОРГ12 (для документа Реалізація товарів і послуг, виконується в небезпечному режимі через використання штрих-коду, три команди: друк проста, печатку із ВМД, друк без послуг)
  • УПД (для документа Реалізація товарів і послуг і Рахунок-фактура видана, виконується в небезпечному режимі через використання штрих-коду)

Як дізнатися, де знаходиться потрібна нам функція?