Як створити зовнішню обробку 1с. Як створити зовнішню обробку для типової конфігурації

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

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

Будь-яка існуюча у конфігурації обробка може бути перетворена на зовнішню, і навпаки. Крім цього зовнішні обробки 1Сможуть бути додані до структури прикладного рішення як нові об'єкти.

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

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

Редагування зовнішньої обробки 1Свиконується у конфігураторі. Щоб відкрити існуючу зовнішню обробку, виберіть Файл - Відкрити. У стандартному діалозі, що виданий на екран, виберіть тип файлу - Зовнішня обробка - і вкажіть ім'я зовнішнього оброблення. При відкритті зовнішньої обробки конфігуратора автоматично відкривається діалог редагування об'єкта. На відміну від інших об'єктів конфігурації, налагодження зовнішньої обробки 1Спроводитися без перезапуску 1С Підприємства.

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

Недоліки зовнішньої обробки 1С: за допомогою зовнішньої обробки не можна створити новий документ або довідник; все, що стосується структури бази, обробка може робити.

Щоб створити зовнішню обробку, потрібно зайти в конфігуратор, знайти звіт операції щодо дат у дереві конфігурації. Потім у контекстному меню вибрати пункт зберегти як зовнішню обробку та вказати місце, куди її зберегти.

Для роботи із зовнішніми обробками (а зовнішня друкована форма також є зовнішньою обробкою) існує об'єкт Зовнішні обробки.

Розглянемо два можливі випадки:

Зовнішня обробка зберігається на диску окремо від інформаційної бази

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

Відкриття форми зовнішньої обробки

Для програмного відкриття форми зовнішньої обробки 1С використовується функція ОтриматиФорму()об'єкта Зовнішні обробки.Функція має декілька параметрів. Розглянемо просте відкриття основної форми обробки:


Форма = Зовнішні Обробки. ОтриматиФорму(АдресФайлу) ;
Форма. Відкрити() ;

Для відкриття неосновної форми зовнішньої обробки необхідно зазначити її ім'я.

//У змінній АдресаФайла знаходиться повний шлях до файлу зовнішньої обробки
Форма = Зовнішні Обробки. ОтриматиФорму(АдресФайлу, "НеосновнаФорма") ;
Форма. Відкрити() ;

Відкриття зовнішньої обробки як об'єкта

Для того щоб отримати зовнішню обробку як об'єкт використовується функція Створити()об'єкта Зовнішні обробки.

//У змінній АдресаФайла знаходиться повний шлях до файлу зовнішньої обробки
Об'єкт Обробки = Зовнішні Обробки. Створити(АдресФайлу) ;

За промовчанням всі обробки відкриваються в безпечному режимі. Щоб його вимкнути, використовуються такі параметри:

//У змінній АдресаФайла знаходиться повний шлях до файлу зовнішньої обробки

Зовнішнє оброблення або друкована форма збережена в інформаційній базі

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

Для відкриття зовнішньої обробки потрібно:

  1. Отримати її зі сховища.
  2. Зберегти файл із обробкою на диск.
  3. Відкрити форму або отримати об'єкт обробки.
  4. Якщо ми маємо справу із зовнішньою друкованою формою, то можна заповнити стандартний реквізит ПосиланняНаОб'єктта викликати експортну функцію Друк.

//У змінній Посилання знаходиться посилання на елемент довідника ЗовнішніОбробки
ДвДані= Посилання. Сховище зовнішньої обробки. Отримати() ;
АдресаФайлу= ОтриматиІм'яТимчасовогоФайлу() ;
ДвДані. Записати(АдресФайлу) ;
Об'єкт Обробки = Зовнішні Обробки. Створити (Адрес Файла, Брехня);

Досить часто, коли під час консультації виникає необхідність вирішити якесь складне питання, я пропоную своїм клієнтам реалізувати його у програмі 1С із використанням або зовнішньої обробки, або зовнішньої друкованої форми. І не рідко стикаюся з тим, що людина просто не знайома з такою можливістю програм на платформі 1С Підприємство 8. Іноді навіть лаються на мене, вважаючи, що розробка та впровадження до їх конфігурації таких обробок призведе до неможливості автоматично оновлювати програму. Що доведеться сплачувати великі гроші за оновлення програми.

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

У статті йтиметься про наступні варіанти додаткових зовнішніх об'єктів, що підключаються:

  • Додаткові зовнішні обробки табличних елементів;
  • Додаткові зовнішні друкарські форми;
  • Додаткові зовнішні звіти;
  • Додаткові зовнішні обробки.

Що таке додаткові зовнішні обробки, звіти та друковані форми




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

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

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

Семінар «Лайфхакі з 1C ЗУП 3.1»
Розбір 15-ти лайфхаків з обліку в 1с ЗУП 3.1:

ЧЕК-ЛИСТ з перевірки розрахунку зарплати у 1С ЗУП 3.1
ВІДЕО - щомісячна самостійна перевірка обліку:

Нарахування зарплати у 1С ЗУП 3.1
Покрокова інструкція для початківців:

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

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

Бухгалтер попросив реалізувати можливість заповнення цього документа співробітниками, робочі дні яких за графіком припадали вихідні, тобто. «Ті, хто працював у вихідні».

Цей файл був завантажений у довідник "Зовнішні обробки табличних частин"(пункт меню "Сервіс" -> "Додаткові звіти та обробки" -> "Додаткові зовнішні обробки табличних частин"). При створенні елемента цього довідника було зазначено до якого документу належить обробка, що завантажується – «Оплата святкових і вихідних днів організації», а також до якої табличної частини – «Співробітники». У прикладі таблична частина в документа одна, але в інших документах їх може бути кілька, тому і потрібно конкретно вказати, до якої з них відноситься обробка.

В результаті додавання цієї обробки до довідника «Додаткові зовнішні обробки із заповнення табличних частин»у самому документі «Оплата святкових та вихідних частин» з'явиться кнопка «Заповнити» з списком, в якому буде можливість запустити цю обробку. У нашому випадку у списку, що випадає, доступна кнопка «Заповнення воскресінь». Її натискання запускає алгоритм, який міститься у обробці. У цьому прикладі таблична частина заповниться співробітниками, у яких робочі дні припали на вихідний день. Зверніть увагу, що цієї кнопки раніше не було (скриншот вище).

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

Додаткові зовнішні друкарські форми

Семінар «Лайфхакі з 1C ЗУП 3.1»
Розбір 15-ти лайфхаків з обліку в 1с ЗУП 3.1:

ЧЕК-ЛИСТ з перевірки розрахунку зарплати у 1С ЗУП 3.1
ВІДЕО - щомісячна самостійна перевірка обліку:

Нарахування зарплати у 1С ЗУП 3.1
Покрокова інструкція для початківців:

Цей варіант дуже схожий на попередній. Ви швидше за все бачили і знаєте, що майже кожен документ і навіть деякі елементи довідників мають друковані форми. Вони, як правила, розташовуються в правому нижньому кутку форми елемента довідника або документа. Іноді типових друкованих форм виявляється недостатньо. Наприклад, організація може мати свою власну форму трудового договору. Нагадаю, що типова друкована форма "Трудовий договір" перебуває у складі форми довідника "Співробітники".

До складу цих друкованих форм довідника можна додати свої власні. І тому створюється зовнішня друкована форма, має розширення “.epf”. Потім для неї створюється елемент довідника "Додаткові зовнішні друковані форми"(пункт меню «Сервіс» -> «Додаткові звіти та обробки») та файлик з розширенням “.epf” додається до цього елемента довідника. Також необхідно вказати, для якого документа чи довідника додається обробка.

В результаті у складі друкованих форм елементів довідника «Співробітники» з'явиться ще одна форма – «Трудовий договір (ТОВ Альфа)», якої раніше не було. А її зовнішній вигляд та заповнення даними визначає програміст у файлі “.epf”.

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

Додаткові зовнішні звіти

У цьому випадку можна розробити зовнішній звіт. Це файл формату ".erf". Саме цей файл визначатиме зовнішній вигляд звіту, те, які дані конфігурації він використовуватиме, а які запитувати у користувача (наприклад, період, відбір по співробітникам чи підрозділам). Файл створюється у конфігураторі 1С мовою програмування 1С.

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

При такому варіанті зберігання звіт запускається з цього ж довідника (подвійним клацанням).

Запустити зовнішній звіт можна за допомогою пункту меню «Файл» -> «Відкрити». Цей варіант можна використовувати, якщо Вам зручніше зберігати зовнішні звіти не в програмі, а просто в папках комп'ютера.

Додаткові зовнішні обробки

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

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

Наведу ще один прикладПросте, але досить затребуваної обробки. Якщо в 1С ЗУП протягом року не вести документ «Перерахування ПДФО до бюджету», то при формуванні 2-ПДФО за рік поле «Перераховано» у кожного співробітника буде нульовим, що, як правило, фактично невірно. Вводити документ «Перерахування ПДФО до бюджету» за весь рік буває досить стомлюючим, враховуючи особливості самого документа. Але можна зробити зовнішню обробку, яка у сформованому 2-ПДФО просто заповнить поле «Перераховано» у кожного співробітника на підставі значень у полі «Розраховано». Зазвичай бухгалтерам дуже подобається такий варіант.

Зовнішні обробки мають такі самі два варіанти зберігання і запуску: або використовувати довідник "Додаткові зовнішні обробки"(пункт меню "Сервіс" -> "Додаткові звіти та обробки"), або пункт головного меню "Файл" -> "Відкрити".

На цьому сьогодні все!

Щоб дізнатися першими про нові публікації, підписуйтесь на оновлення мого блогу:

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

Створюємо зовнішню обробку 1С 8.3

Для створення нової зовнішньої обробки використовуємо конфігуратор. Через меню «Файл» вибираємо команду створення «Новий…» і визначаємо, що ми створюватимемо зовнішню обробку. У вікні задаємо ім'я, і ​​при натисканні «Enter» воно заповнюється автоматично. Також це ім'я вам запропонує система як назву файлу при збереженні.

Додамо форму обробки, натиснувши на кнопку із зображенням лупи у відповідному вікні. Наприклад створимо обробку, показує, у яких замовленнях клієнта використовується певна номенклатура. Для цього нам необхідно розмістити на формі:

  • Реквізит – поле для встановлення номенклатури;
  • Кнопку, яка здійснить виклик коду.

Додаємо реквізит «Номенклатура» з типом даних «Довідник Посилання.Номенклатура» у відповідному розділі та кнопку «Показати» у меню «Команда» -> «Команда форми».

Щоб на формі відобразилися додані дані, їх необхідно перетягнути елементи форми, розташовані в лівій верхній частині. Можна поміняти місцями елементи за допомогою синіх стрілок. Щоб створена кнопка виконувала задумане, їй потрібно призначити процедуру. Через контекстне меню виберемо «Дію команди», і питанням, де потрібен обробник, відповімо: «Створити клієнта і процедуру на сервері».


Фрагмент 1

&НаКлієнті Процедура Показати(Команда) ПоказатиНаСервері(); КінецьПроцедури &НаСервері Процедура ПоказатиНаСервере() //Вставити вміст обробника. КінецьПроцедури

Ми вибрали створення процедури на сервері, тому що хочемо як результат отримати вибірку з бази даних. На клієнті у нас немає такої можливості, тому буде потрібно підключення до сервера, який обмінюється з БД даними. Тепер нам необхідно написати код, який реалізує задумане нами. Використовуватиметься запит та виведення всіх документів через функцію «Повідомити()».


Фрагмент 2

&НаКлієнті Процедура Показати(Команда) ПоказатиНаСервері(Номенклатура); КінецьПроцедури &НаСервері Процедура ПоказатиНаСервері(Номенклатура) Запит = Новий Запит;

Запит.Текст = "ВИБРАТИ РІЗНІ | Замовлення Клієнта Склад. Посилання ЯК Посилання | З | Документ. Замовлення Клієнта. Склад ЯК Замовлення Клієнта Склад | ДЕ | Замовлення Клієнта Склад.

Щоб розмістити зовнішню обробку в розділі 1С, необхідно їй у модулі об'єкта прописати процедуру «Відомості про зовнішню обробку». В основному меню обробки натисніть «Дії» та виберіть «Модуль об'єкта». Тут необхідно прописати всі потрібні для 1С налаштування, щоб система зрозуміла, що від неї потрібно і що файл перед нею. На скріншоті зображено код функції «Відомості про зовнішній обробці».

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

ДаніДляРег.Вставити("Найменування","Нова зовнішня обробка");

ДаніДляРег.Вставити("БезпечнийРежим", Істина);

ДаніДляРег.Вставити("Версія", "ver.: 1.001");


ДаніДляРег.Вставити("Вигляд", "Додаткова Обробка");

  • ТабЗнКоманда = Новий ТаблицяЗначень;
  • ТабЗнКоманди.Колонки.Додати("Ідентифікатор");
  • ТабЗнКоманди.Колонки.Додати("Використання");
  • Після натискання клавіші «Записати» у вибраному розділі в меню «Додаткові обробки» користувачі виявлять нашу команду та зможуть нею скористатися.

Якщо ми хочемо внести зміни до нашої обробки, необхідно спочатку вивантажити її з бази. Для цього в довіднику «Додаткові обробки та звіти» знайдіть потрібний рядок та скористайтеся командою «Вивантажити у файл…». Внесіть зміни, збережіть обробку і за допомогою клавіші «Завантажити з файлу…» знайдіть змінений файл epf, не змінюючи параметри. Після запису усі користувачі побачать внесені зміни.

Якщо ви використовуєте не типову або зняту з підтримки базу 1С, скористайтеся можливістю завантажити обробку через конфігуратор. У дереві об'єктів у розділі «Обробки» створіть нову обробку та за допомогою контекстного меню виберіть «Замінити на зовнішню обробку, звіт…». Залишиться лише налаштувати запуск зовнішньої обробки з потрібного розділу, включивши додану обробку потрібну підсистему.


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

mob_info