Как исправить ошибку «Поле не найдено Кадровая История Сотрудников СрезПоследних» в ЗУП 3.1 при выгрузке реестра ВТБ

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Финансы и профессиональные услуги
← На главную

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

Почему возникает эта ошибка? Выясним причину

Для начала проанализируем ситуацию с точки зрения архитектуры 1С. В последних релизах ЗУП 3.1 (начиная с версий 3.1.13 и выше) фирма «1С» провела масштабную оптимизацию механизмов получения кадровых данных. Ранее разработчики часто обращались напрямую к виртуальным таблицам регистра сведений КадроваяИсторияСотрудников.СрезПоследних. Однако в современных версиях структура хранения данных была пересмотрена для повышения производительности системы.

Многие поля, которые раньше были доступны в «срезе последних» этого регистра, теперь вынесены в другие структуры или требуют обращения через специализированные программные интерфейсы (функции общего назначения). Банковская обработка, созданная под старые релизы (например, 3.1.6), продолжает «стучаться» в те места базы данных, которых в прежнем виде больше не существует. Именно поэтому система выдает сообщение о том, что поле не найдено.

Решение 1: Обновление модуля интеграции от банка ВТБ

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

  1. Зайдем в систему «ВТБ Бизнес Онлайн».
  2. Перейдем в раздел «Дистанционное обслуживание» или воспользуемся поиском по разделу помощи.
  3. Найдем подраздел «Интеграция с 1С» или «Зарплатный проект».
  4. Скачаем свежий дистрибутив внешней обработки. Обратите внимание, что файл должен соответствовать вашей версии платформы (8.3) и интерфейсу (Такси).

Как показывает практика (и сообщения пользователей на форумах), установка свежей версии обработки, датированной текущим годом, полностью снимает проблему несовместимости полей.

Решение 2: Переход на технологию DirectBank (Прямой обмен)

Проанализируем современный подход к взаимодействию с банками. Использование внешних файлов-обработок постепенно уходит в прошлое. В 1С реализован механизм DirectBank, который позволяет отправлять реестры на открытие счетов и выпуск карт напрямую из интерфейса программы нажатием одной кнопки.

Разберем по шагам, как настроить этот функционал для ВТБ:

  1. Откроем раздел «Настройка» — «Организации» (или «Реквизиты организации»).
  2. Перейдем на закладку «Зарплатные проекты».
  3. Создадим новый проект или откроем существующий для банка ВТБ.
  4. Установим флаг «Использовать электронный обмен документами».
  5. В поле «Способ обмена» выберем прямой обмен через сервис DirectBank.
  6. Пройдем по гиперссылке настройки подключения, где потребуется ввести логин и пароль от банковского кабинета или использовать сертификат ЭЦП.

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

Решение 3: Исправление кода обработки (для технических специалистов)

Если по каким-то причинам банк задерживает выпуск обновления, а реестр нужно отправить срочно, мы можем самостоятельно внести правки в код внешней обработки. Разберем, что именно нужно изменить в тексте запроса.

Вместо прямого обращения к РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних, рекомендуется использовать универсальные представления, которые 1С предоставляет для извлечения кадровых данных. Проанализируем пример изменения кода:

Было в старой версии:


ВЫБРАТЬ
    КадроваяИсторияСотрудниковСрезПоследних.Должность,
    КадроваяИсторияСотрудниковСрезПоследних.Подразделение
ИЗ
    РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&Период, ) КАК КадроваяИсторияСотрудниковСрезПоследних

Как следует сделать сейчас:

Для корректной работы в новых версиях ЗУП 3.1 следует использовать временную таблицу Представления_КадровыеДанныеСотрудников. Для этого в коде обработки перед выполнением основного запроса нужно вызвать программный интерфейс кадрового учета:


ПараметрыПолученияДанных = КадровыйУчет.ПараметрыПолученияКадровыхДанных();
ПараметрыПолученияДанных.СоставПолей = "Должность, Подразделение, ПодразделениеНаИмя";
ПараметрыПолученияДанных.ДатаПериода = Объект.ДатаРеестра;

КадровыйУчет.СоздатьВременнуюТаблицуКадровыхДанныхСотрудников(
    Запрос.МенеджерВременныхТаблиц,
    Истина, // Признак того, что нужны данные на дату
    ПараметрыПолученияДанных,
    "ВТ_Сотрудники" // Ваша таблица со списком сотрудников
);

После этого в самом тексте запроса мы просто соединяемся с таблицей ВТ_КадровыеДанныеСотрудников. Это гарантирует, что даже при изменении структуры метаданных, системные функции 1С корректно «подтянут» нужные значения.

Логический контроль данных: На что обратить внимание?

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

Рекомендации по безопасному обновлению

Чтобы избежать подобных ситуаций в будущем, рассмотрим алгоритм действий при обновлении 1С:ЗУП:

  1. Всегда выполняйте обновление сначала на копии информационной базы.
  2. После обновления на копии проверьте работоспособность всех внешних инструментов: обработок выгрузки в банки, внешних печатных форм и отчетов.
  3. Если возникла ошибка Поле не найдено, не ждите, пока база «сломается» у бухгалтера в день выдачи зарплаты. Свяжитесь с поддержкой банка заранее или подготовьте исправленную версию обработки.
  4. По возможности минимизируйте использование внешних файлов в пользу типовых механизмов (DirectBank), так как они тестируются фирмой «1С» перед каждым выпуском релиза.

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

← На главную