Как в 1С:ERP автоматически заполняется организация в документах и где найти эти настройки

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет
← На главную

При работе в 1С:ERP Управление предприятием многие пользователи и разработчики сталкиваются с интересным поведением системы: при создании нового документа (например, «Заказа клиента») поле Организация заполняется автоматически, даже если в персональных настройках пользователя («Мои настройки») основная организация не указана. Часто это обнаруживается при отладке, когда в процедуре ПриСозданииНаСервере данные уже присутствуют, хотя явного кода по их заполнению в модуле формы на первый взгляд нет. В этой статье мы подробно разберем, как работает этот «магический» механизм, где хранятся данные и как ими управлять.

Выясняем причину: иерархия заполнения реквизитов

Для начала проанализируем ситуацию и поймем, что в системе 1С существует строгая иерархия того, как заполняются поля в новом объекте. Когда пользователь нажимает кнопку «Создать», система последовательно проверяет несколько источников данных:

  1. Значения копирования: Если новый документ создается путем копирования существующего, приоритет отдается данным из документа-источника.
  2. Параметры выбора (Заполнение на основании): Если документ создается на основании другого (например, «Заказ клиента» на основании «Коммерческого предложения»), данные тянутся из родительского объекта.
  3. Персональные настройки пользователя: Система проверяет раздел «Мои настройки», где может быть явно указана «Основная организация», «Основной склад» и т.д. Это жесткая установка, которая всегда имеет приоритет над автоматическими алгоритмами.
  4. Механизм статистики (БСП): Если ни один из вышеперечисленных пунктов не сработал, в дело вступает подсистема «Библиотеки стандартных подсистем» (БСП) под названием Заполнение по статистике.

Рассмотрим подробнее именно четвертый пункт, так как он является наиболее скрытым и часто вводит в заблуждение.

Как работает механизм «Заполнение по статистике»

Этот механизм не просто запоминает последнее выбранное значение. Он работает интеллектуально, анализируя историю действий конкретного пользователя. Разберем алгоритм по шагам:

Во-первых, система отслеживает последние 3–5 созданных пользователем документов одного и того же типа. Например, если вы создали пять «Заказов клиента», система сохранит информацию о том, какие организации в них были выбраны.

Во-вторых, происходит расчет приоритета. Если в выборке из последних документов одна и та же организация встречается чаще других или используется несколько раз подряд, система начинает считать её наиболее вероятным выбором для текущего пользователя. Именно это значение будет подставлено в следующий новый документ.

В-третьих, данные сохраняются в разрезе пар «Пользователь — Тип объекта — Реквизит». Это означает, что для «Заказа клиента» у вас может подставляться «Организация А», а для «Заказа поставщику» — «Организация Б», в зависимости от того, с какими данными вы чаще работали в конкретных журналах.

Техническая реализация и программный код

Если мы проанализируем программный код конфигураций на базе 1С:ERP, то увидим, что заполнение происходит не в самой форме, а в модуле объекта или через специализированные серверные вызовы БСП в обработке заполнения. Основная логика сосредоточена в общем модуле ЗаполнениеСвойствПоСтатистикеСервер. При необходимости более глубокого изучения подобных механизмов можно воспользоваться справочником по методам БСП с примерами кода.

Посмотрим на пример того, как вызывается этот механизм в коде:


// В обработке заполнения или при создании на сервере может вызываться:
ЗаполнениеСвойствПоСтатистикеСервер.ЗаполнитьСвойстваОбъекта(ЭтотОбъект);

Данные о накопленной статистике хранятся в системной таблице Хранилище общих настроек. Ключ объекта в этом хранилище обычно имеет вид СтатистикаЗаполненияРеквизитов. Важно понимать, что это не обычный регистр сведений, который можно легко открыть и отредактировать через интерфейс, а сериализованные данные в хранилище настроек.

Проблема избыточного автоматизма

Как отмечают практикующие специалисты, иногда такая помощь платформы бывает неудобной. Разберем ситуацию: в компании принято решение, что организация в заказе должна жестко определяться выбранным договором. Пользователь выбирает договор, срабатывает логика пересчета, и организация меняется. Но если статистика уже подставила «неверную» организацию, это может привести к путанице или лишним итерациям выбора. Для контроля корректности учета после такой путаницы применяется автоматическая сверка бухгалтерских и налоговых проводок между базами.

В современных версиях 1С:ERP (начиная с определенных релизов БСП) этим механизмом можно и нужно управлять.

Как настроить или отключить автоподстановку

Если вы хотите изменить поведение системы, выполните следующие действия:

  1. Использование формы настройки: В системе существует техническая форма «Настройка заполнения реквизитов по статистике». Найти её можно через функции для технического специалиста (ранее «Все функции»). В этой форме можно увидеть список документов и полей, для которых включен сбор статистики. При обслуживании нескольких баз для подобных технических работ применяется автоматическое обновление и тестирование баз 1С в «тихом» режиме.
  2. Отключение для конкретных полей: В указанной форме можно снять флажки с тех реквизитов (например, «Организация» или «Склад»), которые не должны заполняться автоматически. Если же ошибки ввода привели к появлению в учете лишних документов по ненужной организации, выполняется выборочное удаление данных организации из 1С с сохранением ссылочной целостности.
  3. Очистка накопленных данных: Если система «запомнила» неправильный выбор, можно сбросить настройки пользователя. Это делается через меню Администрирование — Настройки пользователей и прав — Настройки пользователей. Там можно выбрать конкретного человека и очистить его настройки статистики заполнения, не затрагивая при этом настройки интерфейса или отчетов.

Рекомендации для разработчиков

Если вы разрабатываете собственный документ и хотите включить или исключить его из этого механизма, обратите внимание на следующие моменты:

Проверьте, включен ли ваш документ в состав определяемого типа ОбъектСПоддержкойЗаполненияПоСтатистике. Если документ там присутствует, БСП будет автоматически пытаться анализировать его реквизиты.

Если вам нужно программно подавить заполнение по статистике в определенном контексте, можно использовать параметры заполнения. Выясним причину подстановки, проанализировав стек вызовов в процедуре ОбработкаЗаполнения модуля объекта. Часто достаточно убедиться, что реквизит уже заполнен другим, более приоритетным алгоритмом, и тогда статистика его не перезапишет.

Важный нюанс: Механизм статистики срабатывает только в том случае, если поле на момент вызова функции ЗаполнитьСвойстваОбъекта остается пустым. Если вы программно установили организацию в начале ОбработкиЗаполнения, статистика её не изменит.

Таким образом, мы выяснили, что «невидимое» заполнение организации — это результат работы интеллектуальной подсистемы БСП. Она призвана ускорить ввод данных, минимизируя количество кликов, но требует понимания принципов своей работы для корректной настройки бизнес-процессов предприятия.

← На главную