Как исправить ошибку Поле объекта не обнаружено (СписокДокументов) при выгрузке платежек из 1С

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

При работе с обработкой «Клиент-банк» в типовых конфигурациях, таких как «Бухгалтерия предприятия 3.0», пользователи могут столкнуться с внезапным прекращением работы выгрузки. Система выдает ошибку: «Ошибка при заполнении списка документов для выгрузки: Поле объекта не обнаружено (СписокДокументов)». В тексте ошибки часто указывается путь к Обработка.КлиентБанк.МодульМенеджера и конкретная строка кода, где происходит обращение к параметрам фонового задания.

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

Способ 1: Радикальная очистка локального кеша и переподключение базы

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

  1. Закроем все сеансы работы с 1С:Предприятием на данном компьютере.
  2. Откроем список информационных баз и удалим проблемную базу из списка (предварительно скопировав путь к ней или параметры подключения к серверу).
  3. Перейдем в каталоги временных файлов пользователя. Обычно они расположены по путям:
    • %AppData%\1C\1cv8
    • %LocalAppData%\1C\1cv8
  4. Проанализируем содержимое этих папок. Нам необходимо удалить все папки с именами-идентификаторами (длинные строки типа eb456...), при этом важно не затронуть сам файл базы данных 1Cv8.1CD, если у вас файловый вариант.
  5. После удаления временных файлов снова добавим базу в список и запустим программу.

Этот метод позволяет полностью обновить метаданные, которые платформа хранит локально, и восстановить корректную передачу структуры ПараметрыЗадания между клиентом и сервером.

Способ 2: Очистка серверного кеша (для клиент-серверного варианта)

Если база работает в клиент-серверном режиме, проблема может крыться на стороне сервера приложений. Фоновые задания выполняются в контексте сервера, и если серверный кеш содержит устаревшие описания объектов, возникнет ошибка обращения к полям. Выясним причину через очистку серверных данных:

  1. Остановим службу «Агент сервера 1С:Предприятия» через консоль администрирования служб.
  2. Перейдем в каталог reg_XXXX (где XXXX — номер порта кластера) в папке установки сервера 1С.
  3. Удалим содержимое папок snccntx (сеансовые данные) и временные файлы метаданных. Внимание: не удаляйте папку Config, если там хранятся настройки кластера, которые вам важны.
  4. Запустим службу заново.

После перезапуска сервера платформа принудительно перечитает структуру объектов КлиентБанк, и поле СписокДокументов должно корректно десериализоваться при старте фонового задания.

Способ 3: Исправление программной ошибки релиза

В некоторых версиях конфигурации (например, 3.0.51) данная ошибка была официально признана багом разработчиков. Она заключалась в том, что в процедуре формирования параметров выгрузки просто отсутствовал код, инициализирующий ключ СписокДокументов в структуре ПараметрыЗадания. Посмотрим на фрагмент кода, который вызывает проблему:


// В модуле менеджера обработки КлиентБанк
ЗаполнитьДокументыНаЭкспорт(ПараметрыЗадания.ПлатежныеДокументы,
                            ПараметрыЗадания.СписокДокументов, // Ошибка здесь
                            ПараметрыЗадания.АдресРезультата);

Если вы столкнулись именно с этой ситуацией, у вас есть два пути:

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

Способ 4: Переход на технологию DirectBank

Чтобы в будущем избежать проблем с выгрузкой файлов и работой модуля менеджера обработки «Клиент-банк», рекомендуется рассмотреть переход на технологию DirectBank. Разберем преимущества этого подхода:

  1. Прямой обмен: Платежные поручения отправляются напрямую в банк по зашифрованным каналам связи без промежуточного формирования текстовых файлов.
  2. Отсутствие выгрузки: Поскольку файл не формируется, механизмы ЗаполнитьДокументыНаЭкспорт, вызывающие ошибку СписокДокументов, не задействуются.
  3. Актуальность: Технология DirectBank является приоритетной для 1С и поддерживается большинством крупных банков, что гарантирует своевременное обновление механизмов обмена при изменении требований законодательства.

Подводя итог, отметим: если ошибка возникла внезапно на стабильном релизе — скорее всего, поможет Способ 1. Если же ошибка появилась сразу после обновления программы — необходимо искать исправления (патчи) от разработчиков или использовать временное расширение.

← На главную