Почему в 1С:Бухгалтерия 3.0 не отображается значок заполненного дополнительного реквизита и как это исправить?

Бухгалтер 1С v8.3 (Управляемые формы) 1C:Бухгалтерия
← На главную

При переходе с редакции 2.0 на 1С:Бухгалтерию предприятия 3.0 многие пользователи замечают отсутствие привычной индикации: раньше при заполнении дополнительных реквизитов или сведений на кнопке появлялась синяя галочка. В интерфейсе «Такси» кнопка остается неизменной, из-за чего сложно быстро понять, внесены ли данные по документу или справочнику. Проанализируем причину такого поведения системы и разберем доступные способы решения задачи.

Причины изменения поведения в управляемых формах

Разберем, почему разработчики Библиотеки Стандартных Подсистем (БСП) отказались от визуального значка на кнопке командной панели:

  1. Оптимизация производительности. В управляемом интерфейсе динамическая смена иконки при открытии формы или прокрутке динамического списка создавала бы высокую нагрузку на базу данных. Чтобы проверить наличие сведений, системе приходилось бы делать отдельные запросы к регистру сведений ДополнительныеСведения для каждого отображаемого объекта.
  2. Разделение типов данных. В современной архитектуре БСП четко разделены понятия:

    — Дополнительные реквизиты хранятся в табличной части самого объекта и выводятся непосредственно на его форму.

    — Дополнительные сведения хранятся отдельно в регистре сведений ДополнительныеСведения и вызываются по специальной кнопке в отдельном окне.

Рассмотрим подробнее способы, которые позволяют сделать заполненные реквизиты и сведения наглядными для пользователей без потери производительности.

Способ 1. Вывод значения реквизита в виде колонки списка

Самый простой и эффективный способ в 1С:Бухгалтерии 3.0 — вывести нужный дополнительный реквизит прямо в журнал документов или форму списка справочника.

Разберем процесс настройки по шагам:

  1. Откроем нужный журнал документов (например, «Счета покупателям»).
  2. В правом верхнем углу формы нажмем кнопку Еще и выберем пункт Изменить форму.
  3. В дереве элементов найдем группу Список.
  4. Нажмем кнопку Добавить поля и в появившемся списке найдем созданный дополнительный реквизит.
  5. Установим флажок напротив реквизита и нажмем ОК.

После этого реквизит отобразится в журнале в виде отдельной колонки. Пользователь сразу увидит его значение без необходимости заходить в каждый документ.

Способ 2. Условное оформление списка документов

Если требуется подсветка документов с заполненными сведениями без добавления новых колонок, проанализируем механизм условного оформления.

Выполним следующие действия:

  1. В форме списка документов нажмем Еще — Настроить список.
  2. Перейдем на вкладку Условное оформление и добавим новый элемент.
  3. На вкладке Оформление настроим нужный цвет фона, шрифт или цвет текста (например, зеленый фон для строки).
  4. На вкладке Условие выберем нужное дополнительное сведение или реквизит и установим вид сравнения Заполнено.
  5. Нажмем Завершить редактирование.

В результате строки документов, для которых внесены дополнительные данные, будут автоматически выделяться выбранным цветом.

Способ 3. Программная доработка через расширение конфигурации

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

Разберем логику работы программного кода. В обработчиках событий формы ПриСозданииНаСервере или ПриЧтенииНаСервере выполняется проверка наличия записей в регистре сведений ДополнительныеСведения для текущей ссылки.

Посмотрим на пример реализации проверки на сервере:


&НаСервере
Процедура ПроверитьЗаполнениеДопСведений(Форма, СсылкаНаОбъект)
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |	ДополнительныеСведения.Свойство КАК Свойство
        |ИЗ
        |	РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
        |ГДЕ
        |	ДополнительныеСведения.Объект = &Объект";
        
    Запрос.УстановитьПараметр("Объект", СсылкаНаОбъект);
    РезультатЗапроса = Запрос.Выполнить();
    
    Если НЕ РезультатЗапроса.Пустой() Тогда
        // Меняем заголовок кнопки или добавляем надпись на форму
        ЭлементФормы = Форма.Элементы.Найти("КомандаДополнительныеСведения");
        Если ЭлементФормы <> Неопределено Тогда
            ЭлементФормы.Заголовок = "Доп. сведения (*)";
        КонецЕсли;
    КонецЕсли;

КонецПроцедуры

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

← На главную