При работе с обработкой «Клиент-банк» в типовых конфигурациях, таких как «Бухгалтерия предприятия 3.0», пользователи могут столкнуться с внезапным прекращением работы выгрузки. Система выдает ошибку: «Ошибка при заполнении списка документов для выгрузки: Поле объекта не обнаружено (СписокДокументов)». В тексте ошибки часто указывается путь к Обработка.КлиентБанк.МодульМенеджера и конкретная строка кода, где происходит обращение к параметрам фонового задания.
Проанализируем ситуацию: данная ошибка возникает в момент, когда основная форма обработки передает управление на сервер для выполнения фонового задания. Программа ожидает найти в структуре параметров определенный ключ, но из-за программного сбоя или конфликта кеша этот ключ отсутствует. Разберем по шагам, как решить эту проблему, начиная от простых пользовательских действий и заканчивая техническими правками.
Как показывает практика, стандартная очистка кеша через параметры запуска помогает не всегда. Если ошибка вызвана некорректным сохранением состояния динамических структур в локальных файлах пользователя, необходимо выполнить «глубокую» очистку. Рассмотрим этот алгоритм:
%AppData%\1C\1cv8%LocalAppData%\1C\1cv8eb456...), при этом важно не затронуть сам файл базы данных 1Cv8.1CD, если у вас файловый вариант.Этот метод позволяет полностью обновить метаданные, которые платформа хранит локально, и восстановить корректную передачу структуры ПараметрыЗадания между клиентом и сервером.
Если база работает в клиент-серверном режиме, проблема может крыться на стороне сервера приложений. Фоновые задания выполняются в контексте сервера, и если серверный кеш содержит устаревшие описания объектов, возникнет ошибка обращения к полям. Выясним причину через очистку серверных данных:
reg_XXXX (где XXXX — номер порта кластера) в папке установки сервера 1С.snccntx (сеансовые данные) и временные файлы метаданных. Внимание: не удаляйте папку Config, если там хранятся настройки кластера, которые вам важны.После перезапуска сервера платформа принудительно перечитает структуру объектов КлиентБанк, и поле СписокДокументов должно корректно десериализоваться при старте фонового задания.
В некоторых версиях конфигурации (например, 3.0.51) данная ошибка была официально признана багом разработчиков. Она заключалась в том, что в процедуре формирования параметров выгрузки просто отсутствовал код, инициализирующий ключ СписокДокументов в структуре ПараметрыЗадания. Посмотрим на фрагмент кода, который вызывает проблему:
// В модуле менеджера обработки КлиентБанк
ЗаполнитьДокументыНаЭкспорт(ПараметрыЗадания.ПлатежныеДокументы,
ПараметрыЗадания.СписокДокументов, // Ошибка здесь
ПараметрыЗадания.АдресРезультата);
Если вы столкнулись именно с этой ситуацией, у вас есть два пути:
ПараметрыЗадания, и принудительно добавить ключ:
// Пример в расширении
&Перед("ВыполнитьВыгрузкуНаСервере")
Процедура Испр_ВыполнитьВыгрузкуНаСервере(ПараметрыЗадания)
Если Не ПараметрыЗадания.Свойство("СписокДокументов") Тогда
ПараметрыЗадания.Вставить("СписокДокументов", Новый Массив);
КонецЕсли;
КонецПроцедуры
Чтобы в будущем избежать проблем с выгрузкой файлов и работой модуля менеджера обработки «Клиент-банк», рекомендуется рассмотреть переход на технологию DirectBank. Разберем преимущества этого подхода:
ЗаполнитьДокументыНаЭкспорт, вызывающие ошибку СписокДокументов, не задействуются.Подводя итог, отметим: если ошибка возникла внезапно на стабильном релизе — скорее всего, поможет Способ 1. Если же ошибка появилась сразу после обновления программы — необходимо искать исправления (патчи) от разработчиков или использовать временное расширение.