Вход | Регистрация
 

Автоматический выбор сотрудника при выборе подразделения

Автоматический выбор сотрудника при выборе подразделения
Я
   Филипп Остырко
 
10.04.19 - 13:15
Функция мСотрудник(мПодразделение);
    
В независимый РС в форму набора записи записал данные с измерениями Подразделение(спр), Сотрудник(спр), ОтветственноеЛицо (перечисление, где список должностей).В Ответственноелицо выбрал "Руководитель" из перечисления.
Написал что написал ,опыта мало, ничего не возвращается.  

&НаКлиенте
Процедура ПодрПолучательПриИзменении(Элемент)

   Объект.ОтветственноеЛицоПолуч = мСотрудник(Объект.ПодрПолучатель);
КонецПроцедуры
    
&НаСервереБезКонтекста
Функция мСотрудник(мПодразделение);

        
        Результат = Новый Структура("РуководительФИО");
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ОтветственныеЛицаСрезПоследних.Сотрудник,
        |    ОтветственныеЛицаСрезПоследних.Подразделение,
        |    ОтветственныеЛицаСрезПоследних.ОтветственноеЛицо
        |ИЗ
        |    РегистрСведений.ип_ДРГОтветственныеЛица.СрезПоследних КАК ОтветственныеЛицаСрезПоследних";
        
        Запрос.УстановитьПараметр("ОтветственноеЛицо", Перечисления.ОтветственныеЛица.Руководитель);
        
        Руководители = Запрос.Выполнить().Выбрать();
        Если Руководители.ОтветственноеЛицо      = Перечисления.ОтветственныеЛица.Руководитель Тогда
            
            Результат.РуководительФИО        = Руководители.Сотрудник;
        КонецЕсли;
    
    Возврат Результат;
    
КонецФункции
 
 
   RomaH
 
1 - 10.04.19 - 13:17
про типы переменных почитай
   RomaH
 
2 - 10.04.19 - 13:17
ничего не возвращается - врешь ведь
   catena
 
3 - 10.04.19 - 13:18
А зачем в физлицо структуру пихать?
   RomaH
 
4 - 10.04.19 - 13:18
ОтветственноеЛицо  -  у тебя ссылка на перечисление
а возвращаешь ты структуру
   catena
 
5 - 10.04.19 - 13:19
Код не рабочий вообще. Где перебор выборки? Зачем условие не в запросе?
   Darych
 
6 - 10.04.19 - 13:19
+ Руководители.Следующий() - у тебя выборка в вакууме
   piter3
 
7 - 10.04.19 - 13:20
а зачем параметр если по нему ничего не отбирается)
   Филипп Остырко
 
8 - 10.04.19 - 13:20
(2) в отладчике посмотрел , возвращается "Структура" , но поле сотрудника пусто выходит
   Zmich
 
9 - 10.04.19 - 13:21
(0).  Руководители = Запрос.Выполнить().Выбрать(); 
        Если Руководители.ОтветственноеЛицо      = Перечисления.ОтветственныеЛица.Руководитель Тогда 
==>
Руководители = Запрос.Выполнить().Выбрать(); 
Если Руководители.Следующий() Тогда
        Если Руководители.ОтветственноеЛицо      = Перечисления.ОтветственныеЛица.Руководитель Тогда
   Temai
 
10 - 10.04.19 - 13:32
Никого не смутило что он устанавливает параметр запроса которого нет в запросе..
   piter3
 
11 - 10.04.19 - 13:37
(10) А что думаешь написали в (7) и (8) :)
   Temai
 
12 - 10.04.19 - 13:38
(11) Сорян, не увидел)
   piter3
 
13 - 10.04.19 - 13:39
Может проще будет поиском пройтись по конфе и скопировать код чем мучатся
   Филипп Остырко
 
14 - 10.04.19 - 13:49
переделал так :
Функция мСотрудник(мПодразделение);
    
    Если мПодразделение <> Неопределено тогда
        
        Результат = Новый Структура();
        Запрос = Новый Запрос;
        Запрос.Текст = 
        "ВЫБРАТЬ
        |    ип_ДРГОтветственныеЛицаСрезПоследних.Сотрудник,
        |    ип_ДРГОтветственныеЛицаСрезПоследних.Подразделение,
        |    ип_ДРГОтветственныеЛицаСрезПоследних.ОтветственноеЛицо,
        |    ип_ДРГОтветственныеЛицаСрезПоследних.Должность
        |ИЗ
        |    РегистрСведений.ип_ДРГОтветственныеЛица.СрезПоследних(&Дата, ) КАК ип_ДРГОтветственныеЛицаСрезПоследних";
        
        Запрос.УстановитьПараметр("ОтветственноеЛицо", Перечисления.ип_ДРГОтветственныеЛица.Руководитель);
        Запрос.УстановитьПараметр("Дата",Объект.Дата);                                           
        Выборка = Запрос.Выполнить().Выбрать();
        Пока Выборка.Следующий() цикл
            Результат.Вставить("Сотрудник", Выборка.Сотрудник);
        
        КонецЦикла;
        
    КонецЕсли;
    Возврат Результат;
    
КонецФункции
   catena
 
15 - 10.04.19 - 13:53
(14)Молодец. Осталось разобраться с параметром ОтветственноеЛицо и присвоением.
   Darych
 
16 - 10.04.19 - 14:21
Результат.Вставить("Сотрудник", Выборка.Сотрудник);  в цикле...
смотри в сторону массива

ну и (15) тебе намекает, что если ты параметр устанавливаешь, то он где-то должен иметь место быть в запросе)
   Филипп Остырко
 
17 - 10.04.19 - 14:26
Спасибо за подсказки

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.