Головна · Паразити в організмі · Тривалі операції 1С 8.3. Відображення прогресу виконання тривалих операцій у БСП та їх налагодження у поточному сеансі. Новий функціонал обліку зарплати та кадрів

Тривалі операції 1С 8.3. Відображення прогресу виконання тривалих операцій у БСП та їх налагодження у поточному сеансі. Новий функціонал обліку зарплати та кадрів

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

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

Використовувалась БСП версії 2.3. Більше ранніх версіяхце не працює, там немає такого програмного інтерфейсу.

Прогрес виконання

Якщо при виконанні тривалих операцій у фоні вам (або користувачам) не хочеться просто дивитися на гурток, що обертається, а хочеться знати, скільки обробилося даних і що в даний момент обробляється, то в БСП є механізм візуалізації прогресу.

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

У ній проводиться передача виконання на сервер процедуру, що ініціює запуск тривалої операції. Після чого починається очікування завершення тривалої операції.

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

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

&НаКлієнті Процедура ВиконатиПроцедуруФоново(Команда) Тривала Операція = ВиконатиФоновеЗавданняНаСервері();

ПараметриОчікування = Тривалі ОпераціїКлієнт.ПараметриОчікування(ЦейОб'єкт);

// вказуємо необхідність виведення прогресу стану Параметри Очікування. Виводити Прогрес Виконання = Істина;

&НаСервері Функція ВиконатиФоновеЗавданняНаСервері() СтруктураПараметрів = Новий Структура;

ПараметриВиконання = Тривалі Операції.ПараметриВиконанняВФоне(УнікальнийІдентифікатор);

ПараметриВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = "Найменування фонового завдання""); Тривала Операція = Тривалі Операції.Повернення Тривала Операція; КінецьФункції

Повідомлення про прогрес

У самій процедурі тривалої операції

Ім'яМодуля.Ім'яЕкспортноїПроцедури

необхідно повідомляти про прогрес виконання та опис поточної дії.

Дані повідомлення збирає батьківський сеанс та виводить у форму очікування. Процедура Ім'яЕкспортноїПроцедури(СтруктураПараметрів, АдресаРезультату) Експорт //... Тривалі Операції.ПовідомитиПрогрес(Окр(ПроцентВиконання, 0), Опис);".

//... КінецьПроцедури

Процедура обробки результату

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

У разі успішного виконання тривалої операції, результат перебуватиме у тимчасовому сховищі, що знаходиться за адресою "

  1. Результат.АдресРезультату
  2. &НаКлієнті Процедура ВиконатиПроцедуруФоновоВиконано(Результат, ДодатковіПараметри) Експорт Якщо Результат = Невизначено Тоді Повернення;
  3. ІнакшеЯкщо Результат.Статус = "Помилка" Тоді ЗагальногоПризначенняКлієнтСервер.ПовідомитиКористувачу(Результат.ДокладнеПоданняПомилки);

ІнакшеЯкщо Результат.Статус = "Виконано" Тоді // обробляємо результат //ОбробитиРезультат(Результат.АдресРезультату);

КінецьЯкщо; КінецьПроцедури

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

При натисканні на "Скасувати" не скасовується фонове завдання, а просто закривається форма.

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

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

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

Використовувалась БСП версії 2.3. На попередніх версіях це не працює, там немає такого програмного інтерфейсу.

Прогрес виконання

Якщо при виконанні тривалих операцій у фоні вам (або користувачам) не хочеться просто дивитися на гурток, що обертається, а хочеться знати, скільки обробилося даних і що в даний момент обробляється, то в БСП є механізм візуалізації прогресу.

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

У ній проводиться передача виконання на сервер процедуру, що ініціює запуск тривалої операції. Після чого починається очікування завершення тривалої операції.

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

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

&НаКлієнті Процедура ВиконатиПроцедуруФоново(Команда) Тривала Операція = ВиконатиФоновеЗавданняНаСервері();

ПараметриОчікування = Тривалі ОпераціїКлієнт.ПараметриОчікування(ЦейОб'єкт);

// вказуємо необхідність виведення прогресу стану Параметри Очікування. Виводити Прогрес Виконання = Істина;

&НаСервері Функція ВиконатиФоновеЗавданняНаСервері() СтруктураПараметрів = Новий Структура;

ПараметриВиконання = Тривалі Операції.ПараметриВиконанняВФоне(УнікальнийІдентифікатор);

ПараметриВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = "Найменування фонового завдання""); Тривала Операція = Тривалі Операції.Повернення Тривала Операція; КінецьФункції

Повідомлення про прогрес

У самій процедурі тривалої операції

Ім'яМодуля.Ім'яЕкспортноїПроцедури

необхідно повідомляти про прогрес виконання та опис поточної дії.

Дані повідомлення збирає батьківський сеанс та виводить у форму очікування. Процедура Ім'яЕкспортноїПроцедури(СтруктураПараметрів, АдресаРезультату) Експорт //... Тривалі Операції.ПовідомитиПрогрес(Окр(ПроцентВиконання, 0), Опис);".

//... КінецьПроцедури

Процедура обробки результату

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

У разі успішного виконання тривалої операції, результат перебуватиме у тимчасовому сховищі, що знаходиться за адресою "

  1. Результат.АдресРезультату
  2. &НаКлієнті Процедура ВиконатиПроцедуруФоновоВиконано(Результат, ДодатковіПараметри) Експорт Якщо Результат = Невизначено Тоді Повернення;
  3. ІнакшеЯкщо Результат.Статус = "Помилка" Тоді ЗагальногоПризначенняКлієнтСервер.ПовідомитиКористувачу(Результат.ДокладнеПоданняПомилки);

ІнакшеЯкщо Результат.Статус = "Виконано" Тоді // обробляємо результат //ОбробитиРезультат(Результат.АдресРезультату);

КінецьЯкщо; КінецьПроцедури

  1. ПараметриВиконання = Тривалі Операції.ПараметриВиконанняВФоне(УнікальнийІдентифікатор);
  2. Немає наочності індикації прогресу. Виводиться лише текст, хоча можна відображати індикатор. Немає оцінки часу виконання операції, що залишився.".

При натисканні на "Скасувати" не скасовується фонове завдання, а просто закривається форма.

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

ПараметриВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = "Найменування фонового завдання""); Тривала Операція = Тривалі Операції.Повернення Тривала Операція; КінецьФункції Перенести форму "Тривала операціяНова" з обробки, доданої до статті, до загальних форм конфігурації.Версії ПРОФ редакція 3.0 розроблена на технологічній платформі 1С: Підприємство 8.2і повною мірою використовує її можливості, у тому числі можливість використання через Інтернет за допомогою хмарного сервісу. У цьому випадку програма запускається не 1С: Підприємство 8.2жорсткого диска

комп'ютера, а через браузер із сайту, що надає . Користувач, який використовує програму

  • 1С: Бухгалтерія 8 ПРОФ
  • через Інтернет, отримує гарантії дотримання повної конфіденційності та збереження інформації. При цьому користувачі
    • змінити порядок розташування полів,
    • прибрати закладки, що не використовуються.
    Всі зміни, виконані користувачем, можна передати іншим користувачам.
  • Є кнопка «Історія», за допомогою якої можна переглянути список нещодавно створених та редагованих документів.
  • Для доступу до будь-якого журналу, довідника чи документа можна отримати внутрішнє посилання, за яким інший користувач, підключений до тієї ж інформаційної бази у необхідними правами, швидко знайде його.
  • У програмі є розділ «Вибране», в якому можна розміщувати будь-які документи, звіти тощо, що забезпечить швидкий доступ до них за потреби.
  • Також у програмі реалізовано можливість доступу до інформаційної бази лише з правом перегляду даних.

Новий функціонал обліку зарплати та кадрів

У редакції 3.0 програми 1С: Підприємство 8.2змінено порядок введення посади та зарплати співробітника. Тепер ця інформація вводиться безпосередньо у його картці, а не в окремих документах, як у редакції програми 2.0.

Кадрові накази також формуються із картки співробітника.

Нарахування зарплати, обчислення ПДФО та страхових внесків виконується автоматично та відображається в одному документі.

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

Фоновий режим для тривалих операцій

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

І насамкінець хотілося б відзначити, що перейти на редакцію 3.0 користувач може самостійно, скориставшись конфігуратором оновлень. При цьому користувачам редакції 2.0 програми 1С: Бухгалтерія 8 ПРОФ, підписаним на інформаційно-технологічний супровід (), надається можливість оновити конфігурацію до редакції 3.0 безкоштовно.

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

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

Використовувалась БСП версії 2.3. На попередніх версіях це не працює, там немає такого програмного інтерфейсу.

Прогрес виконання

Якщо при виконанні тривалих операцій у фоні вам (або користувачам) не хочеться просто дивитися на гурток, що обертається, а хочеться знати, скільки обробилося даних і що в даний момент обробляється, то в БСП є механізм візуалізації прогресу.

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

У ній проводиться передача виконання на сервер процедуру, що ініціює запуск тривалої операції. Після чого починається очікування завершення тривалої операції.

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

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

&НаКлієнті Процедура ВиконатиПроцедуруФоново(Команда) Тривала Операція = ВиконатиФоновеЗавданняНаСервері();

ПараметриОчікування = Тривалі ОпераціїКлієнт.ПараметриОчікування(ЦейОб'єкт);

// вказуємо необхідність виведення прогресу стану Параметри Очікування. Виводити Прогрес Виконання = Істина;

&НаСервері Функція ВиконатиФоновеЗавданняНаСервері() СтруктураПараметрів = Новий Структура;

ПараметриВиконання = Тривалі Операції.ПараметриВиконанняВФоне(УнікальнийІдентифікатор);

ПараметриВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = "Найменування фонового завдання""); Тривала Операція = Тривалі Операції.Повернення Тривала Операція; КінецьФункції

Повідомлення про прогрес

У самій процедурі тривалої операції

Ім'яМодуля.Ім'яЕкспортноїПроцедури

необхідно повідомляти про прогрес виконання та опис поточної дії.

Дані повідомлення збирає батьківський сеанс та виводить у форму очікування. Процедура Ім'яЕкспортноїПроцедури(СтруктураПараметрів, АдресаРезультату) Експорт //... Тривалі Операції.ПовідомитиПрогрес(Окр(ПроцентВиконання, 0), Опис);".

//... КінецьПроцедури

Процедура обробки результату

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

У разі успішного виконання тривалої операції, результат перебуватиме у тимчасовому сховищі, що знаходиться за адресою "

  1. Результат.АдресРезультату
  2. &НаКлієнті Процедура ВиконатиПроцедуруФоновоВиконано(Результат, ДодатковіПараметри) Експорт Якщо Результат = Невизначено Тоді Повернення;
  3. ІнакшеЯкщо Результат.Статус = "Помилка" Тоді ЗагальногоПризначенняКлієнтСервер.ПовідомитиКористувачу(Результат.ДокладнеПоданняПомилки);

ІнакшеЯкщо Результат.Статус = "Виконано" Тоді // обробляємо результат //ОбробитиРезультат(Результат.АдресРезультату);

КінецьЯкщо; КінецьПроцедури

  1. ПараметриВиконання = Тривалі Операції.ПараметриВиконанняВФоне(УнікальнийІдентифікатор);
  2. Немає наочності індикації прогресу. Виводиться лише текст, хоча можна відображати індикатор. Немає оцінки часу виконання операції, що залишився.".

При натисканні на "Скасувати" не скасовується фонове завдання, а просто закривається форма.

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