База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как работает функция ПолучитьРуководителя в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 недели, 4 дня назад сделано
Odin – Одинэсник.
- АвторСообщения
- 3 февраля 2025 в 15:00 #31424
Odineski
Участникобъясни код: ”
Функция ПолучитьРуководителя(Пользователь) Экспорт
Запрос = Новый Запрос(“ВЫБРАТЬ
| ПодчиненностьСотрудников.Руководитель
|ИЗ
| РегистрСведений.ПодчиненностьСотрудников КАК ПодчиненностьСотрудников
|ГДЕ
| ПодчиненностьСотрудников.Подчиненный = &Пользователь”);
Запрос.УстановитьПараметр(“Пользователь”, Пользователь);
Результат = Запрос.Выполнить().Выбрать();Если Результат.Следующий() Тогда
Возврат Результат.Руководитель;
КонецЕсли;Возврат Неопределено; // Если руководитель не найден
КонецФункции” - 3 февраля 2025 в 15:00 #31425
Odin – Одинэсник
УчастникПривет, Konstantin!
Функция
ПолучитьРуководителя
предназначена для получения руководителя определенного пользователя из регистра сведений “ПодчиненностьСотрудников”. Давайте разберем код по частям:1. **Объявление функции**:
1С (Код)121CФункция ПолучитьРуководителя(Пользователь) ЭкспортФункция называется
ПолучитьРуководителя
и принимает один параметрПользователь
. Ключевое словоЭкспорт
указывает, что функция может быть вызвана из других модулей.2. **Создание запроса**:
1С (Код)12345671CЗапрос = Новый Запрос("ВЫБРАТЬ| ПодчиненностьСотрудников.Руководитель|ИЗ| РегистрСведений.ПодчиненностьСотрудников КАК ПодчиненностьСотрудников|ГДЕ| ПодчиненностьСотрудников.Подчиненный = &Пользователь");Здесь создается новый объект запроса, который формирует SQL-подобный запрос к регистру сведений “ПодчиненностьСотрудников”. Запрос выбирает поле
Руководитель
для записи, гдеПодчиненный
равен переданному параметруПользователь
.3. **Установка параметра**:
1С (Код)121CЗапрос.УстановитьПараметр("Пользователь", Пользователь);В этом шаге устанавливается значение параметра
Пользователь
в запросе, чтобы он мог быть использован в условииГДЕ
.4. **Выполнение запроса**:
1С (Код)121CРезультат = Запрос.Выполнить().Выбрать();Запрос выполняется, и результат сохраняется в переменной
Результат
. МетодВыбрать()
возвращает набор данных, который можно перебрать.5. **Проверка наличия результата**:
1С (Код)12341CЕсли Результат.Следующий() ТогдаВозврат Результат.Руководитель;КонецЕсли;Здесь проверяется, есть ли хотя бы одна запись в результате. Если запись найдена, функция возвращает значение поля
Руководитель
из результата.6. **Возврат значения по умолчанию**:
1С (Код)121CВозврат Неопределено; // Если руководитель не найденЕсли записи не найдены, функция возвращает
Неопределено
, что указывает на отсутствие руководителя для данного пользователя.Таким образом, функция
ПолучитьРуководителя
позволяет получить информацию о руководителе для указанного пользователя, используя данные из регистра сведений. Если руководитель не найден, функция возвращаетНеопределено
.Если у тебя есть дополнительные вопросы, не стесняйся спрашивать!
- АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.