Как в открытом конфигураторе 1С могут появиться изменения без участия разработчика?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Представим ситуацию: вы работаете над сложной задачей в конфигураторе 1С, загрузили чистую конфигурацию, внесли пару правок и отошли на перерыв. Вернувшись, вы обнаруживаете, что в дереве метаданных появились новые изменения (например, изменены синонимы перечислений), которых вы не вносили. При этом Хранилище конфигурации не используется, а доступ к серверу по RDP ограничен. Разберем, как это возможно с технической точки зрения, и проанализируем скрытые механизмы платформы 1С и операционной системы Windows.

1. Скрытое управление через теневые сессии RDP (Shadowing)

Первое, что мы должны проанализировать, — это возможность прямого вмешательства в ваш рабочий стол. В современных версиях Windows Server существует механизм теневого подключения (RDP Shadowing). Он позволяет администратору или пользователю с соответствующими правами подключиться к вашей активной сессии.

Рассмотрим режимы работы этого механизма. Даже если у вас есть права администратора, настройки групповых политик могут разрешать «полный контроль без разрешения пользователя». В этом случае кто-то может зайти в вашу сессию, пока вы на обеде, внести правки в открытом конфигураторе и выйти, не оставляя следов в журнале регистрации 1С (так как сеанс пользователя не прерывался).

Для проверки этой гипотезы посмотрим на настройки реестра или групповых политик сервера по пути: Computer Configuration \ Administrative Templates \ Windows Components \ Remote Desktop Services \ Remote Desktop Session Host \ Connections. Параметр «Установить правила удаленного управления для сеансов пользователей служб удаленных рабочих столов» может принимать значения:

2. Конфликты общего кэша метаданных на терминальном сервере

Выясним причину, связанную с тем, как 1С хранит временные данные. При работе в терминальном режиме часто возникает ситуация, когда несколько разработчиков работают под одной учетной записью или когда профили пользователей настроены на общие сетевые папки. Платформа 1С активно использует локальный кэш, расположенный в папке %LOCALAPPDATA%\1C\1cv8.

Разберем по шагам механизм возникновения ошибки:

  1. Конфигуратор считывает данные из таблиц Config и ConfigSave в базе данных и кэширует их локально для ускорения работы.
  2. Если другой пользователь на том же сервере запустил второй экземпляр конфигуратора (например, через другой кластер или используя специфические ключи запуска), возникнет конкуренция за файлы кэша.
  3. При сохранении изменений одним пользователем, файлы кэша могут быть обновлены, и ваш открытый конфигуратор при совершении определенных действий (например, при сравнении/объединении) может «подтянуть» эти обновленные данные из общей папки кэша, считая их частью текущей конфигурации.

Это объясняет, почему изменения кажутся «логичными» — их мог внести коллега в параллельной сессии, а кэш 1С «склеил» ваши рабочие пространства.

3. Использование расширений конфигурации (Extensions)

Проанализируем ситуацию с использованием расширений. В платформе 8.3 изменения могут вноситься не только в основную конфигурацию, но и через расширения. Если кто-то добавил расширение, которое переопределяет синонимы объектов, и применил его (даже без динамического обновления основной базы), ваш конфигуратор при определенных операциях сравнения может начать учитывать эти метаданные.

Особенно это актуально, если вы выполняете команду «Сравнить, объединить с конфигурацией из файла». В окне сравнения 1С сопоставляет текущее состояние (которое может быть модифицировано расширением в памяти сеанса) с эталонным файлом .cf.

4. Автоматизация и фоновые процессы (CI/CD и скрипты)

Современная разработка на 1С часто включает инструменты автоматизации. Посмотрим на пример использования OneScript или встроенных команд пакетного обновления конфигурации. Если к вашей тестовой базе подключен какой-либо скрипт автоматической сборки или загрузки изменений из репозитория (Git/SVN), он может выполнить команду загрузки конфигурации в фоновом режиме:


"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /S "Server\Base" /LoadConfigFromFiles "C:\Repo\src" /UpdateDBCfg

Если такая команда выполняется, когда у вас открыт Конфигуратор, поведение системы становится непредсказуемым. Платформа не всегда блокирует базу целиком при пакетной загрузке метаданных, что может привести к тому, что в вашем дереве объектов появятся изменения «на лету» после обновления таблиц Config на сервере.

5. Прямая модификация через COM-соединение или V83.Application

Рассмотрим подробнее возможность программного управления самим приложением «Конфигуратор». Платформа 1С позволяет подключаться к запущенному экземпляру через COM-интерфейс. Внешний скрипт может получить доступ к объекту V83.Application и имитировать действия пользователя или выполнять команды встроенного языка, которые косвенно влияют на состояние открытых окон.

Хотя программное изменение структуры метаданных через COM в режиме предприятия ограничено, скрипт может инициировать команды меню или управлять окнами сравнения. Если в компании есть «шутники» или автоматизированные системы мониторинга состояния конфигураций, они могли сработать именно таким образом.

Заключение и рекомендации

Чтобы исключить подобные инциденты в будущем, рекомендуем придерживаться следующих правил:

  1. Всегда закрывать конфигуратор при уходе с рабочего места, особенно в тестовых базах с общим доступом. Это освобождает объектные блокировки в таблице Config.
  2. Использовать персональные учетные записи не только в 1С, но и для входа на RDP-сервер. Это разграничит кэш пользователей на уровне файловой системы.
  3. Проверять Журнал регистрации 1С с фильтром по событиям «Конфигурация» и «Сохранение конфигурации». Даже если вы не видели процесса, факт записи изменений в базу будет зафиксирован, если только изменения не остались на уровне «грязного кэша» вашего открытого приложения.
  4. Настроить уведомления о теневом подключении. В параметрах групповых политик Windows лучше установить режим «Запрашивать разрешение пользователя», чтобы любое подключение к вашему рабочему столу сопровождалось алертом.

Выяснение причины подобных «мистических» правок обычно сводится к человеческому фактору, усиленному особенностями кэширования метаданных 1С и механизмами удаленного администрирования Windows.

← На главную