Как пустить партнёров и клиентов в базу 1С и не открыть им лишнего
Содержание
Внешние пользователи 1С — это учётные записи для людей не из вашей организации: клиентов, дилеров, поставщиков, агентов. Каждая такая запись привязана к объекту базы (партнёру, контрагенту, контактному лицу), и программа показывает этому человеку только «его» данные: его заказы, его взаиморасчёты, его документы. Включается механизм флажком в разделе Администрирование → Настройки пользователей и прав, а работает внешний пользователь обычно через веб-клиент в браузере.
Механизм входит в Библиотеку стандартных подсистем (БСП), поэтому устроен одинаково во всех типовых конфигурациях, где он задействован: УТ 11, КА 2, ERP и других. Разница между конфигурациями — в том, к каким объектам можно привязать внешнего пользователя и какие для него подготовлены роли. Если флажка «Внешние пользователи» в настройках нет, конфигурация этот режим не поддерживает, и без доработки его не включить.
Внешний пользователь и обычный: в чём разница
С точки зрения платформы оба — пользователи информационной базы. У обоих есть имя для входа, пароль, роли. Разница появляется на уровне прикладной логики БСП.
| Признак | Обычный пользователь | Внешний пользователь |
|---|---|---|
| Где хранится | справочник «Пользователи» | справочник «Внешние пользователи» |
| К чему привязан | к физлицу / сотруднику | к объекту авторизации: партнёру, контрагенту, контактному лицу |
| Какие профили доступны | профили для пользователей | только профили с назначением для внешних пользователей |
| Что видит | всё, что разрешают роли и группы доступа | только данные своего объекта авторизации (при включённом ограничении по записям) |
| Типичный интерфейс | толстый, тонкий или веб-клиент | веб-клиент или тонкий клиент через интернет |
Кому обычно выдают такой доступ:
- 🤝 дилерам и оптовым клиентам — чтобы сами оформляли заказы и смотрели остатки и цены;
- 📦 поставщикам — чтобы видели свои заказы и графики поставок;
- 🧾 клиентам — чтобы сверяли взаиморасчёты и скачивали документы без звонков бухгалтеру;
- 🧑💼 агентам и представителям — чтобы вели свою часть сделок.
Удалённые сотрудники и аутсорсинговый бухгалтер — не внешние пользователи. Им нужна обычная учётная запись с подходящим профилем: они работают с данными организации целиком, а не с одним контрагентом. Путаница здесь — частая причина, по которой «внешнему» бухгалтеру ничего не видно.
Как включить режим и создать первого внешнего пользователя
Перед стартом проверьте две вещи. Первая: у вас права администратора в базе. Вторая: в конфигурации есть хотя бы один профиль групп доступа для внешних пользователей. Без него новая учётная запись войдёт в пустую программу.
Шаг 1. Включите механизм
- Откройте
Администрирование → Настройки пользователей и прав. - Установите флажок «Внешние пользователи».
- Рядом с ним появятся ссылки на справочник внешних пользователей и на настройки входа для них.
Для изоляции данных там же включите флажок «Ограничивать доступ на уровне записей». Без него внешний пользователь получит права роли на весь справочник или документ целиком, а не только на свои строки.
Включение ограничения на уровне записей запускает обновление служебных данных доступа. В большой базе это фоновое задание может идти долго и заметно нагружает сервер. Включайте вне рабочих часов.
Шаг 2. Создайте внешнего пользователя
Есть два пути, результат одинаковый:
- из справочника «Внешние пользователи» — кнопка создания, затем выбор объекта авторизации;
- из карточки самого партнёра или контактного лица — в некоторых конфигурациях там есть команда открытия связанного внешнего пользователя.
В карточке заполните:
- Объект авторизации — тот партнёр или контрагент, чьи данные человек увидит. Один объект — одна учётная запись.
- Полное имя — подставляется из объекта, при необходимости поправьте.
- Вход в программу разрешён — флажок. Без него запись существует, но войти нельзя.
- Имя для входа и пароль — задайте или дайте пользователю сменить при первом входе.
- Способ аутентификации — для доступа снаружи обычно только «Аутентификация 1С:Предприятия» (по паролю). Аутентификация ОС для чужих людей не подходит: у них нет учётной записи в вашем домене.
Шаг 3. Включите в группу доступа
Права выдаются не самому пользователю, а группе доступа, в которой он состоит. Откройте группы доступа, создайте группу на основе профиля для внешних пользователей (например, «Партнёры — заказы») и добавьте туда участника. В группу можно включать и группы внешних пользователей целиком — удобно, когда клиентов десятки.
Подключение через интернет и вопрос лицензий
Внешнему пользователю не ставят полноценную платформу. Стандартная схема — публикация базы на веб-сервере и вход через браузер.
Публикация базы
- На сервере с установленным IIS или Apache откройте конфигуратор от имени администратора.
- Выполните
Администрирование → Публикация на веб-сервере. - Задайте имя публикации, например
partners. Адрес будет видаhttps://ваш-домен/partners. - Отметьте только то, что нужно: публикацию тонкого и веб-клиента. Флажки публикации веб-сервисов и HTTP-сервисов для партнёров не нужны — снимите их.
То же делается из командной строки утилитой webinst из каталога bin установленной платформы. Это удобно, когда публикацию повторяют после каждого обновления платформы.
Сделайте для внешних пользователей отдельную публикацию, а не ту, через которую работают сотрудники. Так её проще закрыть, вынести на отдельный адрес и ограничить по протоколу.
Тонкий клиент тоже умеет подключаться по адресу публикации: в списке баз указывается вариант подключения через веб-сервер и тот же URL. Это вариант для постоянных партнёров, которые работают в базе часами.
Лицензии
Отдельной «лицензии на внешнего пользователя» нет. Каждый сеанс внешнего пользователя — веб-клиент, тонкий клиент — занимает клиентскую лицензию так же, как сеанс сотрудника.
Что из этого следует на практике:
- 📊 считайте пиковое число одновременных сеансов, а не число учётных записей: 200 зарегистрированных дилеров, из которых одновременно работают 15, — это 15 лицензий сверх ваших;
- ⏱ настройте отключение неактивных сеансов, иначе забытые вкладки браузера держат лицензии часами;
- 🖥 для клиент-серверной базы нужна ещё и лицензия на сервер 1С; для веб-публикации отдельной лицензии не требуется.
Если лицензий не хватает, внешний пользователь увидит отказ при входе, и чаще всего это случается в часы пик у сотрудников.
Права и ролевая модель: что увидит партнёр
Правильная настройка прав — главная часть работы. Ошибка здесь означает, что один клиент видит цены и долги другого.
Профили для внешних пользователей
В профиле группы доступа есть назначение: для кого он предназначен. Профиль с назначением для внешних пользователей нельзя выдать сотруднику, и наоборот. Типовые конфигурации поставляют готовые профили под свои сценарии (например, для оформления заказов партнёром). Если готового нет — скопируйте близкий и уберите лишние роли.
Правило подбора ролей:
- Начните с минимального набора: базовые права внешнего пользователя и одна прикладная роль.
- Проверьте вход под этой учётной записью.
- Добавляйте роли по одной, пока пользователь не сможет сделать всё, что ему положено.
Обратный путь — дать «полные права» и потом урезать — почти всегда оставляет дыры.
Изоляция данных по объекту авторизации
Сама роль даёт доступ к типу объектов: «читать документы заказов». Какие именно заказы — решает ограничение на уровне записей. В БСП для внешних пользователей ограничение строится по их объекту авторизации: партнёр А видит документы, где указан партнёр А.
Чтобы это работало:
- ✅ флажок «Ограничивать доступ на уровне записей» включён;
- ✅ у внешнего пользователя заполнен объект авторизации;
- ✅ в профиле настроены виды доступа (в карточке профиля это отдельная вкладка);
- ✅ обновление данных доступа после включения ограничения завершено.
Пока фоновое обновление данных доступа не закончилось, ограничения по записям работают не полностью — не выдавайте пароли партнёрам до его завершения.
Группы внешних пользователей
Когда клиентов много, раскладывайте их по группам: «Дилеры», «Розничные клиенты», «Поставщики». В свойствах группы указывается тип объектов авторизации её участников. Группу целиком включают в группу доступа — и новому дилеру достаточно попасть в нужную группу, чтобы получить все права.
Безопасность и аудит действий внешних пользователей
Внешний доступ — это дверь в учётную базу из интернета. Закрывайте её по нескольким направлениям сразу.
Канал и публикация
- 🔒 только HTTPS с действительным сертификатом; HTTP закройте на веб-сервере;
- 🌐 публикацию для партнёров вынесите на отдельный адрес и не публикуйте на нём OData и HTTP-сервисы;
- 🧱 если партнёров немного и у них постоянные адреса — ограничьте доступ к публикации по IP на веб-сервере или межсетевом экране;
- 🗂 клиент-серверная база закрыта от интернета: наружу смотрит только веб-сервер, а порты сервера 1С (агент — 1540, менеджер кластера — 1541) доступны лишь из внутренней сети.
Пароли и вход
В БСП для внешних пользователей есть свои настройки входа — ссылка рядом с флажком «Внешние пользователи». Там задают:
- минимальную длину и сложность пароля;
- срок действия пароля и запрет повторения старых;
- автоматический запрет входа, если пользователь долго не заходил.
Последний пункт особенно полезен: клиент, который перестал работать с вами год назад, теряет доступ без участия администратора.
Не создавайте одну учётную запись на всю компанию-партнёра «для всех менеджеров». В журнале не будет видно, кто именно оформил заказ, а уволившийся у партнёра сотрудник сохранит доступ.
Аудит
Все действия внешних пользователей пишутся в журнал регистрации наравне с действиями сотрудников. Откройте Администрирование → Обслуживание → Журнал регистрации и поставьте отбор по пользователю. Видны входы, выходы, запись и удаление объектов, ошибки.
Что стоит проверять регулярно:
- Входы в нерабочее время и серии неудачных попыток входа.
- Удаление или пометку на удаление объектов внешними пользователями — обычно им это вообще не нужно, и такая запись указывает на лишнюю роль.
- Число активных сеансов внешних пользователей в пиковые часы — это прямая подсказка, сколько лицензий они реально занимают.
Список текущих сеансов смотрят в Администрирование → Обслуживание → Активные пользователи; там же отключают зависший сеанс.
Обмен с внешними системами: веб-сервисы, HTTP-сервисы, OData
Часто под «внешними пользователями» понимают не людей, а программы: интернет-магазин, личный кабинет на сайте, мобильное приложение. Им нужен не веб-клиент, а программный интерфейс.
| Способ | Что даёт | Когда выбирать |
|---|---|---|
| Стандартный интерфейс OData | чтение и запись объектов по REST без программирования в конфигурации | быстрый доступ к справочникам и документам для внешнего сервиса |
| HTTP-сервис | свой REST-метод с логикой на стороне 1С | личный кабинет на сайте, нужен ответ строго заданного формата |
| Веб-сервис (SOAP) | обмен по WSDL | интеграция с системами, которые работают только по SOAP |
Принципы для всех трёх:
- 🔑 под каждую внешнюю систему заведите отдельного служебного пользователя с минимальными правами — только на те объекты, которые сервис читает или пишет;
- 🚫 служебной записи запретите интерактивный вход: она нужна только для программного доступа;
- 📝 публикуйте сервисы на отдельном адресе и только через HTTPS;
- 📈 следите за нагрузкой: каждое обращение открывает сеанс на сервере и на время работы занимает лицензию.
Если сайт строит личный кабинет клиента поверх HTTP-сервиса, клиенту вообще не нужна учётная запись в 1С. Сайт сам проверяет его логин, а в 1С ходит под служебным пользователем и запрашивает данные конкретного контрагента. Это дешевле по лицензиям, чем сотни внешних пользователей веб-клиента, но требует разработки.
Простой запрос к стандартному интерфейсу OData выглядит так:
curl -u api_shop:пароль \
"https://ваш-домен/base/odata/standard.odata/Catalog_Номенклатура?\$format=json&\$top=10"
Перед этим состав объектов, доступных через OData, нужно задать в базе: по умолчанию интерфейс ничего не отдаёт.
Почему внешний пользователь не входит или видит не то
Отдельный случай — роли выданы в конфигураторе напрямую. Если администратор отметил роли внешнему пользователю в списке пользователей конфигуратора, при следующем обновлении прав БСП их снимет. Все права — только через группы доступа в пользовательском режиме.