Зовнішні друковані форми в 1С 8.3 (керовані форми)
- Приклад створення зовнішньої друкованої форми в 1С 8.3
- Створення табличного документа
- Підключення та тестування ВПФ в 1С
Наше деловое партнерство www.banwar.org
Доопрацювання друкованої форми документа - найпоширеніша доробка системи 1С 8.3 . Однак при розробці нового функціоналу доводиться знімати конфігурації з підтримки постачальника, що тягне за собою складності при подальшому супроводі 1С .
Увага! Якщо Вам необхідна розробка друкованих форм будь-якої складності, але Ви не технічний фахівець - просто зверніться до професіоналів. Подробиці на сторінці послуги 1С .
Щоб уникнути таких проблем, фірмою 1С був придуманий спеціальний функціонал - підсистема « Додаткових звітів і обробок «, Яка входить в БСП . Даний функціонал дозволяє без змін в конфігурації додати нову друковану форму або замінити стару.
Механізм полягає в розробці програмістом зовнішньої обробки, в якій описаний програмний код, що формує потрібну друковану форму. Дану обробку необхідно просто завантажити в призначеному для користувача режимі (1С підприємство) в базу даних.
Цей функціонал не нова, він досить давно використовується в типових конфігураціях. На даний момент актуальна версія бібліотеки стандартних підсистем версії 2.х, в якій інструменти побудовані на механізмі керованих форм.
Розглянемо методику розробки і настройки зовнішніх друкованих форм для 1С (8.2 або 8.3) саме в керованому додатку, і нижче Ви можете завантажити отриману зовнішню друковану форму.
Якщо у Вас немає часу читати, можете переглянути наш відеоурок по створенню зовнішніх друкованих форм і підключенню їх на прикладі конфігурації 1С Бухгалтерія:
Приклад створення зовнішньої друкованої форми в 1С 8.3
У нашому прикладі ми зробимо зразок друкованої форми « рахунок »Для документа« Реалізація (акти, накладні) «.
Для початку створимо нову обробку і вкажемо в ній наступне:
1. Створимо експортну функцію СведеніяОВнешнейОбработке () в модулі об'єкта, вкажемо наступний код:
ПараметриРегістраціі = Новий Структура; МассівНазначеній = Новий Масив; МассівНазначеній Додамо ( "Документ.РеалізаціяТоваровУслуг"); // Вказуємо документ до якого робимо зовнішню печ. форму ПараметриРегістраціі .Вставіть ( "Вид", "ПечатнаяФорма"); // може бути - ПечатнаяФорма, ЗаполненіеОб'екта, ДополнітельнийОтчет, СозданіеСвязаннихОб'ектов ... ПараметриРегістраціі .Вставіть ( "Призначення", МассівНазначеній); ПараметриРегістраціі .Вставіть ( "Найменування", "Рахунок на оплату (шаблон)"); // ім'я під яким обробка буде зареєстрована в довіднику зовнішніх обробок ПараметриРегістраціі .Вставіть ( "БезопаснийРежім", БРЕХНЯ); ПараметриРегістраціі .Вставіть ( "Версія", "1.0"); ПараметриРегістраціі .Вставіть ( "Інформація", "Цю ВПФ ми зробили для того що б подивитися можливості БСП"); ТабліцаКоманд = ПолучітьТабліцуКоманд (); ДобавітьКоманду (ТабліцаКоманд, "Рахунок на оплату (шаблон)", "СчетНаОплатуВРТУ", "ВизовСерверногоМетода", Істина, "ПечатьMXL"); ПараметриРегістраціі .Вставіть ( "Команди", ТабліцаКоманд); Повернення ПараметриРегістраціі;
Формат повертається структури регламентований, подробиці можна дізнатися в розділах ІТС.
Функція СведеніяОВнешнейОбработке () посилається ще на одну процедуру і функцію: Функція ПолучітьТабліцуКоманд () Команди = Новий ТабліцаЗначеній; Команди Колонка Додамо ( "Подання", Новий ОпісаніеТіпов ( "Рядок")); // як буде виглядати опис печ.форми для користувача Команди Колонка Додамо ( "Ідентифікатор", Новий ОпісаніеТіпов ( "Рядок")); // ім'я макета печ.форми Команди Колонка Додамо ( "Використання", Новий ОпісаніеТіпов ( "Рядок")); // ВизовСерверногоМетода Команди Колонка Додамо ( "ПоказиватьОповещеніе", Новий ОпісаніеТіпов ( "Булево")); Команди Колонка Додамо ( "Модифікатор", Новий ОпісаніеТіпов ( "Рядок")); Повернення Команди; КонецФункціі Процедура ДобавітьКоманду (ТабліцаКоманд, Подання, Ідентифікатор, Використання, ПоказиватьОповещеніе = Брехня, Модифікатор = "") НоваяКоманда = ТабліцаКоманд Додамо (); НоваяКоманда Представлення = Подання; НоваяКоманда .Ідентіфікатор = Ідентифікатор; НоваяКоманда .Використання = Використання; НоваяКоманда .ПоказиватьОповещеніе = ПоказиватьОповещеніе; НоваяКоманда .Модіфікатор = Модифікатор; КонецПроцедури
Вони практично завжди однакові.
2. Другим кроком необхідно створити експортну процедуру Друк (), за допомогою якої підсистема буде ініціювати запуск друку з загальних модулів підсистеми. Процедура містить 4 параметра:
- МассівОб'ектов - посилання на об'єкти, які плануються для друку (масив);
- КоллекціяПечатнихФорм - вже сформовані документи ( таблиця значень );
- Об'ектиПечаті - список значень, в якому значення - це посилання на об'єкт, а уявлення - ім'я області, в якій був введений об'єкт;
- ПараметриВивода - довільні параметри для друку.
Процедура виглядає приблизно наступним чином:
Процедура Друк (МассівОб'ектов, КоллекціяПечатнихФорм, Об'ектиПечаті, ПараметриВивода) Експорт УправленіеПечатью .ВивестіТаблічнийДокументВКоллекцію (КоллекціяПечатнихФорм, "СчетНаОплатуВРТУ", "Рахунок на оплату (шаблон)", СформіроватьПечатнуюФорму (МассівОб'ектов [0], Об'ектиПечаті)); КонецПроцедури // Друк ()
У ній формується потрібну кількість табличних документів і готується до друку. У нашому прикладі ми створимо функцію «СформіроватьПечатнуюФорму ()», яка буде повертати табличний документ. Для прикладу ми припускаємо, що у нас завжди 1 друкована форма, тому передаємо в функцію перший елемент масиву (МассівОб'ектов [0]).
Ось і все, підготовча частина обробки для зовнішньої друкованої форми в 1С 8.3 готова, залишилося зробити безпосередньо саму друковану форму у вигляді табличного документа, яку буде повертати корисна функція.
Створення табличного документа
Докладно зупинятися на цьому не будемо, на цю тему є велика кількість матеріалів.
Уявімо лише зовнішній вигляд макета нашого елементарного прикладу:
І лістинг:
Функція СформіроватьПечатнуюФорму (СсилкаНаДокумент, Об'ектиПечаті) ТаблічнийДокумент = Новий ТаблічнийДокумент; ТаблічнийДокумент .ІмяПараметровПечаті = "ПАРАМЕТРИ_ПЕЧАТІ_СчетНаОплатуВРТУ"; МакетОбработкі = ПолучітьМакет ( "СчетНаОплатуВнешній"); // заповнюємо шапку ОбластьШапка = МакетОбработкі .ПолучітьОбласть ( "Шапка"); ОбластьШапка .Параметри .НомерДокумента = СсилкаНаДокумент .Номер; ОбластьШапка .Параметри .ДатаДокумента = СсилкаНаДокумент .Дата; ОбластьШапка .Параметри .НазваніеОрганізаціі = СсилкаНаДокумент .Організація .Наіменованіе; // виводимо шапку в табличний документ ТаблічнийДокумент .Вивесті (ОбластьШапка); // заповнюємо рядки ТЧ ОбластьСтрокі = МакетОбработкі .ПолучітьОбласть ( "СтрокаТЧ"); Для Кожного ТекущаяСтрока З СсилкаНаДокумент .Товари Цикл ЗаполнітьЗначеніяСвойств (ОбластьСтрокі .Параметри, ТекущаяСтрока); ТаблічнийДокумент .Вивесті (ОбластьСтрокі); КонецЦікла; // заповнюємо підвал ОбластьПодвал = МакетОбработкі .ПолучітьОбласть ( "Підвал"); ОбластьПодвал .Параметри .КолічествоІтог = СсилкаНаДокумент .Товари .Ітог ( "Кількість"); ОбластьПодвал .Параметри .СуммаІтог = СсилкаНаДокумент .Товари .Ітог ( "Сума"); ОбластьПодвал .Параметри .ІмяОтветственного = СсилкаНаДокумент .Менеджер .Наіменованіе; // виводимо підвал в табличний документ ТаблічнийДокумент .Вивесті (ОбластьПодвал); ТаблічнийДокумент .АвтоМасштаб = Істина; Повернення ТаблічнийДокумент; КонецФункціі
Підключення та тестування ВПФ в 1С
У нашому прикладі ми запускаємо конфігурації 1С Управління торгівлею версії 11.1 . Щоб додати новий обробки необхідно в розділі «Адміністрування» вибрати пункт «Друковані форми, звіти і обробки». У потрібному меню потрібно натиснути гіперпосилання «Додаткові звіти і обробки» (якщо посилання не активна, включите використання даного функціоналу - прапор розташований трохи лівіше).
У відкритому довіднику необхідно натиснути на кнопку «додати». Програма відкриє діалогове вікно вибору файлу, в якому необхідно вказати файл розробленої нами раніше друкованої форми. Якщо все було зроблено правильно, система автоматично заповнить всі параметри, і залишиться тільки натиснути кнопку «записати і закрити»:
Як видно, параметри скопійовані з функції «СведеніяОВнешнейОбработке ()».
Для того щоб перевірити роботу обробки, необхідно в документі « Реалізація товарів і послуг »Відкрити список друкованих форм. У ньому Ви виведіть як «типові» друковані форми, так і зовнішні, в тому числі і наш доданий:
При натисканні на команду система сформує потрібну нам форму:
Можливо, вона не найкрасивіша, але як навчальний приклад, який демонструє роботу в програмі, цілком підійде :).
Якщо у вас щось не виходить, рекомендую скористатися механізмом налагодження зовнішніх друкованих форм .
Завантажити вийшов приклад зовнішньої друкованої форми можна за посиланням - ШаблонВнешнейПечатнойФормиБСП 2.0 (8.2) .
Якщо Вам необхідна розробка друкованих форм будь-якої складності, але Ви не технічний фахівець - просто зверніться до професіоналів. Ми пропонуємо свої послуги на взаємовигідних умовах. Подробиці на сторінці 1С послуги .
Інші статті по 1С:
Якщо ви починаєте вивчати 1С програмування, рекомендуємо наш безкоштовний курс (не забудьте підписатися на YouTube - регулярно виходять нові відео):