Как получить должность и ФИО контактного лица контрагента в 1С:Бухгалтерии предприятия 3.0?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

При работе с программными продуктами 1С часто возникает необходимость получить данные о контактных лицах контрагентов, такие как их должность и полное имя (ФИО). В конфигурации 1С:Бухгалтерия предприятия 3.0 эта информация хранится в определенной структуре, и чтобы ее успешно извлечь, нам необходимо разобраться, где именно она располагается и как к ней получить доступ как через пользовательский интерфейс, так и программно. В этой статье мы подробно рассмотрим все аспекты получения должности и ФИО контактного лица контрагента.

Структура хранения контактных лиц и их данных в 1С:Бухгалтерии предприятия 3.0

Давайте выясним, как устроено хранение информации о контактных лицах контрагентов в конфигурации "Бухгалтерия предприятия 3.0". Информация о контактных лицах контрагентов хранится в отдельном справочнике "Контактные лица". Этот справочник обычно подчинен справочнику "Контрагенты", что означает, что каждое контактное лицо связано с конкретным контрагентом.

  1. Справочник "Контрагенты":

    В карточке контрагента существует ссылка или раздел "Контактные лица", который ведет к списку всех контактных лиц, связанных с этим контрагентом. Кроме того, в справочнике "Контрагенты" есть важный реквизит "ОсновноеКонтактноеЛицо". Этот реквизит является ссылкой на один из элементов справочника "Контактные лица" и предназначен для обозначения главного, или основного, представителя контрагента.

  2. Справочник "Контактные лица":

    Каждый элемент этого справочника представляет собой отдельное контактное лицо. В нем хранятся следующие ключевые данные:

    • ФИО (Фамилия, Имя, Отчество): Обычно указывается в поле Наименование самого элемента справочника, а также на вкладке "Главное" при создании или редактировании контактного лица.
    • Должность: Чаще всего располагается на вкладке "Дополнительные реквизиты" элемента "Контактное лицо". Иногда может присутствовать поле "Роль" для более детального уточнения должности или функции.

Взаимосвязь "Основного контактного лица"

Реквизит "ОсновноеКонтактноеЛицо" в карточке контрагента имеет критически важное значение. Он предназначен для автоматической подстановки данных этого представителя в различные документы и печатные формы, например, в договоры, акты сверки или другие исходящие документы. Если у контрагента заполнено только одно контактное лицо, система часто автоматически определяет его как основное. Пользователь также имеет возможность явно назначить любое из существующих контактных лиц основным, используя соответствующую функцию в интерфейсе программы. Если этот реквизит заполнен, он предоставляет наиболее прямой и быстрый способ доступа к данным ключевого контактного лица.

Доступ к информации в пользовательском режиме

Если вам требуется получить доступ к ФИО и должности контактного лица через пользовательский интерфейс 1С:Бухгалтерии предприятия 3.0, выполните следующие шаги:

  1. Откройте карточку нужного контрагента. Для этого перейдите в раздел "Справочники" и выберите пункт "Контрагенты". Найдите и откройте карточку нужного контрагента.
  2. Перейдите по гиперссылке "Контактные лица" (или аналогичной, название может немного отличаться в зависимости от настроек интерфейса). Эта ссылка приведет вас к списку всех контактных лиц, которые связаны с данным контрагентом.
  3. Для просмотра ФИО и должности конкретного контактного лица, откройте его карточку из этого списка.
  4. На вкладке "Главное" вы найдете ФИО контактного лица.
  5. На вкладке "Дополнительные реквизиты" вы увидите должность. Если вкладка "Дополнительные реквизиты" не отображается, ее можно включить через меню "Еще" -> "Изменить форму" в окне элемента "Контактное лицо". Здесь вы сможете настроить видимость нужных полей и вкладок.

Программное получение должности и ФИО контактного лица

Для программного получения этой информации, используя язык 1С, мы можем обратиться к справочнику Контрагенты и связанному с ним справочнику КонтактныеЛица. Рассмотрим два основных сценария.

1. Получение основного контактного лица контрагента

Наиболее прямой и предпочтительный способ получения данных о контактном лице, если известно, что оно является основным, — это использовать реквизит ОсновноеКонтактноеЛицо справочника Контрагенты. Этот реквизит содержит прямую ссылку на элемент справочника КонтактныеЛица. Давайте посмотрим, как это реализовать.


// Предположим, у нас есть ссылка на элемент справочника Контрагенты
// Для примера найдем контрагента по коду. В реальном коде это может быть ссылка,
// полученная из документа, формы или другого объекта.
ПеременнаяКонтрагент = Справочники.Контрагенты.НайтиПоКоду("000000001"); // Пример: получение контрагента по коду "ООО Контрагент"

// Проверяем, удалось ли найти контрагента
Если ПеременнаяКонтрагент <> Неопределено Тогда
    // Получаем ссылку на основное контактное лицо из реквизита контрагента
    ОсновноеКонтактноеЛицо = ПеременнаяКонтрагент.ОсновноеКонтактноеЛицо;

    // Проверяем, заполнено ли основное контактное лицо у контрагента
    Если ОсновноеКонтактноеЛицо.Пустая() = Ложь Тогда
        // Наименование элемента справочника КонтактныеЛица обычно содержит ФИО
        Сообщить("ФИО основного контактного лица: " + ОсновноеКонтактноеЛицо.Наименование);
        // Реквизит "Должность" хранится непосредственно в элементе справочника КонтактныеЛица
        Сообщить("Должность основного контактного лица: " + ОсновноеКонтактноеЛицо.Должность);
    Иначе
        Сообщить("Основное контактное лицо для контрагента " + ПеременнаяКонтрагент.Наименование + " не указано.");
    КонецЕсли;
Иначе
    Сообщить("Контрагент с кодом '000000001' не найден.");
КонецЕсли;

В этом примере мы сначала находим нужного контрагента. Затем через его реквизит ОсновноеКонтактноеЛицо получаем ссылку на соответствующий элемент справочника КонтактныеЛица. После этого мы можем напрямую обратиться к реквизитам этого элемента, таким как Наименование (которое обычно содержит ФИО) и Должность.

2. Получение всех контактных лиц контрагента (если основное не задано или нужны все)

Если реквизит ОсновноеКонтактноеЛицо не заполнен, или нам необходимо получить список всех контактных лиц, связанных с контрагентом, мы можем выполнить запрос к справочнику КонтактныеЛица. Для связи контактных лиц с конкретным контрагентом используется поле ОбъектВладелец справочника КонтактныеЛица. Рассмотрим, как это сделать с помощью запроса.


// Предположим, у нас есть ссылка на элемент справочника Контрагенты
ПеременнаяКонтрагент = Справочники.Контрагенты.НайтиПоКоду("000000001"); // Пример: получение контрагента по коду

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

    // Устанавливаем параметр запроса - ссылку на нашего контрагента
    Запрос.УстановитьПараметр("Контрагент", ПеременнаяКонтрагент.Ссылка);

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

    // Проверяем, есть ли найденные контактные лица
    Если РезультатЗапроса.Количество() > 0 Тогда
        Сообщить("Найдены контактные лица для контрагента " + ПеременнаяКонтрагент.Наименование + ":");
        // Обходим строки результата запроса
        Пока РезультатЗапроса.Следующий() Цикл
            Сообщить("  ФИО: " + РезультатЗапроса.ФИО);
            Сообщить("  Должность: " + РезультатЗапроса.Должность);
            Сообщить("  ------------------------------------");
        КонецЦикла;
    Иначе
        Сообщить("Контактные лица для данного контрагента " + ПеременнаяКонтрагент.Наименование + " не найдены.");
    КонецЕсли;
Иначе
    Сообщить("Контрагент с кодом '000000001' не найден.");
КонецЕсли;

В этом примере мы используем объект Запрос для выборки данных. Ключевым моментом является условие ГДЕ КонтактныеЛица.ОбъектВладелец = &Контрагент, которое связывает элементы справочника КонтактныеЛица с конкретным элементом справочника Контрагенты. После выполнения запроса мы получаем табличное представление данных, которое можно обойти в цикле и вывести требуемую информацию.

Заключение

Мы подробно рассмотрели, как достать должность и ФИО из контактной информации контрагента в 1С:Бухгалтерии предприятия 3.0. Теперь вы знаете, что информация о контактных лицах хранится в отдельном справочнике КонтактныеЛица, который подчинен справочнику Контрагенты через реквизит ОбъектВладелец. Также вы освоили использование реквизита ОсновноеКонтактноеЛицо в справочнике Контрагенты для быстрого доступа к данным основного представителя. В зависимости от вашей задачи, вы можете выбрать один из предложенных способов: прямой доступ через реквизит или более гибкий запрос для получения всех связанных контактных лиц.

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

← На главную