Приклади скриптів на OneScript
Не претендую на якусь унікальність, але сподіваюся, мій досвід виявиться корисним. Для запуску скриптів використовується http://oscript.io/.
Автоматичне оновлення інформаційних баз
Процес оновлення інформаційних баз – досить довге та трудомістке заняття. Навіть якщо на обслуговуванні знаходяться вкрай невелика кількість баз - "ручний" порядок оновлення, з необхідністю відкривати кожну інформаційну базу, перетворюється на тортури. Цей скрипт дозволяє автоматизувати процес оновлення. Для роботи скрипта необхідно вказати логін та пароль для завантаження оновлень, параметри конфігурацій та власне параметри доступу до інформаційних баз.
На основі скрипту створено бібліотеку https://github.com/BlackDrak0n/oscript-AutoUpdateIB. На сторінці проекту доступна вичерпна дукументація щодо процедур та функцій. Настійно рекомендую до завантаження та підключення до OneScript.
При написанні скрипта використовувався код із //infostart.ru/public/519499/.
Порядок дій скрипту:
- Отримує настройки оновлення конфігурації.
- Завантажує файл зі списком оновлень із сервера перевірки оновлень для конфігурації.
- Аналізує отриманий файл, збирає інформацію про версіях.
- Отримує поточну версію та ознаку зміни конфігурації;
- Шукає в каталозі файлів оновлень доступну версію для оновлення;
- Якщо доступних для оновлення версій не знайдено – завантажує оновлення із сервера оновлень;
- Завершує роботу користувачів та встановлює заборону підключення нових з'єднань (тільки для конфігурацій на БСП);
- Створює резервну копію інформаційної бази;
- Виконує відкладені обробники оновлення (лише конфігурацій на БСП);
- Завантажує файлпоновлення в інформаційну базу;
- Оновлює зміни інформаційної бази;
- Виконує тестування та виправлення;
- приймає оновлення в інформаційній базі (тільки для конфігурацій на БСП);
- Повторює все з п.4, поки не оновиться на останню доступну версію;
- У разі помилки намагається відновитись з резервної копії (для файлових баз);
- Дозволяє підключення нових з'єднань (лише для конфігурацій на БСП).
Очищення кешу 1С
Насправді часто зустрічаються проблеми викликані переповненням чи помилками в кеші. Вирішення цих проблем досить просте - по новій додати інформаційну базу до списку або очистити кеш. Однак пояснити клієнтам не те що місцезнаходження кеша, але й те, як відкрити приховану папку іноді вкрай проблематично. Цей скрипт повністю вирішує проблему видаляючи непотрібний кеш без зайвих питань та налаштувань.
Порядок дій скрипту:
- Отримує шлях до каталогу користувача;
- Перевіряє наявність каталогу з кешем 1С;
- Видаляє кеш з урахуванням прописаних винятків.
Перенесення файлів
Усі ми створюємо бекапи наших інформаційних баз. Хтось робить це щодня, хтось – рідше. Звичайно ми зберігаємо деяку їх кількість для можливості відкату на певний момент часу. Каталоги з бекапами за годину займають місця в десятки разів більше, ніж самі інформаційні бази. А уявіть, що ми маємо справу з десятком або сотнею баз. У спробах зменшити розмір бекапів файлових інформаційних баз було помічено що в каталоги з базою користувачі часто кидаю сторонні файли - вивантаження, різні архіви і т.п. Для викорінення подібної практики було прийнято рішення переміщати все сміття з каталогів зінформаційними базами в окремий спеціально створений каталог. У скрипті необхідно вказати каталоги пошуку та каталог для "сміття", окремо задаються маски для пошуку файлів, що переміщуються.
Порядок дій скрипту:
- По масці знаходить файл для перенесення;
- Дублює шлях до файлу в каталозі зі "сміттям";
- Якщо файл з такою ж назвою вже є в каталозі - додає до імені поточний час;
- Переносить файл.