Как приготовить сотни баз 1С и не сойти с ума
Кнопка — не самая обычная бухгалтерская компания, но бухгалтерию мы ведём в 1С, как и большинство отечественных коллег. На текущий момент у нас на сервере проживают сотни баз, поэтому нам пришлось научиться быстро и качественно всё это богатство администрировать. Если вы — бухгалтерская компания, хостер с сервисом 1С, или у вас просто взялась куча 1Сок, вы знаете, как это трудно. Мы любим приносить пользу, поэтому поделимся опытом, практическими советами и инсайтами, которые успели нас посетить за бессчётное количество ночей, праздничных и выходных дней, проведенных за обновлением и актуализацией всего нашего хозяйства.
Мы не продаём 1С, а потому рассказ будет без купюр, цензуры, а главное — без маркетингового булшита. Бонустреком, по ходу поста можно найти несколько полезных скриптов и советов для тех у кого действительно много баз 1С. Итак, почему у нас вообще так много баз? В действительности, прямо сейчас мы исследуем технологию разделения данных, но использовать её ещё не начали, поэтому для каждого бизнеса, который мы обслуживаем, вынуждены создавать отдельную базу (и часто не одну).
Невероятный путь от облачной 1С до собственного кластера серверовВ начале нашего пути мы пользовались облачным : этот сервис в меру удобен, насколько может быть удобно использовать настольное приложение через браузер. Однако, довольно быстро мы накопили полсотни баз и администрировать их через веб стало невыносимо — начал тормозить, плюс появилась необходимость программно интегрировать 1С с нашими внутренними инструментами, чего Фреш категорически не умеет. Пришлось мигрировать, выгружая все данные из облака. Благо сделать это было нетрудно («Выгрузить данные в локальную версию» → «Загрузить данные из сервиса»).
Вторым важным этапом эволюции стало использование , и нас, опять же, всё устраивало, пока баз не стало больше сотни. Обновления конфигураций, как и публикация с добавлением пользователей, происходили через письмо в техподдержку. В принципе, всё оперативно, но не интерактивно.
Особые неудобства доставляла невозможность запуска. без предварительного согласования (добавления в разрешающие политики домена), а нам, напомню, была необходима интеграция. Также были проблемы с тем, что, по непонятным причинам, СХД провайдера неправильно синхронизировало ноды на блочном уровне. Так мы потеряли несколько важных баз, которые пришлось долго и мучительно восстанавливать. С системами хранения часто всё непросто и нечестно.
После всех приключений мы решили мигрировать на свой VPS. Мощности современных виртуальных серверов позволяют спокойно содержать пару сотен , без труда допуская к ним пару десятков бухгалтеров. Провайдеры VPS, зачастую, не отвечают за лицензирование программных продуктов, которые вы запускаете внутри, поэтому нужно озаботиться приобретением лицензии на пользователей и покупкой конфигурации.
Не будем забывать, что даже самый лучший VPS (выбранный с использованием вот этого клёвого сервиса) не сравнится с тёплым и ламповым собственным сервером. Мы решили мигрировать в третий раз.
ИтогоСейчас, имея сотни баз пройдя путь от , через боль, миграции, неконсистентность баз, некомпетентность техподдержки, проблемы с синхронизацией нод у хостера, публикацию через веб, экспорты, импорты, резервные копии и массу восстановлений, мы пришли к своему кластеру серверов.
- думайте о лицензиях;
- если вам нужна интеграция — используйте выделенный сервер или VPS;
- позаботьтесь о хранилище или тщательно тестируйте его у вашего провайдера;
- резервные копии — это правда важно;
- сразу откажитесь от , если нагрузка будет серьёзной и важна стабильность.
Мы разворачиваем все наши базы из заранее подготовленного шаблона (с загруженными обработками, справочниками, настроенной подпиской ИТС и резервным копированием).
Для файлового варианта:
Для SQL варианта:
Как создать или удалить пользователя сразу в сотне баз?Управление пользователями всегда было больным местом 1С. В ранних редакциях для этого требовалось получить монопольный доступ к файлам базы, позднее добавили возможность добавления на лету, но только через конфигуратор, сейчас (в последних редакциях бухгалтерии или торговли) пользователя можно создать прямо из основного режима работы, через инструменты администрирования. Но сделать это руками в случае с сотнями баз уже нереально, поэтому мы научились добавлять пользователей программно. На помощь приходит COM. Мы устанавливаем внешнее соединение V8.COMConnector и передаем в базы всю необходимую информацию. Добавляем пользователей с правами доступа, заполняем справочники или создаём документы. Посмотреть как.
Как подключить пользователю сразу сотню баз?Для добавления сразу всех нужных баз в список пользователя мы используем v8i общих баз, размещённые на файловой шаре. Ссылки на эти файлы добавляются в профиле пользователя (например, через GPO или в профиль ) в файл %AppData%\1C\1CEStart\1CEStart.cfg:
Либо из самой 1С (уже под пользователем) добавляем список общих информационных баз:
Внутри файлы v8i выглядят так:
Создать их можно прямо из окна выбора базы («Сохранить ссылку в файл») или же взять в профиле базы — %AppData%\\1CEStart\ibases.v8i. Ссылка может быть на базу работающую в любом режиме (файловый, серверный, веб). Рекомендуем хранить в одном файле не более ста баз, иначе файл может попросту загрузиться не до конца :)
Как обновить сразу сотню баз?Обновление баз лучше производить на отдельном сервере (а еще лучше сразу на двух :) — это и быстрее, да и управлять процессом проще. Мы используем типовые конфигурации (без снятия с поддержки), обновляемые через ИТС. В первом квартале этого года для «Бухгалтерии 3.0» вышло более 10 обновлений, накатить их даже на десяток баз вручную — та ещё веселуха. Потому мы разработали некоторую стратегию.
БлокировкаИли через создание файлика в каталоге базы 1Cv8.cdn вот с таким содержимым:
ОбновлениеДля файлового варианта:
Для SQL варианта:
Как правильно делать резервное копирование баз?Если вы используете SQL, следующий абзац можно безжалостно скипнуть — он актуален только для файлового режима.
В нашей практике мы не раз встречали базу в неконсистентном состоянии. Более того, в файловом варианте, не существует специальных инструментов, чтобы сообщить базе о начале копирования, нет возможности заблокировать работу с ней, если она идёт прямо сейчас. Мы справлялись с этим так: в полночь сервер RDP переходил в режим запрета новых подключений, через пару часов всех пользователей мягко выгонял скрипт. Затем срабатывало регламентное обновление и резервное копирование.
Выгрузка в dtДля файлового варианта:
Для SQL варианта:
Все выше сказанное справедливо для 1С Предприятие, платформа 8.3; Бухгалтерия 3.0; Зарплата и Управление Персоналом 2.5.
В следующий раз мы расскажем о работе в режиме разделения данных для нескольких сотен фирм на одну базу. Будем рады услышать вопросы, замечания и предложения. А всем тем кто столкнулся с подобными задачами — хочется пожелать терпения, упорства и веры в победу.