При переходе на «1С:Управление торговлей 11» с более ранних версий (например, УТ 10.3) или параллельной работе с «1С:Розницей» многие пользователи сталкиваются с отсутствием привычного интерфейса: нет регистра или справочника, где можно было бы явно указать для конкретного пользователя основной склад, организацию или контрагента по умолчанию. Разберем, как устроена эта логика в УТ 11, почему поля не заполняются автоматически и какие есть пути решения.
В современных типовых конфигурациях на платформе 1С разработчики отказались от жестких таблиц персональных настроек значений по умолчанию в пользу механизма предсказания и автоподстановки по статистике действий пользователя. Проанализируем условия, при которых этот алгоритм срабатывает:
Организация, Склад, подразделение, касса). Для внешних данных, таких как Контрагент или клиент (например, «Розничный покупатель»), автоматическая подстановка по статистике по умолчанию не предусмотрена, поскольку контрагент считается объектом индивидуального выбора в каждой сделке.Если реквизиты организации или склада не подставляются даже после многократного ручного ввода, выясним причину в настройках системы:
Часто возникает ситуация: склад или организация в информационной базе заведены в единственном экземпляре, но поле в шапке документа все равно остается пустым. Рассмотрим, почему так происходит:
Если требуется ускорить заполнение контрагентов и складов стандартными средствами конфигурации без программирования, воспользуемся следующими механизмами:
Если требуется жестко закрепить за пользователем основного покупателя или склад, как это реализовано в «1С:Рознице», наиболее правильным подходом является создание расширения конфигурации (.cfe), что позволяет сохранить конфигурацию на поддержке без изменения типового кода.
Рассмотрим пример реализации через расширение модуля формы или обработку заполнения документа. Перехватим событие ОбработкаЗаполнения в модуле объекта с аннотацией &После:
&После("ОбработкаЗаполнения")
Процедура Расш_ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
// Проверяем, что создается новый документ
Если ЭтоНовый() Тогда
// Заполняем склад и контрагента по умолчанию, если они еще не заполнены
Если Не ЗначениеЗаполнено(ЭтотОбъект.Склад) Тогда
ЭтотОбъект.Склад = Справочники.Склады.НайтиПоНаименованию("Основной склад");
КонецЕсли;
Если Не ЗначениеЗаполнено(ЭтотОбъект.Контрагент) Тогда
ЭтотОбъект.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Розничный покупатель");
ЭтотОбъект.Партнер = Справочники.Партнеры.НайтиПоНаименованию("Розничный покупатель");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Использование расширения позволяет реализовать удобный механизм заполнения по аналогии с другими конфигурациями и не нарушает типовые алгоритмы автоподстановки данных.