Почему в статистической отчетности БГУ 1.0 не заполняются автоматически телефон и e-mail?

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет Сфера услуг, туризм и социальный сектор
← На главную

При работе в конфигурации «Бухгалтерия государственного учреждения» редакции 1.0 (БГУ 1.0) бухгалтеры часто сталкиваются с тем, что при формировании статистической отчетности (например, формы П-1, П-4) поля «Телефон» и «E-mail» остаются пустыми. Несмотря на то что в карточке учреждения или настройках учетной политики все данные внесены корректно, автоматического подтягивания реквизитов не происходит. Это вынуждает пользователей вводить данные вручную, которые к тому же пропадают при обновлении отчета. Разберем подробно причины этой проблемы и способы ее решения.

Проанализируем источники данных для отчетности

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

  1. Карточка учреждения: Проверим вкладку «Адреса и телефоны». Здесь должны быть заполнены поля «Контактный телефон» и «E-mail». Важно убедиться, что эти записи актуальны на дату формирования отчета.
  2. Настройки исполнителя: В большинстве статистических форм данные берутся из сведений об «Исполнителе». Это физическое лицо, указанное в параметрах формирования отчета или в учетной политике.
  3. Карточка физического лица: Перейдем в справочник Физические лица, найдем нужного сотрудника и проверим раздел его контактной информации. Телефон должен быть указан как «Рабочий», а адрес электронной почты должен соответствовать виду контактной информации, который ожидает система.

Выясним причину ошибки в программном коде

Если в пользовательском интерфейсе все заполнено, но поля остаются пустыми, проблема кроется в алгоритме заполнения. Проанализируем ситуацию на уровне кода. В конфигурации БГУ 1.0 за сбор данных отвечает функция ПолучитьСведенияОбОрганизации в общем модуле РегламентированнаяОтчетность.

Разберем конкретный фрагмент кода, который вызывает сбой при получении электронной почты. Программа пытается определить идентификатор вида контактной информации для e-mail следующим образом:


АдресЭлектроннойПочтыФизЛица = ?(СвойствоОпределено(Справочники.ВидыКонтактнойИнформации, "EmailФизЛица"), 
    Справочники.ВидыКонтактнойИнформации.EmailФизЛица, 
    Справочники.ВидыКонтактнойИнформации.СлужебныйАдресЭлектроннойПочтыПользователя);

Проанализируем эту строку. Система ищет предопределенный элемент EmailФизЛица в справочнике ВидыКонтактнойИнформации. В ряде релизов (включая ветку 1.0.54) этот элемент может отсутствовать или иметь другое внутреннее имя. В результате переменная АдресЭлПочтыИсп возвращает пустое значение, даже если у физлица в регистре сведений КонтактнаяИнформация данные есть.

Способ 1: Использование механизма расширений (для платформы 8.3)

Если база работает на платформе 8.3, самым правильным решением будет создание расширения конфигурации. Это позволит не снимать основную конфигурацию с поддержки и сохранить изменения при обновлениях. Рассмотрим, как реализовать перехват функции:

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

  1. Создадим расширение и добавим в него общий модуль РегламентированнаяОтчетность.
  2. Перехватим функцию ПолучитьСведенияОбОрганизации (используя аннотацию &После или &Вместо).
  3. Принудительно укажем правильный вид контактной информации для поиска.

Пример кода в расширении для корректировки поиска email:


&Вместо("ПолучитьСведенияОбОрганизации")
Функция ИмяПрефикс_ПолучитьСведенияОбОрганизации(Организация, СписокСведений, ДатаСведений = '00010101')
    Результат = ПродолжитьВызов(Организация, СписокСведений, ДатаСведений);
    
    // Если в списке сведений есть запрос на почту, а она пустая
    Если Результат.Свойство("АдресЭлПочты") И ПустаяСтрока(Результат.АдресЭлПочты) Тогда
        // Прописываем логику получения из регистра напрямую по нашему виду КИ
        ВидКИ = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("E-mail");
        Если НЕ ВидКИ.Пустая() Тогда
             Результат.АдресЭлПочты = УправлениеКонтактнойИнформацией.ПолучитьКонтактнуюИнформациюОбъекта(Организация, ВидКИ);
        КонецЕсли;
    КонецЕсли;
    
    Возврат Результат;
КонецФункции

Способ 2: Настройка справочника «Виды контактной информации»

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

В этом случае проанализируем, какой именно вид КИ используется для хранения почты у ваших исполнителей. Обычно это «E-mail» или «Электронная почта». Если в коде зашит поиск по EmailФизЛица, а у вас в справочнике этот элемент называется иначе, данные не подтянутся.

Способ 3: Загрузка актуальных внешних форм отчетности

Фирма «1С» регулярно выпускает обновления статистических отчетов в виде внешних файлов .erf. Часто ошибки в механизмах заполнения реквизитов исправляются именно там, не дожидаясь выхода нового релиза БГУ. Выясним, как обновить отчеты:

  1. Зайдем на портал поддержки пользователей 1С в раздел обновлений для вашей версии БГУ 1.0.
  2. Скачаем архив «Комплект регламентированной отчетности».
  3. В программе перейдем в справочник Регламентированные отчеты.
  4. Используем кнопку «Загрузить» для обновления нужной формы из файла.

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

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

Проанализируем еще одну возможную причину — разрыв в периодах актуальности. Контактная информация в 1С хранится с привязкой к объекту, но иногда механизмы статистики требуют, чтобы запись в регистре Контактная информация была создана не позже даты начала отчетного периода. Если вы заполнили e-mail сегодня, а отчет делаете за прошлый квартал, в некоторых релизах алгоритм может не «увидеть» эту запись. Проверьте, чтобы в карточке учреждения или физлица данные были внесены «задним числом» относительно периода отчета, если это предусмотрено логикой вашей версии конфигурации.

Резюме

Мы проанализировали проблему отсутствия телефона и e-mail в статистических отчетах БГУ 1.0 и выяснили, что основной причиной является программная ошибка в именовании видов контактной информации внутри общих модулей. Рекомендуемым способом решения является использование расширения конфигурации или использование внешних форм отчетности. Временным решением для бухгалтера может быть однократное заполнение данных в форме и сохранение варианта отчета, однако для автоматизации процесса требуется вмешательство специалиста 1С для корректировки модуля РегламентированнаяОтчетность.

← На главную