Имя: Пароль:
1C
 
Открыть запись регистра сведений на обычных формах
Ø (Волшебник 06.09.2024 09:43)
0 НоваяВолна
 
05.09.24
11:25
Помогите, что-то туплю. На форме есть табличная часть в которой заполняются данные из регистра сведений. Колонки Сотрудник, Дата1, Дата2, Дата3 ... и т.д. Сам регистр с периодичностью "В пределах дня" и с одним измерением - Сотрудник
Надо при выборе ячейки с датой открывать Форму записи РС. Делаю так:
Код
  КлючЗаписи = Неопределено;
            Отбор = Новый Структура;
            Отбор.Вставить("Период", ДатаКолонки);
            Отбор.Вставить("Сотрудник", ВыбраннаяСтрока.Сотрудник);
            Рег =  РегистрыСведений.ГрафикиРаботы;
            КлючЗаписи = Рег.СоздатьКлючЗаписи(Отбор);
            Если НЕ КлючЗаписи = Неопределено Тогда
                Параметрыформы = Новый Структура("Ключ", КлючЗаписи);
                Форма = Рег.ПолучитьФорму("ФормаЗаписи", , Параметрыформы);
                // ОткрытьФорму("РегистрСведений.СпискиЛиц.ФормаЗаписи", Параметрыформы);
                   // такая конструкция сработала бы  на управляемых формах, а обычных ее нет
                Форма.Открыть();;
            КонецЕсли;    

  

Но в результате открывается пустая форма записи РС, хотя в ключе вижу и Сотрудника и Дату. Есть закомметированная строка кода, она бы сработала на УФ, а в ОФ такой команды нет.
1 Ненавижу 1С
 
05.09.24
11:29
В ОФ надо создать менеджер записи и у него вызвать получить форму
2 НоваяВолна
 
05.09.24
12:03
(1) Благодарю за помощь,вот так сработало:
    КлючЗаписи = Неопределено;
            Отбор = Новый Структура;
            Отбор.Вставить("Период", ДатаКолонки);
            Отбор.Вставить("Сотрудник", ВыбраннаяСтрока.Сотрудник);
            Рег =  РегистрыСведений.ГрафикиРаботы;
            КлючЗаписи = Рег.СоздатьКлючЗаписи(Отбор);
            МЗ = РегистрыСведений.ГрафикиРаботы.СоздатьМенеджерЗаписи();
            МЗ.Период = ДатаКолонки;
            МЗ.Сотрудник =   ВыбраннаяСтрока.Сотрудник;
            МЗ.Прочитать();
            МЗ.ПолучитьФорму("ФормаЗаписи", ,КлючЗаписи ).Открыть();
3 Ненавижу 1С
 
05.09.24
15:31
Очень странный ключ уникальности. Он точно нужен?
4 НоваяВолна
 
05.09.24
23:48
(3) Моя задача отобрать запись в РС по Сотруднику (измерение РС) и дате в табличной части формы, которую я приравниваю к Периоду РС.
   Поэтому Отбор у меня по Периоду и Сотруднику. Намекните, в чем вы видите ошибку. Регистр строил сам. Его задача - учет работы сотрудников по датам. Что-то вроде мини табеля рабочих дней, прикрученных к УТ 10.3, сильно переписанной, с полным фаршем говнокода (два, а то и три запроса в Цикле, а то и в друх циклах... )
  Основная задача в данном случае - визуализация заполнения графика. Плюс его хранение в регистре, исключая дублирование и удаление данных.