Разработка и Конфигурация · 10 мин
1С: как установить «Редактировать в диалоге»
Как включить и использовать свойство «Редактировать в диалоге» в 1С: в конфигураторе и программно, для обычных и управляемых форм, типичные ошибки.
Свойство «Редактировать в диалоге» в 1С определяет способ изменения значения ссылочного реквизита: вместо ввода или выбора прямо в поле формы пользователь открывает объект в отдельной диалоговой форме и редактирует его там. Это удобно, когда при заполнении документа нужно быстро поправить карточку контрагента, номенклатуры или договора, не переходя в другой раздел программы.
Свойство применяется к элементам формы, связанным со ссылочными типами данных — справочниками, документами, планами счетов и другими объектами. Оно доступно как в обычных, так и в управляемых формах, но расположение и поведение немного различаются в зависимости от версии платформы и режима работы.
Важно понимать: «Редактировать в диалоге» не блокирует и не разрешает изменение объекта само по себе — оно лишь задаёт способ интерактивного редактирования. Реальная возможность сохранить изменения определяется правами доступа пользователя и блокировками данных в информационной базе.
Что делает свойство «Редактировать в диалоге»
По умолчанию поле ввода со ссылочным типом позволяет выбрать значение из списка, набрать его вручную или ввести по строке. Когда включено «Редактировать в диалоге», поведение меняется: при попытке изменить значение открывается форма самого объекта — например, форма элемента справочника «Контрагенты». Пользователь вносит правки, записывает объект, и ссылка в исходном поле остаётся прежней, но данные объекта уже обновлены.
Это полезно в сценариях, где оператор при вводе первичного документа обнаруживает ошибку в карточке контрагента: неверный ИНН, устаревший адрес, неактуальный банковский счёт. Без отдельного диалога ему пришлось бы закрывать документ, искать элемент справочника, править его и возвращаться. С включённым свойством всё делается за одно действие.
Свойство не заменяет механизм выбора: кнопка выбора из списка продолжает работать, если она не отключена отдельно. Речь идёт именно о способе интерактивного редактирования текущего значения поля.
Где найти свойство в конфигураторе
Откройте конфигуратор, найдите нужную форму объекта (например, форму документа) и перейдите на вкладку с деревом элементов формы. Выделите поле ввода, связанное со ссылочным реквизитом, и откройте палитру свойств — обычно по правому клику «Свойства» или через комбинацию Alt+Enter.
В обычных формах (режим обычного приложения) свойство «РедактироватьВДиалоге» находится в списке свойств поля ввода среди прочих параметров поведения. Установите значение «Истина» и сохраните конфигурацию. В управляемых формах прямого одноимённого свойства у поля формы может не быть — там поведение настраивается через свойства «КнопкаОткрытия», «РедактированиеТекста» и обработчики событий, а редактирование объекта выполняется открытием его формы.
После изменения обновите конфигурацию базы данных (клавиша F7), если изменения затронули структуру, или просто сохраните конфигурацию, если правила касались только формы. Затем перезапустите сеанс пользователя и проверьте поведение поля.
- 1Откройте нужную форму объекта в конфигураторе
- 2Выделите поле ввода со ссылочным реквизитом
- 3Откройте палитру свойств (Alt+Enter)
- 4Найдите свойство «Редактировать в диалоге» и установите «Истина»
- 5Сохраните конфигурацию и перезапустите сеанс
- 6Проверьте: при редактировании поля открывается форма объекта
Настройка в обычных и управляемых формах
В обычных формах всё сводится к установке одного свойства в палитре. Платформа сама обрабатывает открытие диалога объекта при начале редактирования. Это самый простой сценарий, и он работает «из коробки» для большинства ссылочных типов.
В управляемых формах подход другой: вместо единого флага используется комбинация настроек. Убедитесь, что у поля включена кнопка открытия (свойство «КнопкаОткрытия»), при необходимости отключите «КнопкаВыбора» и «РедактированиеТекста», чтобы пользователь не вводил значение вручную. Для открытия объекта на редактирование используется стандартная обработка или собственный обработчик события «Открытие».
Сравнение вариантов
Один флаг в палитре свойств. Подходит для конфигураций в режиме обычного приложения. Ограничение: не работает в управляемом интерфейсе.
Гибкая настройка через свойства поля и события. Подходит для современных конфигураций. Ограничение: требует понимания событийной модели формы.
Свойство задаётся в коде модуля формы через коллекцию элементов. Подходит, когда поведение должно зависеть от условий (роль пользователя, статус документа). Ограничение: сложнее сопровождать.
Программная установка свойства
Иногда свойство нужно включать динамически — например, только для определённых пользователей или при определённом статусе документа. В этом случае его можно установить в коде модуля формы, обычно в обработчике «ПриСозданииНаСервере» или «ПриОткрытии».
Для обычной формы обращение выглядит как обращение к элементу формы по имени с присвоением значения свойству. В управляемой форме аналогичным образом управляются свойства «КнопкаОткрытия» и смежные параметры через коллекцию «Элементы».
// Обычная форма
ЭлементыФормы.Контрагент.РедактироватьВДиалоге = Истина;
// Управляемая форма — управление кнопкой открытия
Элементы.Контрагент.КнопкаОткрытия = Истина;
Элементы.Контрагент.РедактированиеТекста = Ложь;Программная установка выполняется каждый раз при открытии формы, поэтому изменения в палитре свойств для этого элемента могут перекрываться кодом. Если свойство «не запоминается», проверьте модуль формы на предмет переопределения.
Проверка результата и контрольные точки
После настройки откройте форму в режиме предприятия и выполните простой тест: установите курсор в поле, попробуйте начать редактирование. Должна открыться форма связанного объекта. Внесите безобидное изменение (например, комментарий), запишите объект и убедитесь, что исходное поле отображает актуальное представление объекта.
Как проверить результат
Открывается форма объекта для правки
Значение вводится прямо в поле — свойство не применилось
Объект записывается, представление в поле обновляется
Ошибка записи — проверьте права доступа пользователя
Поведение соответствует настройке
Свойство сбрасывается — ищите переопределение в модуле формы
Если форма объекта открывается, но не сохраняется, причина почти всегда в правах: у пользователя нет права «Изменение» для этого справочника или документа. Свойство «Редактировать в диалоге» права не расширяет.
Типичные ошибки и ограничения
Отдельное ограничение: редактирование объекта в диалоге при открытом документе может привести к конфликту блокировок, если тот же объект уже открыт в другом окне или редактируется другим пользователем. Платформа выдаст сообщение о блокировке данных — это нормальное поведение, а не ошибка настройки.
Альтернативы и смежные настройки
Если цель — дать пользователю возможность посмотреть или поправить объект, не обязательно использовать «Редактировать в диалоге». Кнопка открытия (значок рядом с полем) решает ту же задачу явно: пользователь сам решает, открывать объект или нет. Это безопаснее, так как снижает риск непреднамеренного изменения справочника.
Для защиты данных от случайных правок используйте связанные механизмы: настройку прав доступа, запрет редактирования через свойство «ТолькоПросмотр» у формы объекта, а также дату запрета изменения данных для закрытых периодов. Эти инструменты работают независимо от способа открытия формы.
Как выбрать действие
Что важно запомнить
«Редактировать в диалоге» включается в палитре свойств поля ввода обычной формы; в управляемых формах аналогичное поведение настраивается через кнопку открытия и обработчики. Свойство меняет только способ редактирования и не влияет на права доступа. После настройки всегда проверяйте поведение в режиме предприятия под учётной записью реального пользователя.
Частые вопросы
Почему в палитре свойств нет пункта «Редактировать в диалоге»?
Скорее всего, вы работаете с управляемой формой — там этого свойства нет. Настройте кнопку открытия и при необходимости обработчик события «Открытие». Также проверьте, что у поля ссылочный тип данных: для строки или числа свойство не отображается.
Влияет ли «Редактировать в диалоге» на права пользователя?
Нет. Свойство определяет только способ интерактивного редактирования. Если у пользователя нет права изменения объекта, форма откроется, но записать изменения он не сможет. Права настраиваются отдельно в ролях.
Можно ли включить свойство сразу для всех полей формы?
Штатного группового действия нет. Практичный вариант — программная установка в цикле по коллекции элементов формы в обработчике создания формы, с проверкой типа данных каждого поля.
Что делать, если при редактировании возникает ошибка блокировки данных?
Это значит, что объект уже открыт на редактирование в другом окне или другим пользователем. Закройте дубликат формы или дождитесь завершения чужого сеанса редактирования. Ошибка настройки свойства тут ни при чём.
Работает ли свойство в тонком и веб-клиенте?
Поведение зависит от режима формы. Управляемые формы корректно работают в тонком и веб-клиенте, но там вместо свойства используется кнопка открытия. Обычные формы в этих клиентах не поддерживаются.