Як виконати зовнішню обробку 1с 8.3. Додавання зовнішньої обробки до бази

2016-12-08T15:04:29+00:00

Розповім на прикладі своїх обробок, які я викладаю у себе на .

1. Завантажте на робочий стіл архів із обробкою.

2. Зробіть подвійне клацання мишею по скачаному архіву і потрапите всередину.

Увага!Якщо потрапити всередину архіву не вдалося (пише помилку "Додаток не знайдено"), тоді натисніть на архіві правою кнопкою і виберіть один з варіантів:

      • Витягти все
      • Відкрити за допомогою 7-Zip
      • Відкрити за допомогою WinRar
      • Або щось схоже...

3. Там файл із обробкою (і вже з російською назвою). Натисніть правою кнопкою на ньому і виберіть пункт "Копіювати".

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

5. На робочому столі має з'явитися файл із архіву.

Для звичайного інтерфейсу

З меню виберіть пункт "Файл->Відкрити...":

Для керованого інтерфейсу (таксі та інше)

Відкриваємо безпосередньо із файлу

З меню виберіть пункт "Файл"->"Відкрити...":

У вікні, що з'явилося, перейдіть на робочий стіл, виберіть файл з обробкою і натисніть кнопку "Відкрити".

Готово! Обробка повинна відкритися в програмі і нею можна скористатися. Для зручності можна на робочому столі створити спеціальну папку "Обробки" та зберігати такі файли там.

Реєструємо обробку в базі

Якщо на етапі відкриття файлу у вас з'явилася помилка "Порушення прав доступу!":

Тоді доведеться дозволити відкриття зовнішніх обробок (про це) або зареєструвати обробку в базі - зробити це нескладно, для цього:

Зайдіть у розділ "Адміністрація", пункт "Друкарські форми, звіти та обробки":

У вікні встановіть галку "Додаткові звіти та обробки" та відкрийте посилання "Додаткові звіти та обробки":

У вікні, натисніть кнопку "Створити":

Прочитайте попередження та натисніть кнопку "Продовжити":

У вікні, що з'явилося, перейдіть на робочий стіл, виберіть файл з обробкою і натисніть кнопку "Відкрити":

Якщо на цьому етапі вискочить помилка "Неможливо підключити додаткову обробку з файлу...", то щоб відкрити обробку нічого не залишається, крім дозволити відкривати файли з меню "Файл"->"Відкрити" - ось про це.

Знайдіть та натисніть пункт "Розміщення":

У наступному вікні позначте галкою розділ "Операції" та натисніть "ОК".

У верхньому меню заходимо Сервіс->->.

З'являється форма списку довідника зовнішніх обробок. У верхньому меню натискаємо кнопку Додати.

З'явиться форма додавання нового об'єкта. Натискаємо кнопку відкрити, і вибираємо файл з потрібною обробкою. Після того як ви вибрали потрібний файл, за потреби, задайте ім'я обробки (поле Найменування). Після цього потрібно натиснути ОК, щоб зберегти зміни.

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

На цьому все! Процес додавання обробки до конфігурації завершено. Щоб згодом відкривати цю обробку, заходьте старим шляхом: Сервіс->Додаткові звіти та обробки->Додаткові зовнішні обробки.

Для БП 3.0 ЗУП 3.0 УТ 11 ERP 2.0.

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

Для першого випадку додамо обробку із заповнення довідника номенклатури з Екселю.

Переходимо у відповідний розділ програми:


Необхідно, щоб була встановлена ​​ознака використання додаткових звітів та обробок, переходимо за гіперпосиланням до списку зовнішніх об'єктів:

У списку натискаємо Створити:


У діалоговому вікні, що відкрилося, вибираємо потрібний файл з обробкою:


Заповнилася картка нового зовнішнього об'єкта у програмі, залишилося лише налаштувати розміщення(розділи програми, з яких буде доступна обробка):


Як розміщення вибираємо довільний розділ (або кілька):


Записуємо та закриваємо картку зовнішнього об'єкта:


Тепер відкриємо обробку з інтерфейсу:


Список порожній, натискаємо Налаштувати список:


Вибираємо нашу обробку:


Тепер вона доступна для вибору. Щоб відкрити обробку, потрібно натиснути Виконати:


Тепер подивимося, як додається обробка із заповнення (модифікації) конкретних об'єктів. Наприклад візьмемо зовнішню обробку, яка прикріплює скани до обраних елементів довідників чи документів системи. Початок додавання такої обробки не відрізняється від попереднього варіанта. Відмінність у цьому, що у разі розміщення заповнюється автоматично (і розділом програми, а типами об'єктів бази):


За бажанням список розміщення можна скоригувати ( не додати додаткове розміщення, а забрати зайве):


Для ухвалення зміни картку зовнішнього об'єкта також потрібно записати.

Для того, щоб скористатися обробкою, необхідно зайти у конкретний об'єкт бази (зі списку розміщення), натиснути пункт Заповнитиу командній панелі та вибрати команду:

Раніше було написано зовнішню обробку, що дозволяє переглядати кількість документів у базі, введених за поточний день за датою документа. Для чого вона була створена не має значення. Форма обробки досить проста, як і реалізація:

Програмний код обробки Ви можете переглянути, завантаживши її за посиланням наприкінці статті. Ми ж вирішимо інше завдання. Нам потрібно цю обробку запускати з меню "Сервіс":

Після натискання на кнопку обробки запускається з уже введеною поточною датою у полі "Дата перевірки".

Запуск

Спочатку додамо кнопку "Кількість документів за добу" в інтерфейс "Повний" та створимо для неї процедуру-обробник у загальному модулі.

Програмний код процедури-оброблювача представлений на наступному лістингу:

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

Загалом послідовність дії така:

  1. Отримуємо посилання на елемент довідника "Зовнішні Обробки".
  2. Виймаємо двійкові дані файлу обробки, збережені у знайденому елементі довідника.
  3. Записуємо отримані двійкові дані до тимчасового файлу.
  4. За допомогою створеного файлу отримуємо форму зовнішньої обробки та відкриваємо її.

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

Переваги

Навіщо це може знадобитися? Чи не легше додавати обробки або читати безпосередньо в конфігурацію?

Так, легше. Але що, якщо Ви часто доопрацьовуєте обробку? Щоразу при її зміні оновлюватиме інформаційну базу? Використовувати динамічне оновлення з усіма ризиками?

У таких випадках якраз і допоможе винесення функціоналу у зовнішні обробки/звіти, які після модифікації ми можемо просто замінити у довіднику "Зовнішні обробки", а користувачам залишиться лише перезапустити їх. Жодного оновлення не буде потрібно.

Використана у статті обробка "Підрахунок кількості документів".

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

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

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

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

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

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

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


Фрагмент 1

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

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


Фрагмент 2

&НаКлієнті Процедура Показати(Команда) ПоказатиНаСервері(Номенклатура); КінецьПроцедури &НаСервері Процедура ПоказатиНаСервері(Номенклатура) Запит = Новий Запит; Запит.Текст = "ВИБРАТИ РІЗНІ | Замовлення Клієнта Склад. Посилання ЯК Посилання | З | Документ. Замовлення Клієнта. Склад ЯК Замовлення Клієнта Склад | ДЕ | Замовлення Клієнта Склад. Запит.ВстановитиПараметр("Номенклатура", Номенклатура); РезультатЗапиту = Запрос.Выполнить(); ВибіркаДетальніЗаписи = РезультатЗапроса.Вибрати(); Поки ВибіркаДетальніЗаписи.Наступний() Цикл Повідомити(ВибіркаДетальніЗаписи.Посилання); КінецьЦикл; КінецьПроцедури

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

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

Функція ВідомостіЗовнішнійОбробці() Експорт ДаніДляРег = Новий Структура(); ДаніДляРег.Вставити("Найменування","Нова зовнішня обробка"); ДаніДляРег.Вставити("БезпечнийРежим", Істина); ДаніДляРег.Вставити("Версія", "ver.: 1.001"); ДаніДляРег.Вставити("Вигляд", "Додаткова Обробка"); ТабЗнКоманда = Новий ТаблицяЗначень; ТабЗнКоманди.Колонки.Додати("Ідентифікатор"); ТабЗнКоманда.Колонки.Додати("Використання"); ТабЗнКоманди.Колонки.Додати("Подання"); НовийРядок = ТабЗнКоманда.Додати(); НовСтрока.Ідентифікатор = "Нова Зовнішня Обробка"; НовийРядок.Використання = "ВідкриттяФорми"; НовСтрока.Представлення = "Нова зовнішня обробка"; ДаніДляРег.Вставити("Команда", ТабЗнКоманда); Повернення ДаніДляРег; КінецьФункції

Фрагмент 3

Підключення зовнішньої обробки до 1С

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


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

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

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

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


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

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

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

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

"C:\Program Files (x86)\1cv8\8.3.5.хххх\bin\1cv8.exe" ENTERPRISE /DisableStartupMessages /FС:\шлях до бази /N"Ім'я Користувача" /P"ПарольКористувача" до обробки\самообробка.epf

Розшифруємо:

1. "C: Program Files (x86) \ 1cv8 \ 8.3.5.хххх \ bin \ 1cv8.exe" ENTERPRISE - сам двигун 1С в даному випадку 8.3, перевірте шлях з себе самі, він відрізняється в залежності від версії і движка навіть не забуваємо правити його після оновлення останнього.

2. /DisableStartupMessages - відключаємо всі повідомлення при старті системи.

4. /N»Ім'я Користувача» /P»ПарольКористувача» - відповідно /N ім'я користувача, також відразу без пропуску та /P пароль.

5. /Execute з:\шлях до обробки\самаобработка.epf - /Execute запускає нашу обробку, шлях і назва має слідувати після цього ключа.

Тепер все, залишається тільки додати у планувальник завдань наш cmd файл: avtozapusk1c.cmd, вказавши розклад його запуску.

Для відстеження роботи зовнішньої обробки рекомендую під неї створити окремого користувача, ще оптимально, щоб обробка сама створювала лог-файл, який також періодично падав до Вас на пошту.

Ось такі не хитрі інструменти допомагають автоматизувати щоденні рутинні операції, Вам успіхів!

mob_info