Здесь порядок решений и места типичных ошибок. Конкретные значения параметров, требования к версиям и рекомендации по железу зависят от платформы и СУБД, поэтому их берут из документации своих версий, а не из статей.
Из чего состоит серверная 1С
Когда говорят «настроить сервер 1С», обычно имеют в виду четыре разные вещи. Они ставятся отдельно, ломаются отдельно и настраиваются в своём порядке.
| Часть | За что отвечает | Что бывает, когда её пропустили |
|---|---|---|
| Сервер приложений | Служба агента, менеджер кластера, рабочие процессы | Клиент не подключается, база не открывается |
| СУБД | Хранение данных: PostgreSQL или MS SQL | Кластер виден, а база не открывается |
| Сервер лицензирования | Раздача лицензий по сети | «Не найдена лицензия» у всех сразу |
| Веб-сервер | Публикация базы для браузера и мобильных клиентов | Работает только толстый клиент из локальной сети |
Порядок такой: сначала считаем нагрузку, потом ставим СУБД, потом сервер приложений, потом лицензии, и только в конце публикацию. Если начать с конца, отладка превращается в перебор.
Нагрузка считается тремя числами: сколько человек работает одновременно, какого размера база и сколько фоновых заданий крутится. Три пользователя и база на гигабайт живут на одной машине. Тридцать пользователей и база на сто гигабайт требуют разнести СУБД и сервер приложений.
Windows или Linux
Оба варианта рабочие, и выбор чаще упирается не в технику.
Windows проще в сопровождении — больше инструкций, привычные средства администрирования, легче найти человека, который потом это поддержит. Стоит дороже за счёт лицензий на систему и на MS SQL.
Linux дешевле и обычно ставится в паре с PostgreSQL. Работает стабильно, но требует человека, который умеет читать логи и обслуживать эту машину. Если такого человека в компании нет, экономия на лицензиях легко съедается одним простоем.
Выбирайте ту систему, которую сможет поддерживать тот, кто останется с ней после запуска.
PostgreSQL или MS SQL
Самая частая ошибка при развёртывании находится именно здесь.
PostgreSQL для 1С нужен особый. Обычная сборка из репозитория дистрибутива установится, база создастся, и всё будет выглядеть работающим. Проблемы вылезут позже, на нагрузке и на сложных запросах. Нужна сборка с патчами для 1С, её берут из релизов 1С или у поставщиков, которые такие сборки собирают.
MS SQL требует лицензий и стоит денег. Взамен даёт понятные средства обслуживания, привычные планы обслуживания и обширную документацию по работе именно с 1С.
Что настраивают в любом случае:
- Модель восстановления и регламент копий, иначе журнал транзакций съедает диск.
- Размещение файлов базы, журналов и временной базы по разным дискам, если диски позволяют.
- Обслуживание индексов и статистики по расписанию.
- Память под СУБД, чтобы она не конкурировала с сервером приложений на одной машине.
Кластер, рабочие процессы и память
Кластер настраивают даже тогда, когда сервер один. По умолчанию параметры рассчитаны на небольшую нагрузку, и на живой базе их приходится менять.
Первое, что стоит поставить — ограничение памяти на рабочий процесс и автоматический перезапуск при его превышении. Смысл простой: если один сеанс начнёт бесконтрольно съедать память, перезапустится только его процесс, а не весь сервер вместе со всеми пользователями.
Дальше настраивают число рабочих процессов и распределение по ним соединений. Универсального рецепта нет, отправной точкой служит количество одновременных пользователей и объём оперативной памяти на машине.
Если серверов несколько, добавляется требование назначения функциональности: фоновые задания уводят на отдельный сервер, чтобы регламентные операции не мешали людям работать.
Сервер лицензирования
Отдельная служба, которая раздаёт лицензии по сети. Её забывают чаще всего, потому что на этапе проверки всё работает с одного компьютера.
Проверять надо три вещи. Служба менеджера лицензий запущена и стартует сама после перезагрузки. Ключ определяется системой, если он аппаратный. Клиенты доходят до менеджера по сети, то есть брандмауэр и антивирус не блокируют нужные порты.
Симптом неправильной настройки узнаваемый: на сервере всё работает, а у пользователей сообщение о ненайденной лицензии. Подробнее про этот класс ошибок я разбирал отдельно — 1С не запускается.
Публикация базы на веб-сервере
Публикация нужна, когда к базе подключаются из браузера, с мобильного клиента или снаружи локальной сети. Ставят её на IIS в Windows или на Apache в Linux.
Три момента, на которых обычно спотыкаются:
- Права. Учётная запись, под которой работает веб-сервер, должна иметь доступ к каталогу публикации и к серверу 1С.
- Разрядность. Модули расширения веб-сервера должны совпадать по разрядности с самим веб-сервером.
- Сертификат. Публикация наружу без HTTPS означает, что логины и пароли идут по сети открытым текстом.
Публикация заодно открывает дорогу веб-сервисам и HTTP-сервисам, через которые к базе подключаются сайт и внешние системы. Про эту часть у меня есть отдельный разбор по обменам.
Перенос базы на сервер
Обычная ситуация — база жила файловой, пользователей стало больше, работать стало невозможно. Перенос делают так.
- Снять копию файловой базы и убедиться, что она открывается.
- Прогнать тестирование и исправление на копии, чтобы не переносить накопленные ошибки.
- Создать базу на сервере и загрузить в неё выгрузку.
- Сверить контрольные цифры: остатки, суммы, количество документов за период.
- Обновить список баз у пользователей и проверить работу с двух-трёх рабочих мест.
- Файловую базу не удалять несколько недель, пока не станет ясно, что всё в порядке.
Перенос на другой сервер устроен так же, только вместо выгрузки чаще используют средства СУБД: это быстрее и надёжнее на больших базах.
Резервные копии
Выгрузка в dt подходит для небольшой файловой базы. Для рабочей клиент-серверной базы она не годится: работает долго, требует выгнать всех пользователей и на большом объёме может просто не завершиться.
Копии рабочей базы делают средствами СУБД по расписанию. Настраивают глубину хранения, отдельное место для копий и уведомление о том, что копия не создалась.
Копия считается настроенной, когда
- Она создаётся по расписанию без участия человека.
- Копии лежат не на том же диске, что и база.
- О сбое создания приходит уведомление.
- Известно, сколько копий хранится и за какой срок.
- Копию хотя бы раз развернули и открыли.
Последний пункт важнее остальных четырёх. Копия, которую ни разу не разворачивали, остаётся предположением о том, что данные защищены.
Когда сервер тормозит
Жалоба «1С тормозит» слишком общая, чтобы с неё начинать. Сначала уточняют картину тремя вопросами: тормозит у всех или у одного, постоянно или в определённые часы, началось внезапно или нарастало.
Дальше смотрят по порядку:
- Память рабочих процессов — упёршийся в лимит процесс тормозит всех, кто на нём сидит.
- Диски под СУБД — на медленных дисках база тормозит независимо от количества оперативной памяти.
- Регламентные задания — обновление полнотекстового поиска и пересчёт итогов в рабочее время способны положить производительность в одиночку.
- Блокировки — когда несколько человек упираются в один документ, это выглядит как тормоза сервера.
- Обслуживание СУБД — без обновления статистики и перестроения индексов база постепенно замедляется сама.
- Сеть — тонкий клиент через плохой канал тормозит при полностью здоровом сервере.
Отдельно проверяют, не совпало ли замедление с обновлением платформы, конфигурации или антивируса.
Что прислать для оценки
- Сколько человек работает одновременно.
- Размер базы и её тип: файловая или клиент-серверная.
- Текущая схема: одна машина или СУБД вынесена отдельно.
- Операционная система и СУБД с версиями.
- Версия платформы.
- Что нужно сделать или что работает неправильно.
По этим шести пунктам видно и объём работы, и то, хватит ли имеющегося железа.
Частые вопросы
PostgreSQL или MS SQL для 1С?
PostgreSQL дешевле, но требует сборку с патчами для 1С: обычная сборка из репозитория работает неправильно. MS SQL требует лицензий, зато проще в обслуживании и лучше документирован для 1С.
Можно ли поставить сервер 1С на Linux?
Да, сервер 1С:Предприятия работает на Linux, и это обычная схема вместе с PostgreSQL. Сложнее становится сопровождение, если в компании нет человека, знакомого с Linux.
Что означает «настройки адреса сервера не заданы»?
Клиент не знает, к какому серверу подключаться. Проверяют строку подключения в списке баз, доступность сервера по имени и по IP, а также работу службы агента.
Достаточно ли выгружать базу в dt для резервных копий?
Для небольшой файловой базы это допустимо. Для рабочей клиент-серверной базы копии делают средствами СУБД: выгрузка в dt долгая, требует монопольного режима и на крупной базе может не завершиться.
Сервер 1С тормозит, с чего начать?
Сначала выяснить, тормозит у всех или у одного и в какие часы. Затем смотреть память рабочих процессов, дисковую подсистему под СУБД, блокировки и регламентные задания, которые запускаются в рабочее время.
Что прислать, чтобы оценить работу по серверу?
Число одновременных пользователей, размер базы, текущую схему размещения, операционную систему и СУБД, версию платформы и описание проблемы или задачи.
Нужно развернуть или ускорить сервер 1С
Пришлите число пользователей, размер базы, операционную систему и СУБД. Скажу, хватает ли текущего железа и что настроить в первую очередь.
Настройка и доработка 1С →