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