Имя: Пароль:
1C
1С v8
Не работает событие при активизации строки
0 UUmmmmm
 
08.10.19
12:14
Есть две табличные части: кафедры и дисциплины. Нужно, чтобы при нажатии на строку из кафедр, показывались соответствующие дисциплины. Также у этих ТЧ есть реквизит Ключ Кафедры. Если его заполнять самостоятельно, то тогда все работает, а без заполнения нет. Но он должен быть не видим пользователю. Как сделать чтобы все работало без заполнения ключа?

&НаКлиенте
Процедура КафедрыПриАктивизацииСтроки(Элемент)
    ТекДанные = Элементы.Кафедры.ТекущиеДанные;
    Если ТекДанные = Неопределено Тогда
        Возврат;
    КонецЕсли;    
    
    ТекКлючКафедры                     = ТекДанные.КлючКафедры;
    ФиксСтруктураОтбора             = Новый ФиксированнаяСтруктура("КлючКафедры", ТекКлючКафедры);    
    Элементы.Дисциплины.ОтборСтрок         = ФиксСтруктураОтбора;

КонецПроцедуры
1 ДенисЧ
 
08.10.19
12:19
ЯНХНП
2 Жан Пердежон
 
08.10.19
12:24
в общем я проверил, событие работает;
осталось разобраться с дичью в голове у ТС)
3 hhhh
 
08.10.19
12:29
(0) заполняйте этот ключ в программе
4 UUmmmmm
 
08.10.19
12:33
(2) ну оно работает если самостоятельно заполнять ключ, это поле должно быть скрыто, и он должен сам заполняться
5 ДенисЧ
 
08.10.19
12:35
(4) Ну так заполняй его программно. Кто-то запрещает?
6 UUmmmmm
 
08.10.19
12:37
(5) пробовала вот так и все равно не работает, у ключа кафедры остается ноль

&НаСервере
Функция ПолучитьКлючНовойСтрокиКафедрСервер()
    НовыйКлючКафедры = 1;
    
    нТЗ = Объект.Кафедры.Выгрузить(,"КлючКафедры").Скопировать();
    нТЗ.Сортировать("КлючКафедры Убыв");
    
    Если нТЗ.Количество() > 0 Тогда
        НовыйКлючКафедры = нТЗ[0].КлючКафедры + 1;
    КонецЕсли;
    
    Возврат НовыйКлючКафедры;
КонецФункции

&НаКлиенте
Процедура КафедрыПриАктивизацииСтроки(Элемент)
    ТекДанные = Элементы.Кафедры.ТекущиеДанные;
    Если ТекДанные = Неопределено Тогда
        Возврат;
    КонецЕсли;    
    
    ТекКлючКафедры                     = ТекДанные.КлючКафедры;
    ФиксСтруктураОтбора             = Новый ФиксированнаяСтруктура("КлючКафедры", ТекКлючКафедры);    
    Элементы.Дисциплины.ОтборСтрок         = ФиксСтруктураОтбора;

КонецПроцедуры
7 Sasha_H
 
08.10.19
12:40
Я ВООБЩЕ НИ ХЕРА НЕ ПОНЯЛ. Я один такой!?
8 UUmmmmm
 
08.10.19
12:48
вообщем как его программно заполнить?
9 catena
 
08.10.19
12:50
(6)Где здесь заполнение?
10 UUmmmmm
 
08.10.19
12:53
(9) подскажите как заполнить
11 catena
 
08.10.19
12:56
(10)Чаще всего заполняют присвоением (=).
12 Sasha_H
 
08.10.19
12:57
Надо посомтреть скорее всего в процедуре ПриСозданииНаСервере
13 Sasha_H
 
08.10.19
13:03
нТЗ = Объект.Кафедры.Выгрузить(,"КлючКафедры").Скопировать();
14 Sasha_H
 
08.10.19
13:03
не понял на хера Скопировать*() ???
15 Sasha_H
 
08.10.19
13:05
Выгрузить()

Возвращаемое значение:

Тип: ТаблицаЗначений.

Описание:

Создает таблицу значений и копирует в нее данные коллекции. Имена колонок таблицы значений совпадают с именами колонок коллекции. Колонка, содержащая номер строки, выгружается в колонку с именем НомерСтроки.

Зачем получившуюся ТЗ еще раз копировать? это такой финт ушами!?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан