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

Выбор сотрудника

Автор Shaman_blr, 26 апр 2023, 15:25

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

Shaman_blr

Всем привет подскажите можно ли как то при выборе сотрудника запросом убрать чтобы не попадался удаленный элемент.
где 00000000002 это помеченный на удаление.

LexaK

да, в настройках укажите Отбор ПометкаУдаления  = Ложь
или там где формируется список выбора это условие добавьте
(по картинке не очень понятно, что за база, форма, режим выбора и т.д.)
если помогло нажмите: Спасибо!

Shaman_blr

LexaK,
Пользователь = Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(ИмяПользователя());
Возврат Пользователь;
я так ищу и он находит удаленный элемент
в ИмяПользователя() прилетает код 00000000002 который помечен на удаление,
а должен код 09133. 

Afinogen

Shaman_blr, так это же не запрос


Afinogen

"
|ВЫБРАТЬ *
|ИЗ Справочник.СотрудникиОрганизаций КАК Сотрудники
|ГДЕ НЕ Сотрудники.ПометкаУдаления"

Shaman_blr

Afinogen,

есть на форме "поле" и "кнопка"
в поле тип СотрудникОрганизации выбирается сотрудник.
На кнопке написано это
Если Исполнитель()= Пользователь() Тогда
Испольнитель() Это и есть поле с типом СотрудникОрганизации.

а пользователь() это
Пользователь = Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(ИмяПользователя());
Возврат Пользователь;

Получается в Поле прилетает правильный сотрудник.
В пользователь прилетает с пометкой на удаление.
И при сравнение он ругается, так как у них код разный.

Afinogen

 B) и в чем вопрос? вам надо  при  изменении сотрудника искать правильного  пользователя? у пользователя есть реквизит сотрудник?

Shaman_blr

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

Запрос.УстановитьПараметр("Ссылка", Объект.ФИОИсполнитель);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Номер = ВыборкаДетальныеЗаписи.Номер;
Сотрудник = ВыборкаДетальныеЗаписи.Ссылка;
//НомерПрав = Прав(Номер,8);
//Объект.Телефон = Номер;
Объект.МенеджерТелефонныйНомер = Номер;
Объект.ФИОИсполнитель = Сотрудник;
//Объект.Телефон = НомерПрав;
Возврат;
КонецЦикла;

А пользователь()
&НаСервере
Функция Пользователь() // возвращает ФИО Загруженного пользователя
Пользователь = Справочники.ФизическиеЛица.НайтиПоНаименованию(ИмяПользователя());
Возврат Пользователь;
КонецФункции

И он просто ищет в сотрудника загружаемого пользователя. И ищет который помечен на удаление.
как в пользователь() переделать чтобы он возвращал ИмяПользователя() через запрос чтобы я мог указать пометку на удаление Ложь)


Ошибка в том что когда пользователь жмет подписать идет проверка
  Если Исполнитель()= Пользователь() Тогда В исполнитель верный элемент.
В пользователь помеченный на удаление.
 

LexaK

а что в этой процедуре
ИмяПользователя() - ?
если помогло нажмите: Спасибо!

Shaman_blr

LexaK, жму f12 не переходит, какая та системная. Тип у ИмяПользователя() строка:)

Теги:

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

Рейтинг@Mail.ru

Поиск