Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 15:53

Нужно получить должность текущего пользователя

Автор VitaCat, 23 янв 2017, 10:18

0 Пользователей и 1 гость просматривают эту тему.

VitaCat

Здравствуйте. Никак не могу получить должность текущего пользователя (нужно для автоматического заполнения в отчете).

ФизЛицоТекПользователя = ПараметрыСеанса.ТекущийПользователь.ФизическоеЛицо;

   Запрос = Новый Запрос(
      "ВЫБРАТЬ
      |   ЕСТЬNULL(ДанныеСотрудниковСрезПоследних.Должность, ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка)) КАК Должность,
      |   ЕСТЬNULL(Сотрудники.Ссылка, ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)) КАК Сотрудник,
      |   ЕСТЬNULL(ФизическиеЛица.Ссылка, ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)) КАК ФизическоеЛицо
      |ИЗ
      |   Справочник.ФизическиеЛица КАК ФизическиеЛица
      |      ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
      |         ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеСотрудников.СрезПоследних КАК ДанныеСотрудниковСрезПоследних
      |         ПО Сотрудники.Ссылка = ДанныеСотрудниковСрезПоследних.Сотрудник
      |      ПО ФизическиеЛица.Представление = Сотрудники.Представление
      |ГДЕ
      |   ФизическиеЛица.Ссылка = &ФИО");
   
   Запрос.УстановитьПараметр("ФИО", ФизЛицоТекПользователя);   
   РезультатЗапроса = Запрос.Выполнить();   
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
      
   ДолжностьОтветственного = ВыборкаДетальныеЗаписи.Должность;



depb

Должность в цикле получал?

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Должность = ВыборкаДетальныеЗаписи.Должность;
КонецЦикла

VitaCat

Цитата: depb от 23 янв 2017, 10:33Должность в цикле получал?
Что с циклом, что без. В выражении ВыборкаДетальныеЗаписи ошибки чтения значений.


Добавлено: 23 янв 2017, 11:21


Вопрос снят. Напортачил в связях между таблицами. Теперь должность выводится.

ФизЛицо = ПараметрыСеанса.ТекущийПользователь.ФизическоеЛицо;

   Запрос = Новый Запрос(
      "ВЫБРАТЬ
      |   ЕСТЬNULL(ДанныеСотрудниковСрезПоследних.Должность, ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка)) КАК Должность,
      |   ЕСТЬNULL(Сотрудники.Ссылка, ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)) КАК Сотрудник
      |ИЗ
      |   Справочник.ФизическиеЛица КАК ФизическиеЛица
      |      ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
      |         ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеСотрудников.СрезПоследних КАК ДанныеСотрудниковСрезПоследних
      |         ПО Сотрудники.Ссылка = ДанныеСотрудниковСрезПоследних.Сотрудник
      |      ПО ФизическиеЛица.Наименование = Сотрудники.Наименование
      |ГДЕ
      |   ФизическиеЛица.Ссылка = &ФИО
      |
      |СГРУППИРОВАТЬ ПО
      |   ЕСТЬNULL(ДанныеСотрудниковСрезПоследних.Должность, ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка)),
      |   ЕСТЬNULL(Сотрудники.Ссылка, ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка))");
   
   Запрос.УстановитьПараметр("ФИО", ФизЛицо);   
   РезультатЗапроса = Запрос.Выполнить();
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
   
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      Должность = ВыборкаДетальныеЗаписи.Должность;
   КонецЦикла;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск