1с активировать элемент формы

Обновлено: 06.07.2024

Здравствуйте, начинающий пользователь, спросить не у кого.<br>Задача при выборе позиции номенклатуры (активизации) выполнить код.<br>В справочнике Номенклатура Форма выбора в свойствах поля наименования есть<br>События: При изменении и Нажатие, но они не срабатывают.<br>Хочется сделать но не знаю в какую сторону копать.<br>Заранее благодарен.

Платформа 8.2 конфигурация пробую с 0 написать.

Под тонкого клиента или обычного?<br>Если для обычного - смотрите свойства ТабличногоПоля, а не его колонки.

спс, все получилось сейчас буду дальше копать .

Александр Аркадьевич, поясните немного задачу. Какой именно код, вернее что именно вы хотите делать в "Форме Выбора" справочника "Номенклатура" при Открытии элемента (или же как только спозиционировались на нем?) И почему в Форме Выбора, а не в Форме Элемента?<br>Вобщем в справочнике Номенклатура есть несколько форм: "ФормаСписка", "ФормаГруппы", "ФормаЭлемента" и т.д. в том числе и "ФормаВыбора". Форма Выбора выглядит очень похоже как ФормаСписка , а служит при выборе элементов справочника Номенклатуры в каких-либо других Обработках, Документах. <br>Поэтому у меня и возникает вопрос: Что именно Вы хотите делать? Опишите без применения терминов 1С. Это мешает. Задачу опишите.<br>Но вообще говоря, например в ФормеЭлемента, используется предопределенная процедура "ПриОткрытии", т.е. те действия, которые описаны в той процедуре, выполняются при открытии ФормыЭлементы выбранного элемента справочника. Есть еще предопределенная процедура "ПередОткрытием". Там тоже делаются какие-то действия до того, как происходит открытие ФормыЭлемента. Т.е. поле "наименование" тоже имеет свойства и события. Это те события, которые могут происходить при том, что вы опишите эти события, т.е. если справа от события нажмете на кнопку "лупа", то в модуле данной формы сформируется автоматически некая процедура (пока пустая, без кода), а код вы должны наваять сами. <br>Но как мне кажется Вам всё-таки нужна ФормаЭлемента и процедура "ПриОткрытии" формы (если щелкнуть дважды по надписи "Элемент Номенклатура" белыми буквами на синем фоне, то справа откроется окно "Свойства формы"). Там в списке событий вы увидите много разных процедур. Некоторые поля будут заполнены, в основном - пустые. Если поле "событие" заполнено чем-то, то это означает что к этому событию уже есть процедура. Она присутствует в Модуле формы. Нажатие на лупу справа от имени процедуры, описывающей событие, спозиционирует Вас на коде внутри этой процедуры.<br>Если ответ не совсем понятен - пишите, постараюсь пояснить как-то по-другому

Открытие форм

Область применения: управляемое приложение, мобильное приложение.

1. Для открытия форм следует применять метод глобального контекста ОткрытьФорму (при использовании версии платформы 1С:Предприятие 8.2 и более ранних версий - также ОткрытьФормуМодально ). Применение альтернативного способа, с получением формы и ее последующим открытием с помощью метода ПолучитьФорму , не рекомендуется.

Рекомендация обусловлена соображениями

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

Кроме того, применение глобального метода ОткрытьФорму гарантирует выполнение инициализации формы на сервере в обработчике ПриСозданииНаСервере . Этот подход помогает сосредоточить весь код инициализации формы в одном месте и исключает "случайное" обращение к серверу, связанное с инициализацией формы, между строками кода

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

Параметры формы из этого набора могут быть указаны в вызывающем коде при открытии формы ( ОткрытьФорму ).

3. Не следует применять другие способы параметризации формы при открытии. Например, нужно избегать обращения к методам и свойствам формы после ее открытия.
Например, вместо

следует по той же причине использовать параметры формы:

ОткрытьФорму("ОбщаяФорма.ПутеводительПоСистеме", Новый Структура("РежимОткрытия", "Приветствие"));

4. Для получения результата работы формы, вместо непосредственного обращения к элементам и реквизитам формы

ФормаВопроса = ПолучитьФорму("ОбщаяФорма.ФормаВопроса");
ФормаВопроса.ОткрытьМодально();
Если ФормаВопроса.БольшеНеПоказыватьНапоминание Тогда
// …

следует использовать процедуры-обработчики оповещений, которые будут вызваны при завершении работы пользователя с формой:

Оповещение = Новый ОписаниеОповещения("БольшеНеПоказыватьНапоминаниеЗавершение", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ФормаВопроса". Оповещение, РежимОткрытияОкнаФормы.БлокироватьВеcьИнтерфейс);
.

&НаКлиенте
Процедура БольшеНеПоказыватьНапоминаниеЗавершение(БольшеНеПоказыватьНапоминание, Параметры) Экспорт

Если БольшеНеПоказыватьНапоминание = Неопределено Тогда
Возврат;
КонецЕсли;

Если БольшеНеПоказыватьНапоминание Тогда
// …

При этом возвращаемое значение формы формируется в коде модуля формы с помощью метода формы Закрыть .

5. Другие ограничения:

  • Обработчик события формы ПриОткрытии не должен содержать код по открытию какой-либо другой формы, так как это может привести к нарушению порядка отображения окон. В этом случае рекомендуется использовать обработчик ожидания на короткий интервал или открывать другие формы интерактивно, например, по нажатию на кнопку.
  • Не рекомендуется выполнять программное открытие и закрытие формы в одном обработчике. Такие действия должны быть разнесены по времени. Например, закрытие формы можно выполнять в обработчике ожидания.
  • При использовании в конфигурации Библиотека стандартных подсистем и разработке форм (рабочих мест), предназначенных только для внешних пользователей, следует явно блокировать открытие таких форм в сеансах "обычных" пользователей. Для этого следует устанавливать параметр Отказ при создании формы на сервере с помощью функции ЭтоСеансВнешнегоПользователя общего модуля Пользователи или ПользователиКлиент :

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если Не ПользователиКлиентСервер.ЭтоСеансВнешнегоПользователя() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;

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

6. Следующие виды форм должны быть всегда доступны пользователю в режиме 1С:Предприятия из меню "Все функции" вне зависимости от того, размещены ли соответствующие объекты в командном интерфейсе приложения или нет:

Введение в управляемая форма 1С реквизиты элементы команды

Рекомендуется модифицировать управляемые формы типового решения 1С программно для удобного будущего обновления и исключения конфликтов, а также для удобной работы с изменениями и надежности при использовании механизма расширений.
В некоторых типовых конфигурациях 1С (ЕРП 2, УТ 11) используется механизм упрощенного изменения конфигурации. Статьи о типовом механизме можно найти в разделе полезных ссылок. Данный механизм используется в БСП, и его необходимо знать при модификации типовых конфигураций.
При добавлении элементов на форму программно можно отредактировать практически любое свойство из панель свойств, которое можно установить вручную в конфигураторе.
Также все описанные в текущем разделе процедуры и функции находятся во внешней обработке УпрФормы.

Программное переопределение обработчиков событий формы и элементов формы

В теле модуля формы:

А в новой процедуре нужно добавить вызов основной, если такая процедура есть.

Аналогично можно поступить и с обработчиками элементов формы:

Программное создание групп формы.

Доступные виды групп формы:


Программное добавление команды на форму.

Удалить команду можно при помощи метода коллекции формы команд: Команды.Удалить(<Команда>). Удалять можно только те команды, которые были созданы программно.

Программное создание декораций форм.

Программное добавление реквизита на форму.

Добавлять новые реквизиты в управляемую форму и удалять необходимо с помощью метода ИзменитьРеквизиты(), куда в параметры передается массив добавляемых реквизитов и массив удаляемых. Удалять при этом можно только те реквизиты, которые были созданы программно.

Вывод реквизитов на форму.

Вызов процедур при создании на сервере 1С

После описания всех процедур выводим их в процедуре ПриСозданииНаСервере. Также можно изменить программно некоторые свойства формы, например, заголовок. Чтобы был виден только наш заголовок, нужно отключить свойство Автозаголовок.

Некоторые советы при программном редактировании формы


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

Читайте также: