Статьи

Професія - 1С

  1. Зовнішні друковані форми
  2. Зовнішні обробки заповнення табличних частин

рубрики: початківцям | Дата: 24, Червень, 2014

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

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

Щоб зовнішні обробки працювали коректно вони повинні відповідати певним правилам. Розглянемо ці правила.

Зовнішні друковані форми

Створюємо зовнішню обробку. У ній повинні бути присутніми такі обов'язкові елементи:

  • Реквізит СсилкаНаОб'ект з типом СправочнікСсилка.ІмяСправочніка або ДокументСсилка.ІмяДокумента
  • Макет. Якщо видозмінюється типовий макет, то він звичайно копіюється з типового документа або довідника і допрацьовується. Або створюється з нуля, якщо створюється якась специфічна друкована форма.
  • Або створюється з нуля, якщо створюється якась специфічна друкована форма

  • Експортна процедура Друк () в модулі об'єкта, яка повертає табличний документ. Природно, що заповнення табличного документа здійснюється в цій же процедурі. Приблизно ось так: Функція Друк () Експорт ТабДокумент = Новий ТаблічнийДокумент; Макет = ПолучітьМакет ( "Макет"); ОбластьМакетаШапка = Макет .ПолучітьОбласть ( "Шапка"); ОбластьМакетаШапка .Параметри .МойПараметр = "Мій параметр"; //ТабДокумент.Показать (); Повернення ТабДокумент; КонецФункціі

    Хочу звернути увагу на закоментувавши рядок «//ТабДокумент.Показать ();". Цей рядок в Розкоментувати вигляді використовується для налагодження.

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

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

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

Процедура КнопкаВиполнітьНажатіе (Кнопка) Друк (); КонецПроцедури

Зовнішні обробки заповнення табличних частин

Зовнішня обробка щодо заповнення табличній частини повинна відповідати таким вимогам:

  • У модулі об'єкта повинна бути наступна експортна процедура: Процедура Ініціалізувати (Об'єкт, ІмяТаблічнойЧасті, ТаблічноПолеОб'екта) Експорт

    тут:

    • Об'єкт - в цей параметр буде переданий ДокументОб'ект або СправочнікОб'ект для якого викликається дана процедура
    • ІмяТаблічнойЧасті - в цей параметр буде передана рядок містить ім'я табличній частині, яка буде заповнюватися
    • ТаблічноПолеОб'екта - в цей параметр буде переданий елемент форми «табличне поле», яке буде заповнюватися
      Чесно кажучи ніколи не користувався цим параметром. Зазвичай звертаюся до табличній частині через її ім'я.

    І знову ж таки для налагодження зручно в обробку додати реквізити з посиланням на документ або довідник, а також з ім'ям табличній частині. Або в коді ім'я табличній частині задати. І соответсnвенно по кнопці виконати викликаємо процедуру Ініціалізувати ()

Новости