Имя: Пароль:
1C
1С v8
Открытие записи РС в УФ
,
0 VashKollega
 
11.12.14
07:04
Сразу оговорюсь, я уже искал на форму и нашел подобные материалы. Пишу как там. Но пока безрезультатно.
Никак не получается открыть запись программно.
Причем я пробовал убрал периодичность у регистра, и все работало. Но как только я ставлю периодичность по дню - все. Ключ вроде получаю, а форма открываться не хочет.
Привожу код:

&НаСервереБезКонтекста
Функция ПолучитьКлючЗаписи(датаДня, ссылкаСотрудник)
    
    Возврат РегистрыСведений.ДанныеПоСотрудникам.СоздатьКлючЗаписи(Новый Структура("Период,Сотрудник", датаДня, ссылкаСотрудник));
    
КонецФункции                                                                              

&НаКлиенте
Процедура ИзменитьЗаписьДанныхПоСотрудникам(Команда)
    
    строкатзТекущаяЗапись = Элементы.ДанныеПоСотрудникам.ТекущиеДанные;
    Если НЕ строкатзТекущаяЗапись = Неопределено Тогда
        ОткрытьФорму("РегистрСведений.ДанныеПоСотрудникам.ФормаЗаписи", ПолучитьКлючЗаписи(строкатзТекущаяЗапись.Период, строкатзТекущаяЗапись.Сотрудник));
    КонецЕсли;                                                                                                                                        
    
КонецПроцедуры
1 VashKollega
 
11.12.14
07:06
Дополнительно:
Ошибка следующая:

{Обработка.ДанныеПоСотрудникам.Форма.Форма.Форма(73)}: Ошибка при вызове метода контекста (ОткрытьФорму)
        ОткрытьФорму("РегистрСведений.ДанныеПоСотрудникам.ФормаЗаписи", ПолучитьКлючЗаписи(строкатзТекущаяЗапись.Период, строкатзТекущаяЗапись.Сотрудник));
по причине:
Несоответствие типов (параметр номер '2')

Проверял в отладчике, ключ создается хорошо, то есть из верверной функции приходит нормальное значение, но вот форма не открывается.
2 slin-dev
 
11.12.14
07:17
Второй параметр должен быть типа Структура, а у тебя РегистрСведенийКлючЗаписи
3 VashKollega
 
11.12.14
07:26
Поправил на такой вариант, в итоге ошибок нет, но открывает форму новой записи, а не выбранную строку.

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

&НаКлиенте
Процедура ИзменитьЗаписьДанныхПоСотрудникам(Команда)
    
    строкатзТекущаяЗапись = Элементы.ДанныеПоСотрудникам.ТекущиеДанные;
    Если НЕ строкатзТекущаяЗапись = Неопределено Тогда
        ОткрытьФорму("РегистрСведений.ДанныеПоСотрудникам.ФормаЗаписи", ПолучитьКлючЗаписи(строкатзТекущаяЗапись.Период, строкатзТекущаяЗапись.Сотрудник));
    КонецЕсли;                                                                                                                                        
    
КонецПроцедуры
4 VashKollega
 
11.12.14
07:26
Получается, что все равно не работает.
5 VashKollega
 
11.12.14
07:57
Может кто знает?
Ошибка? Это не ошибка, это системная функция.