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