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

Открыть существующую форму записи регистра сведений

Автор WeSs, 13 июн 2019, 10:58

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

WeSs

Добрый день господа, нужна помощь! 1с 8.2

Суть задачи: На форме есть объект "ПолеТабличногоДокумента", данными которого являются записи регистра сведений. При событии Выбор в табличном документе, нужно открыть форму записи регистра сведений, выбранного элемента в табличном документе.

Заранее спасибо

wise

(0) НАДО заполнить параметр поля расшифровка...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

LexaK

для управляемых форм)(
в вашем ПолеТабДок добавьте событие Выбор

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
// Вставить содержимое обработчика.
лкТД = Элементы.Список.ТекущиеДанные;

лкДанные = Новый Структура("Настройка,Использовать,Параметр1,Параметр2"); //реквизиты измерения
ЗаполнитьЗначенияСвойств(лкДанные, лкТД);

//не понял, доступность Клиент, Сервер,все равно ругается
//лкКлюч = Новый РегистрСведенийКлючЗаписи.КакойТоВашРегитр(лкДанные);
лкКлюч = лкТД.Настройка
+ ЗначениеВСтрокуНаСервере(лкТД.Параметр1)
+ ЗначениеВСтрокуНаСервере(лкТД.Параметр2);


ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("КлючЗаписи", лкДанные);

ОткрытьФорму("РегистрСведений.КакойТоВашРегитр.ФормаЗаписи", ПараметрыФормы, ЭтаФорма, лкКлюч);

КонецПроцедуры
если помогло нажмите: Спасибо!

WeSs

Спасибо за ответ. Забыл указать, что формы НЕ управляемые

Цитата: LexaK от 13 июн 2019, 11:34
для управляемых форм)(
в вашем ПолеТабДок добавьте событие Выбор

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
// Вставить содержимое обработчика.
лкТД = Элементы.Список.ТекущиеДанные;

лкДанные = Новый Структура("Настройка,Использовать,Параметр1,Параметр2"); //реквизиты измерения
ЗаполнитьЗначенияСвойств(лкДанные, лкТД);

//не понял, доступность Клиент, Сервер,все равно ругается
//лкКлюч = Новый РегистрСведенийКлючЗаписи.КакойТоВашРегитр(лкДанные);
лкКлюч = лкТД.Настройка
+ ЗначениеВСтрокуНаСервере(лкТД.Параметр1)
+ ЗначениеВСтрокуНаСервере(лкТД.Параметр2);


ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("КлючЗаписи", лкДанные);

ОткрытьФорму("РегистрСведений.КакойТоВашРегитр.ФормаЗаписи", ПараметрыФормы, ЭтаФорма, лкКлюч);

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


LexaK

тогда так (пример, вариант)

//отбор по измерениям
Отбор = Новый Структура;
Отбор.Вставить("Пользователь",Выборка.Пользователь);
Отбор.Вставить("Автор",Выборка.Автор);
Ключ = РегистрыСведений.ВашРегистр.СоздатьКлючЗаписи(Отбор);
                  
Форма = РегистрыСведений.ВашРегистр.ПолучитьФорму("ФормаЗаписи" , ,Ключ);
Если Форма.Открыта() Тогда
    Форма.Активизировать();
Иначе
    Форма.Открыть();
КонецЕсли;
если помогло нажмите: Спасибо!

WeSs

Уточнение. "Пользователь" и "Автор" это измерения или ресурсы регистра? Регистр построен так, что поиск производить необходимо по ресурсам

Цитата: LexaK от 13 июн 2019, 12:36
тогда так (пример, вариант)

//отбор по измерениям
Отбор = Новый Структура;
Отбор.Вставить("Пользователь",Выборка.Пользователь);
Отбор.Вставить("Автор",Выборка.Автор);
Ключ = РегистрыСведений.ВашРегистр.СоздатьКлючЗаписи(Отбор);
                  
Форма = РегистрыСведений.ВашРегистр.ПолучитьФорму("ФормаЗаписи" , ,Ключ);
Если Форма.Открыта() Тогда
    Форма.Активизировать();
Иначе
    Форма.Открыть();
КонецЕсли;

LexaK

в комменте написано
//отбор по измерениям
что в слове "по измерениям"
ключом является набор значений измерений
если помогло нажмите: Спасибо!

WeSs

Понял. А осуществить поиск по ресурсам возможно?

Цитата: LexaK от 13 июн 2019, 14:01
в комменте написано
//отбор по измерениям
что в слове "по измерениям"
ключом является набор значений измерений

LexaK

зачем вам поиск по ресурсам? вы стоите на строчке с заданным ключом!
по Ключу, только одна запись может быть,
если у вас регистр без измерений, просто получаете форму и заполняете ее данными из текущей строки
по вашей постановке пользователь уже выбрал/нашел нужную строчку, которую надо отредактировать/изменить в регистре
если помогло нажмите: Спасибо!

WeSs

Повторюсь. Регистр построен так, что измерения у каждой записи одинаковые. Отличаются только ресурсы. В связи с этим и вопрос. Реально ли осуществить поиск по ресурсам?


Цитата: LexaK от 13 июн 2019, 15:07
зачем вам поиск по ресурсам? вы стоите на строчке с заданным ключом!
по Ключу, только одна запись может быть,
если у вас регистр без измерений, просто получаете форму и заполняете ее данными из текущей строки
по вашей постановке пользователь уже выбрал/нашел нужную строчку, которую надо отредактировать/изменить в регистре

Теги:

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

Рейтинг@Mail.ru

Поиск