Друк (Ctrl+P)

Ця стаття містить опис деяких елементів адміністрування системи «1С:Підприємство», характерних для клієнт-серверного варіанта роботи системи з Microsoft SQL Server 2012:

Створення резервної копії у клієнт-серверному варіанті

Адміністрація кластера серверів

Консоль або утиліта адміністрування кластерів 1cv8 servers.msc являє собою модуль MMC (Microsoft Management Console), що підключається, і може бути використана на комп'ютерах, на яких встановлено відповідне програмне забезпечення. За промовчанням встановлюється в папці C:\Program Files (x86)\1cv8\common

Утиліта адміністрування кластерівпризначена для вирішення наступних завдань:

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

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

Реєстрація нової інформаційної бази

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

Внаслідок виконання команди на екрані з'явиться діалог властивостей інформаційної бази.

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

Тип СУБД: Microsoft SQL Server

Сервер баз даних: ім'я сервера. Може задаватися іменем комп'ютера (якщо на комп'ютері встановлено один екземпляр сервера) або ім'ям конкретного екземпляра (якщо встановлено кілька екземплярів). Наприклад, Server/instance. Якщо сервер «1С:Підприємства» і Microsoft SQL Server розташовані одному комп'ютері, й у Microsoft SQL Server встановлений Native Client (власний клієнт), є можливість використовувати зв'язку серверів протокол SHARED MEMORY. Для цього перед ім'ям Microsoft SQL Server необхідно вказати префікс lpc:. У цьому випадку ім'я сервера СУБД буде виглядати так: lpc:Server/instance

Ім'я бази даних: першим символом імені бази даних може бути буква латинського алфавіту, а також символ _. Наступними символами можуть бути літери латинського алфавіту, цифри, а також символи "_", "$". Довжина імені обмежена 63 символами. В імені неприпустимі прогалини. Ім'я може бути зарезервованим словом мови запитів сервера баз даних. В імені бази даних не можна використовувати такі символи: «<», «>», «#», «%», «”», «(», «)», «[»,«]»,«|»,«\»,«^»,«`», а також символи з кодами від 0 до 31 та 127

Користувач бази даних: ім'я користувача сервера баз даних, від якого буде здійснюватися доступ до бази даних. Істотно, щоб зазначений користувач був або адміністратором сервера баз даних (sa), або власником бази даних (якщо вона вже існує), щоб безперешкодно модифікувати структуру обраної бази даних. В останньому випадку цей користувач повинен мати доступ до читання до бази даних master і повний доступ до бази даних tempdb. Крім перерахованого, вказаний користувач має бути членом фіксованої серверної ролі processadmin або sysadmin.

Пароль користувача: пароль користувача, від якого буде виконуватися доступ до бази даних.

Зміщення дат– 0 або 2000. Даний параметр визначає кількість років, що додаватиметься до дат при їх збереженні в базі даних Microsoft SQL Server і відніматиметься під час їх вилучення. Наявність цього параметра визначається особливостями зберігання дат у Microsoft SQL Server. Тип DATETIME, що використовується в Microsoft SQL Server, дозволяє зберігати дати в діапазоні з 1 січня 1753 по 31 грудня 9999 року. І якщо при роботі з інформаційною базою може виникнути необхідність зберігання дат, що передують нижній межі даного діапазону, то як значення параметра слід вибрати 2000. Якщо ж такі дати зустрічатися не будуть, то як зміщення дат можна вибрати 0. Після створення інформаційної бази значення даного параметра неможе бути змінено.

УВАГА!Якщо в прикладне рішеннявикористовуються регістри накопичення або регістри бухгалтерії, то в полі Зміщення дат необхідно встановити значення 2000. Якщо при створенні бази даних в це поле було введено значення 0, слід вивантажити інформаційну базу в файл, заново створити базу даних із зазначенням у полі Зміщення дат значення 2000 та виконати завантаження інформаційної бази

УВАГА!Імена інформаційних баз мають бути унікальними в межах одного кластера. У процесі реєстрації нової інформаційної бази система перевіряє, чи існує на вказаному сервері баз даних база з такою назвою. Якщо база існує, буде встановлено з'єднання з нею. Якщо існуюча база даних містить дані інформаційної бази «1С:Підприємства», то буде встановлено зв'язок з вже існуючою інформаційною базою. А якщо база даних не містить даних інформаційної бази, то в ній буде проініціалізовано нову інформаційну базу «1С:Підприємства».

Помилка під час операції з інформаційною базою

Під час підключення до БД SQL можуть вилітати різні помилки створення або з'єднання. Наприклад, якщо виходить така помилка:

У цьому випадку була спроба створення інформаційної бази і сервер підприємства не міг встановити з'єднатися з Microsoft SQL Server. Треба перевірити:

  • Параметри аутентифікації користувача (Ім'я пароль та права на створення БД);
  • Чи дотримується ім'я бази даних правила імен;
  • Чи правильно задано ім'я сервера бази даних;
  • Відповідає тип автентифікації користувача. Можливо, користувач увійшов під ім'ям користувача SQL Server, а в налаштуваннях SQL стоїть не той тип аутентифікації користувача.

Після того, як вийшла нова платформа «1С» версія 8.3.5 і стала більш функціональною конфігурація «1С:Бухгалтерія 8.3» (редакція 3.0), розробники продовжували працювати над покращенням не тільки функціонала користувача, а й адміністративного, у зв'язку з чим в останніх Релізи програми з'явилися зміни в блоці адміністрування системи та користувачів.

У статті ми розглянемо основні зміни у блоці адміністрування, створені задля підвищення ефективності роботи з програмним рішенням.

Організація розділів меню адміністрування

Звернімося до розділу "Адміністрування". У ньому об'єкти розташовані за групами:

  • Налаштування програми
  • Сервіс
  • Інформація

Набір і склад кожної групи може відрізнятися у різних користувачів, оскільки інтерфейс «Таксі» підлягає простому настроюванню і в початковій поставці конфігурації є лише ті елементи меню, які передбачені за замовчуванням. Щоб додати нову позицію, потрібно в розділі "Адміністрування" натиснути кнопку "Налаштування навігації", вона розташована у верхньому правому кутку (під панеллю інструментів).

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


У системі також є нові звіти для можливості адміністрування програми. Список цих звітів можна відкрити, натиснувши на рядок «Звіти адміністратора» у блоці «Звіти та обробки»

Перед Вами відкриється вікно зі списком основних звітів, призначених для аналізу активності користувачів та контролю журналу, де реєструються дії користувачів


Журнал реєстрації містить критичні записи, які могли призвести до помилок у системі. Для того, щоб їх переглянути, Вам потрібно буде сформувати звіт «Контроль журналу реєстрації»


Для моніторингу активності користувачів щодо їхньої роботи з об'єктами системи потрібно буде зробити формування звіту «Аналіз активності користувачів»

Резервне копіювання та відновлення

Серед «нововведень» адміністрування в «1С: Бухгалтерія 8.3» слід відзначити можливості відновлення копій системи та налаштування резервного копіювання. Перейти до них можна через групу «Підтримка та обслуговування», в ній дані налаштування знаходяться в блоці «резервне копіювання та відновлення»

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

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

Оцінка продуктивності

Щоб виконати аналіз та оцінку продуктивності системи, нам потрібно встановити галочку навпроти «Оцінка продуктивності» у розділі підтримки та обслуговування, а потім перейти до налаштувань розрахунку показників

Отже, ми ознайомилися з основними змінами, реалізованими в блоці з адміністрування системи «1С:Бухгалетрія 8.3» (редакція 3.0) на базі інтерфейсу «Таксі».

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

  • Файловий - 1С встановлюється лише з один комп'ютер, працювати з базами даних неспроможна жоден менеджер. Цей варіант підходить для малих компаній із невеликим торговим оборотом.
  • Клієнт-версія У роботі з 1С задіяна система користувачів, бази даних розташовані одному комп'ютері, з яким пов'язані всі інші. Варіант роботи має трирівневу архітектуру, що складається з клієнтської програми, сервера 1С Підприємства та баз даних у форматі MS SQL Server або PostgreSQL. У цьому випадку застосовується адміністрування серверів 1С, щоб забезпечити правильне налаштування.

Консоль адміністрування серверів 1С:основні функції

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

За допомогою консолі для адміністрування сервера 1С Підприємства можна вирішити такі завдання:

  • Вносити зміну у функціонування сервера, створювати нові, видаляти непотрібні. Там можна розміщувати бази даних, визначати взаємодія між різними користувачами.
  • Створювати адміністраторів. Це користувачі, які мають права доступу для внесення змін до серверів. Кожен адміністратор може керувати лише закріпленим сервером. Якщо не додати жодного адміністратора, адмініструванням сервера 1С може займатися будь-який зареєстрований користувач.
  • Створення робочих процесів кластера 1С. Додавання робочих процесів дозволяє впливати на продуктивність конкретного користувача системі. У властивостях можна встановити максимальне значення продуктивності (до 1000). Сеанси, що запускаються, приєднуються до процесу з максимальною продуктивністю. Систематично система самостійно проводить аналіз та перерозподіляє ці значення для оптимізації.
  • Створення баз даних у 1С Підприємстві. Можна встановити можливість підключення до неї користувачів або дозволити роботу лише локально.
  • Примусове завершення сеансів. Іноді повідомлення сервера інформує про те, що під вказаним ім'ям користувача вже виконується робота. Система не завжди самостійно припиняє цей процес, тому адміністрування дозволяє примусово завершити сеанс будь-якого користувача.

Як розпочати роботу в 1С?

Клієнтська програма 1С Підприємства - це порожня платформа. Щоб вона почала функціонувати, необхідно виконати кілька послідовних дій:

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

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

Адміністраціяпрофесіоналами: основні переваги

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

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

Адміністрація платформи 1С, що виконується професійними фахівцями, має ряд переваг:

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

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

  • Tutorial

Дисклеймер


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


Передмова


Спочатку я просто хотів написати невелику статтю про те, як ми розносили бази по службам, але в ході поглиблення в цей процес ми додавали різні штуки (моніторинг служб, потім моніторинг користувачів всередині 1С, потім прикрутили заббікс, і, нарешті, прийшли до CI /CD з урахуванням 1С). У результаті я розумію, що пхати це в одну статтю буде занадто - вирішив розділити на кілька. Ну а назва навіяна циклом статей "мережі для найменших", які принесли мені багато приємних хвилин і до яких я надсилаю всіх, хто "хоче вивчити мережі". Отже, ми приступаємо!


Коли ти визнаєш проблему, то ти на половину вже вилікувався (с) один знайомий психіатр


У цій статті я хочу поділитись своїм досвідом адміністрування великої кількості 1С у корпоративному секторі. Бази всі різні, є технологія, є тестові, все як у всіх. Але їх досить багато. І все було добре, але певного моменту проводити якісь адмінські роботи стало вкрай важко та ризиковано.


Які у нас були складнощі:

  1. Підвисла база тягла за собою перезапуск служби, а значить страждали безневинні (користувачі інших баз)
  2. Було важко зрозуміти хто сьогодні "герой дня" - яка база зайняла всі ресурси
  3. Оновлення релізів – оновлення однієї тягнуло за собою автоматичне оновлення всіх баз на цій службі
  4. Ручне підключення баз користувачам, ручна зміна у разі переїздів
  5. Моніторинг
    І тільки зараз я розумію, що це була тільки вершина айсберга.

Акт перший, дія нульова

Невелике відволікання на основні постулати, усвідомлення яких далося великою кров'ю та болем.

  1. Старі версії 1С (до 8.3.11+) мають просідання за продуктивністю при роботі у віртуалізованому середовищі. (Джерело - Гільов та власні тести)
  2. Кластер є, але з ним все украй не просто. Можливо його доопрацюють потім, але поки що він в основному для галочки. (джерело - власний досвід)
  3. При виборі процесора дивіться лише на частоту. Процесор у 6 ядер по 3,4 Ггц порве у шматки процесор на 20 ядер по 2 Ггц. Проблема в тому, що 1С взагалі нічого не знає про паралельні обчислення. По суті це працює так - у нас є певна кількість воркерів для кожної служби, їх розкидають по процесорах, і якщо в якомусь воркері користувач запустив якийсь важкий звіт, то в системі буде завантажено тільки одне ядро ​​процесора. Саме те, на якому працює воркер із запущеним завданням… Для БД ситуація, до речі, рівно зворотна. (джерело - Гільов, власний досвід, досвід колег)
  4. Не використовуйте логи в "новому" форматі (запис у SQLLite) - ви дуже швидко зіткнетеся з тим, що продуктивність цього рішення ще гірша за файловий варіант. (Джерело – власний досвід, досвід колег).
    За підказками з коментарів, є варіант винести логи на окремий інстанс.
    У 8.3.12 обіцяли логи в нормальний куль!
  5. 1С дуже не любить IPv6. На всіх серверах з 1С краще відразу знижувати пріоритет IPv6 до мінімуму. (Джерело - Гільов, власний досвід)
  6. Використовуйте для віртуальних серверів віртуальні картки E1000. З рештою проблема продуктивності (Джерело - Гільов, але на власному досвіді не підтвердилося, хоча особливо і не тестували)
  7. Обслуговування баз дає хороший приріст продуктивності, особливо періодичний перерахунок підсумків, а також обслуговування індексів SQL (Джерело - власний досвід, Гілев)
  8. Пошук причин падіння 1С схожий на поїдання неочищеного кактуса. З'ясувати щось до ладу можна тільки через біль, приниження та страждання. (Джерело - власний досвід)
  9. Немає жодного офіційного образу під жодний гіпервізор. Про докер я взагалі мовчу. (Джерело - сайт 1С)
  10. Програмна ліцензія для сервера прив'язується до - сюрприз, сюрприз - серійному номеру процесора (і ще величезній кількості параметрів сервера). В епоху повсюдної віртуалізації хід приголомшливий. Пояснюю – активували сервер, переїхали на іншу ноду, перезавантажили машину – 1С не запуститися. Розчехляйте новий активаційний код. (Джерело - власний досвід, балакуча технічна підтримка 1С =))
  11. 1С – це облікова система, а не звітна. Хочете багато нормальних жирних звітів і швидко – виводьте це за рамки 1С. (Джерело - власний досвід)
  12. У 1С є дві незаперечні переваги, за рахунок яких вона процвітатиме ще довго:
    • вартість самого продукту/розробників
    • швидкість розробки
      і, на жаль, для російського бізнесу вони є першочерговими. А найчастіше й єдиними, на що взагалі дивляться. (Джерело - сумна реальність)
  13. Не використовуйте файлову кулю як місце під сховище конфігурацій 1С. Лише службу. Інакше мати з боку розробки про чорт знає коли сховище стануть вашим незмінним супутником по життю. (Джерело - власний досвід, досвід колег)

Акт перший, дія перша

Перша коротка сценказ корпоративного життя


На сцені - Адмін (А), програміст 1С (П1С) та представник бізнесу (ПБ)
ПБ – У нас повільно працює програма!
А – у мене в системі все добре!
П1С – я все написав правильно, у мене на комп'ютері все працює швидко!
ПБ (несміливо і розгублено) - але ж вона довго…
А і П1С хором – у нас все добре, проблема на вашому боці!


Проблеми завжди трапляються невчасно (с) (5-річний філософ)


І ось одного чудового сонячного ранку (насправді це була глибока зимова ніч) ми зрозуміли що завтра треба запустити нову базу. Завтра наставав той прекрасний день, який уже багато разів описувався тисячами авторів та ім'я йому – легіон! Тьху, вибачте, занесло. Ім'я цього дня був дедлайном. Година ночі, завтра на 200 комп'ютерах повинна запуститися нова база. "Та не проблема, у нас же всі комп'ютери в домені! Тепер швиденько зробимо логін-скрипт і справа в капелюсі!" подумаєте ви. І матимете рацію - так само подумали і ми. І зробили. Тільки, як зазвичай це буває, погоріли на дрібниці – я в логон-скрипті я прописав %filename%. batа колега виклав %filename%. cmd.


Ну і ясна річ з ранку хелпдеск побіг робити все руками, а мені було дуже соромно за такий тупий фейл. Вибачався перед хлопцями тортиком.


Але думка автоматизації цього процесу у мене в голові засіла дуже міцно і став навіть вимальовуватись план впровадження.


У результаті ми дійшли наступної ідеології:

  • Все лунає через AD - створюються групи виду 1cbases-%версія платформи%-%ім'я бази% і туди силами хелпдеста додаються користувачі, яким потрібна база.
    • одна група – одна база
    • 1cbases - це префікс за яким зручно шукати групи
    • версія платформи 81, 82 та 83 (реліз не принциповий)
    • назва бази відповідає імені файлу з налаштуваннями
  • виділяється загальна файлова куля де викладаються всі файли з налаштуванням підключення до баз (одна база - один файл)
  • при блокуванні комп'ютера викликається скрипт, який зчитує групи користувача та на їх підставі додає користувачам потрібні бази 1С

Як ми це робили:

  1. Через групові політики додається нове завдання планувальник (завдання планувальника прописати користувачеві шлях до файлу підключення бази):
    • запускати від імені користувача
    • подія - розблокування комп'ютера
    • дія - запуск нашого скрипту
  2. Створюємо потрібні групи в АТ та заповнюємо їх користувачами
  3. Створюємо необхідні файли для запуску самих 1С. Тут зупинюся трохи докладніше. Спочатку ми довго мучили інтернет своїми запитами та знайшли повний опис структури файлів *.v8i. Але потім знайшовся спосіб простіший і геніальніший.
    • запускаємо 1С
    • настроюємо підключення до бази
    • перевіряємо що все працює
    • клацаємо правою клавішею за назвою бази та вибираємо пункт - "Зберегти посилання у файл"


Код скрипту:

#Першим кроком створюємо місце для логів if (Test-Path "$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt") ( Remove-Item "$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt" -Force New-Item "$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt" -ItemType file -Force -ErrorAction SilentlyContinue; Add-Content -Value ("Дата останнього запуску: " + (Get-Date -Format F)) -Path "$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt"; if ((gwmi Win32_OperatingSystem | select Caption, CSDVersion) -notlike "*server*") # заборона запуску на серверних ОС (Add-Content -Value "(!LANG: Операційна системарозпізнана як клієнтська" -Path "C:\!script_report\add_1c_bases_report.txt"; if (!(Test-Path "$env:APPDATA\1C\1CEstart\ibases.v8i")) #якщо немає цього файлу 1С підтягує дані з списку баз 8.1 та ігнорує список баз 8.2 ( New-Item "$env:APPDATA\1C\1CEstart\ibases.v8i" -ItemType file -Force; # Створюємо цей файл якщо його немає $env:APPDATA\1C\1CEstart\ibases.v8i не знайдено, його створили" -Path "C:\!script_report\add_1c_bases_report.txt"; } if (Test-Path "$env:APPDATA\1C\1CEstart\1CEStart.cfg") { Remove-Item "$env:APPDATA\1C\1CEstart\1CEStart.cfg" -Force #-ErrorAction SilentlyContinue #удаление старого конфигурационного файла для 8.1 } New-Item "$env:APPDATA\1C\1CEstart\1CEStart.cfg" -ItemType file -Force #создание нового конфигурационного файла для 8.2 $GroupList = ("samaccountname=$($env:USERNAME)").Findone().Properties.memberof -replace "^CN=([^,]+).+$","$1" # Создание списка групп пользователя foreach ($Group in $GroupList) # генерация списка !} загальних базна основі імені групи ( if ($Group.Length -gt 6) # Перевірка довжини імені групи ( If ($Group.Substring(0,7) -eq "1cbases")) # обчислення групи, що вказує на базу 1С ( Switch ($Group) .Substring(8,2)) # вибір платформи 8.1 або 8.2 ( "81" (Add-Content "$env:APPDATA\1C\1Cv81\ibases.v8l" -Value ("\\gold585.int\TechFiles\CommonBases\) " + $Group.Substring(11) +".v8i")) # Створення рядка з файлу зі списком загальних баз для 8.1 "82" (Add-Content "$env:APPDATA\1C\1CEstart\1CEStart.cfg" -Value ("CommonInfoBases=\\gold585.int\TechFiles\CommonBases\" + $Group.Substring(11) +".v8i")) # Створення рядка з файлу зі списком загальних баз для 8.2 "83" (Add-Content "$ env:APPDATA\1C\1CEstart\1CEStart.cfg" -Value ("CommonInfoBases=\gold585.int\TechFiles\CommonBases\" + $Group.Substring(11) +".v8i")) # Створення рядка з файлу зі списком загальних баз для 8.3) Add-Content -Value ("Користувач належить груп $Group") -Path "C:\!script_report\add_1c_bases_report.txt"; Add-Content -Value ("Додано значення: CommonInfoBases=\\gold585.int\TechFiles\CommonBases\" + $Group.Substring(11) +".v8i") -Path "C:\!script_report\add_1c_bases_report.txt"; ) ) ) ) else ( Add-Content -Value "(!LANG:Операційна система розпізнана як серверна" -Path "C:\!script_report\add_1c_bases_report.txt"; }!}


Що отримали:

  1. Додавання баз тепер не було морокою - просто робили групу, додавали файл з налаштуваннями - далі все відбувалося автоматично
  2. Могли спокійно переносити бази куди завгодно, просто змінюючи конфігурацію у файлі з налаштуваннями підключення до бази (як показала практика – дуже зручно)
  3. Зберегли взуття хелпдеску

Акт перший, дія друга

Друга коротка сценка із корпоративного життя


На сцені – Адмін (А), програміст 1С (П1С), розмова після відходу представника бізнесу
А - Ваш цей 1С - $#% але! Скільки можна вирішувати залізом проблеми архітектури та рівня розробників!
П1С - так це ваші сервери # [email protected]але! У мене на локальній файловій базі все літає! Налаштуйте вже ваше господарство за нормальним!
Сперечальники віддаляються зі сцени сипу взаємними звинуваченнями, опускається завіса, світло гасне.


І з цього боку ні трохи не краще… (с) сумний віслюк Іа-Іа у свій власний день народження


Ось уявіть собі - сидите ви в зручному кріслі, в одній руці чашка смачного чаю, в іншій пишучи жаром і свіжістю булочка з кулінарії найближчого магазину, за вікном приємно пахне навесні ... І це, звичайно ж, час для дзвінка з проблемою! Колега - Байконур, у нас % @ па!


Я - я так розумію, що стадію Х'юстона з проблемами ми вже успішно пролетіли?
Колега – так. База "ім'я бази" підвисла, взагалі не відповідає, ТОПи вже рвуть і мріють. 3 рази мені вже дзвонили. Потрібно перезавантажувати службу.
Я – так там же ще пачка баз на цій службі!
Колега - так, тому друга половина ТОПів теж рве і мечет, що їх відключать.


У результаті, звичайно, всі погодили, перезапустили, але осад залишився.


Ідеологія:

  1. У продуктовому середовищі ми повинні дотримуватись правила - одна база - одна служба з рознесенням по портах
  2. Запускатися служби мають виключно з-під доменних обліку. Одна служба – одне облік. Це зручно для роздачі прав на кулі, доступ до вилиць та інше. Так само, якщо у вас впроваджено RBAC, то ви можете дуже оперативно подивитися куди має доступ конкретний екземпляр 1С
  3. Логи потрібно винести на окремий диск і включити на ці папки стиснення (при розбитті днями це дуже економить місце і прискорює (незначно) пошук по логах)
  4. Кожній службі видається або в DNS для того, щоб відв'язати розробку від ip та/або dns сервера (у цьому випадку розробка взагалі не хвилюється на предмет того, де фактично знаходиться сервер - фізика, віртуальна машина в приватній хмарі або взагалі в публічній хмарі)
  5. На кожну службу ми виділяємо 500 портів для з'єднань користувача (наше внутрішнє рішення)

Як ми це робили (для нового сервера. для вже існуючої частини кроків не актуальні):

  1. Створюються обліки під кожну службу
  2. На машині, де вони працюватимуть, їм видаються права на "запуск як службі"
  3. Ставитися MS офіс, обов'язково з активацією по MAK-ключу
  4. Ставиться sqlncli – утиліта з набору MS SQL Native Client. на даний моментвище 2012 року не з'являлося
  5. Створюється папка C:\Windows\SysWOW64\config\systemprofile\Desktop - інакше є проблеми з вивантаженнями у Word/Excel
  6. Для Windows 2016 та 1С 8.1 потрібно скопіювати стару версію dll (У папці C:\Program Files\Common Files\System\Ole DB треба замінити два файли sqloledb.dll і sqloledb.rll взятих зі старих серверів)
  7. Ставляться додаткові драйвери ODBC, якщо потрібно підключитися до MySQL/PostgreSQL

Налаштування папки для служби та логів:

  1. Створюється папка на окремому диску називається у форматі 1C Server%basename% (у стандартному випадку це робить сама служба, бо вона має в налаштуваннях запуску шлях до логів)
  2. Якщо всередині каталогу щойно створеної служби переносяться дані з іншого каталогу (іншої служби, іншого сервера), необхідно замінити власників (інакше служба не отримає до них доступу) із заміною власника підконтейнерів
  3. Власником папки робиться обліковий записслужби

Опис налаштування служби

@echo off chcp 1251 установка кодування set base=%base_name% назва бази без пробілів англійською – для каталогу з логами set dsce=%base name% назва бази з пробілами англійською – для імені служби set dscr=%Ім'я бази% назва бази російською – для подання служби set sver=8.3 коротка версія – для імені та подання служби set fver=1cv8\8.3.9.2170 частина шляху до потрібної нам версії платформи 1С set port=8040 керуючий порт set regp=8041 основний порт set :8491 діапазон портів для служби set name="1C:Enterprise %sver% Server Agent (x86-64) %dsce%" ім'я служби (для реєстру) за аналогією з типовими, тільки додається назва бази для унікальності назв set bpth=\" C:\Program Files\%fver%\bin\ragent.exe\" -srvc -agent шлях до виконуваного файлу для запуску служби set logs=D:\1C_Server_%base% каталог для логів set user="%login%@% domain_name%" такий формат дозволяє використовувати логіни довші 20 символів пароль ніде не вказував при створенні, тому що потім все одно але треба його заново вказати, тільки тоді користувач має право на запуск служб; set view="Агент сервера 1С:Підприємства %sver% (x86-64) %dscr%" представлення служби в оснастці sc create %name% binPath= "%bpth% -regport %regp% -port %port% -range %rnge % -d \"%logs%\"" type= "own" start= "auto" error= "severe" depend= "Tcpip/Dnscache/lanmanworkstation/lanmanserver" obj= %user%DisplayName= %view% тут: type = "own" - тип служби, які бувають ще сам подивися start= "auto" - автоматичний запуск error= "severe" - не пам'ятаю що означає, але встановлює правильне значення ключа в реєстрі /lanmanserver" – залежності (на четвертій вкладці вказані, вручну не налаштовуються) sc description %name% %view% задає подання в оснастці, відразу при створенні не вказується sc failure %name% reset= 0 actions= "restart/0" налаштування на вкладці відновлення – перезапуск у всіх випадках через 0 хвилин; скидання лічильника через 0 днів. =8040 set regp=8041 set rnge=8060:8491 set name="1C:Enterprise %sver% Server Agent (x86-64) %dsce%" set bpth=\"C:\Program Files\%fver%\bin\ ragent.exe\" -srvc -agent set logs=D:\1C_Server_%base% set user="%login%@domain.company" set view="Агент сервера 1С:Підприємства %sver% (x86-64) %dscr %" sc create %name% binPath= "%bpth% -regport %regp% -port %port% -range %rnge% -d \"%logs%\"" type= "own" start= "auto" error= "severe" depend="Tcpip/Dnscache/lanmanworkstation/lanmanserver" obj=%user% DisplayName=%view%s description %name%%view%sc failure%name% reset=0 actions=


  1. Для того, щоб у службах не було кроказябр
    • у cmd ввести команду chcp 1251
    • файл треба зберегти в ANSI кодуванні
  2. Обов'язково треба перевірити на відсутність дублюючих ключів у рядку запуску – служба з ними не стартує!
  3. Щоб видалити службу, можна скористатися командою - sc delete «Ім'я задане в змінній name»
  4. Додати порти, що використовуються 1С в дозволи в firewall
  5. Потрібен лише один фізичний ключ на сервер - всі служби активуватимуться ним

Після проведення всіх заходів ми прийшли до:

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

У наступних статтях я планую розповісти (якщо ця стаття народу зайде):

  • як ми перевели авторизацію до MSSQL на kerberos і взагалі оптимізували доступи
  • як ми зробили моніторинг служб - хто скільки зайняв ресурсів
  • як ми зробили моніторинг усередині служби 1С виявлення блокувань користувачами швидше, ніж вони зателефонують
  • як ми намагалися впровадити CI для 1С і що з цього вийшло

UPD. Доповнив дещо за коментарями

Теги: Додати теги