Нередко разработчики и администраторы 1С сталкиваются с парадоксальной ситуацией: создается абсолютно пустая информационная база, через конфигуратор выполняется команда Загрузить конфигурацию из файла (файл с расширением .cf), после чего база запускается в пользовательском режиме. Ожидается увидеть чистую базу для последующего переноса данных, однако в интерфейсе внезапно обнаруживаются реальные документы (например, поступления товаров) и элементы справочников (номенклатура, контрагенты).
Поскольку сам по себе файл конфигурации .cf содержит исключительно структуру метаданных, формы, макеты и программный код, но не содержит пользовательских данных таблиц, такое поведение вызывает закономерное недоумение. Разберем по шагам, почему это происходит, как обнаружить источник заполнения и какими способами предотвратить появление нежелательных данных.
Проанализируем возможные варианты, из-за которых таблицы новой базы могут наполниться информацией сразу после старта:
РегламентноеЗадание свойства Предопределенное и Использование установлены в значение Истина, платформа предпринимает попытку его выполнения сразу при старте. Если в модуле задания прописаны жестко заданные пути к сетевым папкам, FTP-серверам, базам-источникам через COM или веб-сервисы, задание незамедлительно связывается с внешней системой и загружает оттуда документы и справочники.Рассмотрим, как быстро выяснить, откуда именно в базе взялись посторонние документы и справочники:
Документ.ПоступлениеТоваровУслуг) и установим точку останова в событии ПередЗаписью или ПриЗаписи. При повторном запуске обмена платформа прервет выполнение кода, и через панель Стек вызовов мы сможем точно проследить цепочку процедур, инициировавших создание объекта.Если развертывание пустой базы выполняется на сервере 1С:Предприятия, регламентные задания необходимо отключить еще до первого запуска конфигурации:
SchJobDn=Y.После этого база гарантированно запустится без выполнения фоновых процедур обмена, и разработчик сможет спокойно загрузить необходимые данные.
Если разработка или тестирование ведется на локальной файловой базе, регламентные задания будут запускаться в сеансе пользователя. Чтобы временно отключить их выполнение, воспользуемся параметрами запуска платформы:
/AllowExecuteScheduledJobs -off
Данный параметр полностью запрещает исполнение регламентных и фоновых заданий в клиентском сеансе. Когда база будет полностью настроена и наполнена корректными данными, данный параметр можно убрать или заменить на /AllowExecuteScheduledJobs -on.
Проанализируем правила разработки, которые помогут избежать самопроизвольного обмена данными:
РегламентноеЗадание, отвечающих за загрузку данных из внешних баз, каталогов или веб-сервисов, свойства Предопределенное и Использование должны быть сброшены (значение Ложь). Включение задания должно осуществляться пользователем или администратором в пользовательском интерфейсе после заполнения всех настроек подключения.Важно: если регламентное задание уже успело загрузить данные, простая повторная загрузка файла .cf не удалит появившиеся записи, так как она меняет лишь структуру конфигурации. В таком случае быстрее всего полностью удалить таблицы информационной базы (или пересоздать пустую базу в кластере / файловом каталоге), заблокировать запуск регламентных заданий указанными выше методами и только после этого повторить загрузку конфигурации.