К статье
Практический материал

Разработка и Конфигурация · 11 мин

Как получить руководителя организации в 1С

Как получить руководителя организации в 1С: через интерфейс, ответственные лица и кодом на встроенном языке. Проверка результата, ошибки и FAQ.

Руководитель организации в 1С — это не просто строка в карточке компании, а данные, которые подставляются в печатные формы, доверенности, отчётность и подписи документов. Поэтому задача «получить руководителя» возникает в двух ситуациях: когда нужно вручную проверить или изменить запись и когда значение требуется программно — в обработке, отчёте или при формировании документа.

Подход зависит от конфигурации и её режима. В типовых решениях на базе Библиотеки стандартных подсистем (БСП) — «1С:Бухгалтерия 8», «Управление торговлей», «ERP», «Зарплата и управление персоналом» — сведения об ответственных лицах хранятся в специальных механизмах с учётом периодичности. В самописных конфигурациях руководитель может быть простым реквизитом справочника «Организации». Ниже разобраны оба сценария: через интерфейс и кодом.

Где вообще хранится руководитель в 1С

Прежде чем что-то получать, нужно понять модель хранения. В типовых конфигурациях руководитель почти никогда не является реквизитом справочника «Организации» напрямую. Вместо этого используется регистр сведений «Ответственные лица организаций» (в ряде решений — схожие механизмы через «Подписи» или «Ответственные лица»), где для каждой организации и вида ответственного лица фиксируется физическое лицо и период действия.

Такая схема нужна, потому что руководители меняются, а документы прошлых периодов должны печататься с тем руководителем, который действовал на дату документа. Поэтому любое «получение» руководителя в типовой конфигурации всегда привязано к дате: система ищет запись, актуальную на указанный момент.

В нетиповых и простых конфигурациях встречаются варианты: реквизит «Руководитель» в справочнике организаций, реквизит «ФизическоеЛицо» с отдельным хранением должности, либо собственный регистр сведений. Универсального ответа нет — проверяйте структуру метаданных конкретной базы через конфигуратор.

Как посмотреть и изменить руководителя через интерфейс

В «1С:Бухгалтерии 8» (ред. 3.0) откройте раздел «Главное» → «Реквизиты организации» или «Главное» → «Организации» и перейдите в карточку нужной организации. В карточке есть блок «Подписи» или ссылка «Ответственные лица» — там указаны руководитель, главный бухгалтер и другие подписанты с датами начала полномочий.

В «1С:Зарплата и управление персоналом» и «ERP» путь похожий: карточка организации → «Ответственные лица» (иногда «Подписанты»). Запись создаётся на конкретную дату, и при смене руководителя нужно добавить новую строку, а не редактировать старую — иначе документы прошлых периодов начнут подписываться новым человеком.

Если в карточке организации такого блока нет, проверьте журнал «Ответственные лица» через «Все функции» (в режиме тонкого клиента: главное меню → «Все функции» → регистры сведений). Наличие регистра и его состав подскажут, как именно устроено хранение в вашей конфигурации.

Как проверить руководителя в карточке организации
  1. 1
    Откройте справочник «Организации» и карточку нужной компании
  2. 2
    Найдите блок «Подписи» или ссылку «Ответственные лица»
  3. 3
    Проверьте строку «Руководитель»: физическое лицо и дату начала действия
  4. 4
    При смене руководителя добавьте новую запись с датой, не перезаписывая старую
  5. 5
    Сформируйте любую печатную форму с подписью и убедитесь, что подставлены верные ФИО

Как получить руководителя программно в типовой конфигурации

В конфигурациях на базе БСП есть готовые функции, и использовать их правильнее, чем обращаться к регистру напрямую: они учитывают периодичность, права и особенности конкретного решения. Типичный вариант для «1С:Бухгалтерии»:

Ответственные = ОтветственныеЛицаБП.ОтветственныеЛица(Организация, ДатаДокумента);

Руководитель = Ответственные.Руководитель; // ссылка на физлицо

РуководительФИО = Ответственные.РуководительФИО; // структура с ФИО

Должность = Ответственные.РуководительДолжность; // ссылка на должность

В конфигурациях, где используется подсистема БСП напрямую (например, «Управление торговлей», «ERP»), применяется общий модуль «ОтветственныеЛицаСервер» или функция вида:

СтруктураЛиц = ОтветственныеЛицаСервер.ПолучитьОтветственныеЛицаОрганизации(Организация, Дата);

Руководитель = СтруктураЛиц.Руководитель;

Точные имена модулей и полей возвращаемой структуры отличаются между конфигурациями и даже релизами. Надёжный способ узнать их — найти в конфигураторе, как печатная форма документа получает подписанта: откройте модуль менеджера документа «Счёт на оплату» или «Реализация товаров» и посмотрите вызов, формирующий данные подписи.

Как получить руководителя из регистра сведений напрямую

Если типовые функции недоступны (например, пишете внешнюю обработку для нетиповой базы) или нужен произвольный срез, можно запросить регистр сведений напрямую. Для периодического регистра «ОтветственныеЛицаОрганизаций» используйте срез последних:

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Ответственные.ФизическоеЛицо КАК Руководитель

|ИЗ

| РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних(&Дата, Организация = &Организация

| И ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель)) КАК Ответственные";

Запрос.УстановитьПараметр("Дата", ДатаДокумента);

Запрос.УстановитьПараметр("Организация", Организация);

Результат = Запрос.Выполнить().Выбрать();

Если Результат.Следующий() Тогда

Руководитель = Результат.Руководитель;

КонецЕсли;

Имена регистра, измерений и перечисления видов ответственных лиц в вашей базе могут отличаться — сверьтесь с деревом метаданных. Обратите внимание: прямой запрос обходит логику типовых функций, поэтому при обновлении конфигурации такой код стоит перепроверять.

Для получения ФИО в нужном формате (например, «Иванов И. И.») в типовых конфигурациях есть механизм склонения и представления физлиц: функции вида «ФизическиеЛицаКлиентСервер.ФамилияИнициалы» или данные регистра «ФИО физических лиц». Хранить ФИО отдельной строкой в документе не рекомендуется — берите представление на момент формирования печати.

Как получить руководителя в простой или самописной конфигурации

Если руководитель — реквизит справочника «Организации», всё сводится к чтению реквизита:

Руководитель = Организация.Руководитель; // если ссылка уже получена

// либо через объект:

ОргОбъект = ОрганизацияСсылка.ПолучитьОбъект();

Руководитель = ОргОбъект.Руководитель;

Первый вариант (обращение через точку к ссылке) предпочтительнее: платформа выполнит один лёгкий запрос вместо чтения всего объекта. Если нужно только ФИО строкой для печати, а реквизит хранит ссылку на физлицо, получите наименование: Строка(Организация.Руководитель) или сокращённое представление через данные физлица.

В запросах обращайтесь к реквизиту напрямую: ВЫБРАТЬ Организации.Руководитель ИЗ Справочник.Организации КАК Организации ГДЕ Организации.Ссылка = &Ссылка. Это быстрее и безопаснее, чем программное чтение объекта в цикле.

Сравнение способов получения руководителя

Типовые функции (ОтветственныеЛицаБП и аналоги)

Правильный выбор для типовых конфигураций: учитывают период и логику решения. Ограничение — имена модулей различаются между конфигурациями.

Прямой запрос к регистру сведений

Подходит для внешних обработок и отчётов, когда типовая функция недоступна. Риск — изменение структуры регистра при обновлении.

Чтение реквизита справочника

Только для конфигураций, где руководитель хранится реквизитом. Не учитывает историю смены руководителей.

Проверка результата и типичные ошибки

После настройки или написания кода проверьте результат на реальных данных: сформируйте печатную форму документа текущей датой и документа прошлого периода, когда действовал другой руководитель. Подписи должны различаться и соответствовать фактическим приказам о назначении.

Если программно получается пустое значение, проверьте три вещи: заполнена ли запись в ответственных лицах на нужную дату, не начинается ли период записи позже даты документа, и не перепутаны ли вид ответственного лица (например, запрошен «ГлавныйБухгалтер» вместо «Руководитель»).

Типичные ошибки
01
Редактирование старой записи об ответственном лице вместо добавления новой — документы прошлых периодов переподписываются новым руководителем
02
Вызов типовой функции без даты или с ТекущаяДата() вместо даты документа — неверная подпись в старых документах
03
Прямое обращение к регистру с жёстко прописанными именами без проверки метаданных — код ломается после обновления конфигурации
04
Хранение ФИО руководителя строкой в документе — при смене физлица печатные формы показывают устаревшие данные
Контрольные точки

Как проверить результат

Печатная форма текущего документа
Норма

В подписи указан действующий руководитель

Тревожный признак

Пустая подпись или устаревшее ФИО

Печатная форма документа прошлого периода
Норма

Подпись руководителя, действовавшего на дату документа

Тревожный признак

Подставлен текущий руководитель

Программный вызов в отладчике
Норма

Структура содержит заполненные поля Руководитель и Должность

Тревожный признак

Поля пустые или вызов падает с ошибкой о несуществующем методе

Частые вопросы

Что делать, если функция ОтветственныеЛицаБП не найдена в моей конфигурации?

Значит, конфигурация использует другой модуль или собственный механизм. Откройте конфигуратор, выполните глобальный поиск по слову «ОтветственныеЛица» и посмотрите, какие общие модули существуют. Заодно проверьте, как подпись получает любая типовая печатная форма — это самый быстрый способ найти рабочий вызов.

Как получить руководителя на конкретную дату в прошлом?

Передайте эту дату вторым параметром в типовую функцию или в параметр среза последних запроса к регистру. Механизм ответственных лиц периодический, поэтому вернётся запись, действовавшая именно на указанный момент, при условии что история велась корректно.

Почему в печатной форме пустая подпись, хотя руководитель указан?

Чаще всего запись об ответственном лице начинается позже даты документа. Откройте список ответственных лиц организации, включите отображение даты и проверьте, есть ли запись, действующая на дату печатаемого документа. Также проверьте, что выбран именно вид «Руководитель», а не другое ответственное лицо.

Можно ли получить руководителя в СКД или запросе отчёта без кода?

Да, если добавить в запрос соединение с виртуальной таблицей среза последних регистра ответственных лиц по организации и дате. В СКД удобно использовать параметр «Период» и соединение с регистром. Для реквизитного варианта хранения достаточно обычного обращения к полю справочника.

Как вывести ФИО руководителя в формате «Иванов И. И.»?

В типовых конфигурациях используйте функции работы с ФИО физических лиц, например формирование фамилии и инициалов через модули работы с физлицами, либо готовые поля структуры ответственных лиц (часто есть РуководительФИО). Самостоятельно обрезать строку наименования не стоит — при составных фамилиях и отчествах результат будет неверным.

Опасно ли менять записи об ответственных лицах напрямую в регистре?

Редактирование через «Все функции» обходит проверки формы и может привести к дублям или пересекающимся периодам. Работайте через штатную форму карточки организации, а прямые правки делайте только понимая структуру регистра и предварительно создав резервную копию базы.

Итог

Что важно запомнить

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