Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 02:51

Открытии формы справочника, через форму документа

Автор kot_oo, 11 окт 2013, 15:40

0 Пользователей и 1 гость просматривают эту тему.

kot_oo

Когда открываешь форму документа, у полей с права есть кнопка ПриОткрытии (Лупа), когда на нее нажимаешь открывается форма справочника этого объекта

вопрос

как сделать так когда открывается эта форма справочника объекта, была она в режиме только для просмотра

mixqn

у поля ввода есть событие - Открытие.
Создайте процедуру-обработчик этого события с вот таким кодом:
Процедура ПолеВвода1Открытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗначениеЭлемента = Элемент.Значение;
Если ЗначениеЗаполнено(ЗначениеЭлемента) Тогда
ФормаЭлемента = ЗначениеЭлемента.ПолучитьФорму(,,);
ФормаЭлемента.ТолькоПросмотр = Истина;
ФормаЭлемента.Открыть();
КонецЕсли;
КонецПроцедуры

kot_oo

Цитата: mixqn от 11 окт 2013, 15:49
у поля ввода есть событие - Открытие.
Создайте процедуру-обработчик этого события с вот таким кодом:
Процедура ПолеВвода1Открытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗначениеЭлемента = Элемент.Значение;
Если ЗначениеЗаполнено(ЗначениеЭлемента) Тогда
ФормаЭлемента = ЗначениеЭлемента.ПолучитьФорму(,,);
ФормаЭлемента.ТолькоПросмотр = Истина;
ФормаЭлемента.Открыть();
КонецЕсли;
КонецПроцедуры


Спасибо
Добавлено: 11 окт 2013, 15:56


Цитата: mixqn от 11 окт 2013, 15:49
у поля ввода есть событие - Открытие.
Создайте процедуру-обработчик этого события с вот таким кодом:
Процедура ПолеВвода1Открытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗначениеЭлемента = Элемент.Значение;
Если ЗначениеЗаполнено(ЗначениеЭлемента) Тогда
ФормаЭлемента = ЗначениеЭлемента.ПолучитьФорму(,,);
ФормаЭлемента.ТолькоПросмотр = Истина;
ФормаЭлемента.Открыть();
КонецЕсли;
КонецПроцедуры


В 8.2 не получилось, ругается

mixqn

ах да, я не уточнил. мой код для обычных форм. не для управляемых.

kot_oo

Цитата: mixqn от 11 окт 2013, 15:57
ах да, я не уточнил. мой код для обычных форм. не для управляемых.

Спасибо, что нибудь придумаем

mixqn

на сколько я понял, для управляемого приложения вместо
ЗначениеЭлемента = Элемент.Значение;
нужно использовать
ЗначениеЭлемента = Объект.Реквизит1;
где Реквизит1 - имя реквизита, который вам надо открыть.

Второе изменение - вместо
ФормаЭлемента = ЗначениеЭлемента.ПолучитьФорму(,,);
будет
П = Новый Структура("Ключ", Поставщик);
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П);
Форма.Открыть();

только параметры формы надо будет задать ваши (в зависимости от типа реквизита)

kot_oo

Цитата: mixqn от 11 окт 2013, 16:15
на сколько я понял, для управляемого приложения вместо
ЗначениеЭлемента = Элемент.Значение;
нужно использовать
ЗначениеЭлемента = Объект.Реквизит1;
где Реквизит1 - имя реквизита, который вам надо открыть.

Второе изменение - вместо
ФормаЭлемента = ЗначениеЭлемента.ПолучитьФорму(,,);
будет
П = Новый Структура("Ключ", Поставщик);
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П);
Форма.Открыть();

только параметры формы надо будет задать ваши (в зависимости от типа реквизита)

Открывает пустую форму для записи,
изменил стандартную обработку на истину, открывает сначало заполненую форму, потом открывает пустую форму для заполнения

mixqn

стандартную обработку на истину точно менять не стоит. в этом случае весь остальной код смысла не имеет - будет открыта стандартная форма, а потом только код выполнится, что вы и наблюдаете

kot_oo

Цитата: mixqn от 11 окт 2013, 16:40
стандартную обработку на истину точно менять не стоит. в этом случае весь остальной код смысла не имеет - будет открыта стандартная форма, а потом только код выполнится, что вы и наблюдаете

Я вот только не пойму почему она пустая открывается без заполненных реквизитов объекта

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск