Почему в ЗУП 3.1.8 пропала кнопка «Выгрузить файл» в ведомости в банк и как её вернуть?

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

После обновления конфигурации «Зарплата и управление персоналом» до релиза 3.1.8.155 многие пользователи и администраторы столкнулись с неприятной ситуацией: в документах «Ведомость в банк» бесследно исчезла кнопка «Выгрузить файл», а автоматическая генерация XML-файлов для банковских систем перестала работать. Ситуация осложняется тем, что привычные настройки зарплатного проекта кажутся верными, но функционал остается недоступным. Рассмотрим детально, почему это происходит и какими способами можно восстановить работу системы.

Разберем архитектурную причину проблемы

Проанализируем изменения, внесенные разработчиками 1С в логику программы. Начиная с ветки 3.1.8, была реализована жесткая привязка интерфейса к настройкам синхронизации данных. Если в вашей информационной базе включен обмен с «1С:ERP Управление предприятием» или «1С:Комплексная автоматизация 2.0», программа автоматически предполагает, что функции казначейства и фактического взаимодействия с банками переносятся на сторону управляющей системы (ERP).

С точки зрения методологии разработчиков, ЗУП в связке с ERP должна выполнять только роль кадрового учета и расчета сумм, а формирование платежных документов и файлов для банка — это задача финансового контура ERP. Поэтому кнопка выгрузки скрывается принудительно, чтобы избежать дублирования операций. Выясним, какие технические условия влияют на видимость кнопки.

Проверка настроек зарплатного проекта

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

  1. Перейдем в справочник «Зарплатные проекты».
  2. Откроем проект, который используется в «пропавшей» ведомости.
  3. Убедимся, что установлена галочка «Использовать обмен электронными документами».
  4. Проверим формат файла и кодировку.

Важное наблюдение: иногда в релизе 3.1.8.155 после обновления признак электронного обмена визуально стоит, но «не подхватывается» формой ведомости. Попробуем снять галочку, записать объект, затем снова установить её и снова записать. Это может принудительно обновить состояние связанных объектов.

Анализ программного кода и использование отладчика

Для программистов и системных администраторов будет полезно проанализировать программный код, отвечающий за вывод команды на форму. Управление видимостью кнопки ВыгрузитьФайлДляОбменаСБанком осуществляется в общем модуле. Рассмотрим ключевое условие, которое определяет судьбу этого элемента интерфейса:


ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
    Элементы, 
    "ВыгрузитьФайлДляОбменаСБанком", 
    "Видимость", 
    ПоказыватьКомандуОбмена И Не ИспользоватьПрямойОбмен
);

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

Решение проблемы через изменение общего модуля (для программистов)

Если ваша организация не готова переносить процесс выгрузки файлов в ERP и вам необходимо сохранить этот функционал в ЗУП, потребуется внести изменения в общий модуль КонфигурацииЗарплатаКадрыРасширенный. Найдем процедуру РазрешитьОтправкуВБанкОтдельнойВедомости(Использование). Нам нужно принудительно вернуть значение Истина параметру Использование, игнорируя наличие обмена с ERP.

Посмотрим на пример реализации исправления:


Процедура РазрешитьОтправкуВБанкОтдельнойВедомости(Использование) Экспорт
    ИспользуетсяОбменУправлениеПредприятием2 = Ложь;
    Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОбменЗарплатаERP") Тогда
        Модуль = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиУниверсальныйФормат");
        УстановитьПривилегированныйРежим(Истина);
        ИспользуетсяОбменУправлениеПредприятием2 = Модуль.ИспользуетсяОбменУправлениеПредприятием2;
        УстановитьПривилегированныйРежим(Ложь);
    КонецЕсли;

    Если ИспользуетсяОбменУправлениеПредприятием2 Тогда
        Использование = Ложь; // Здесь программа отключает кнопку
    КонецЕсли;

    //++ Наше исправление: принудительно разрешаем выгрузку
    Использование = Истина; 
    //-- Конец процедуры
КонецПроцедуры

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

Альтернативные причины: интерфейс «Такси» и DirectBank

Иногда кнопка отсутствует по более прозаичным причинам. Проанализируем дополнительные факторы:

  1. Интерфейс «Такси» и разрешение экрана: В релизе 3.1.8 была замечена ошибка отрисовки. Если окно программы не развернуто на весь экран или установлен крупный масштаб (более 100%), кнопка может не помещаться на командную панель. В этом случае она уходит в подменю «Еще». Проверьте содержимое этой кнопки.
  2. Сервис 1С:ДиректБанк: Если в зарплатном проекте включен прямой обмен с банком (DirectBank), кнопка формирования файла XML также может отсутствовать, так как предполагается отправка документа напрямую на сервер банка по нажатию кнопки «Отправить».
  3. Изменение формы: Убедимся, что кнопка не скрыта пользователем вручную. Зайдем в «Еще — Изменить форму» и проверим наличие флажка напротив команды выгрузки.

Бонус: решение проблемы с расчетными листками

Часто вместе с проблемой ведомостей в этом же релизе проявляется ошибка с формированием расчетных листков (они выводятся пустыми или без реквизитов). Проанализируем решение этой ситуации. Проблема обычно кроется в некорректном обновлении кэша метаданных и временных файлов.

Рекомендуется выполнить следующие действия:

  1. Очистка временных файлов (temp): Полностью закройте 1С и удалите содержимое папок %AppData%\1C\1Cv8\ и %LocalAppData%\1C\1Cv8\.
  2. Сброс настроек отчета: В самом отчете «Расчетный листок» нажмите «Еще — Установить стандартные настройки». Это часто помогает, если структура отчета изменилась в новом релизе, а пользовательские настройки остались старыми.

Подводя итог, можно сказать, что исчезновение кнопки — это следствие новой логики 1С по разделению прав между ЗУП и ERP. Самый корректный способ решения без внесения изменений в код — это проверка целесообразности выгрузки именно из ЗУП при наличии интеграции, но если бизнес-процесс требует обратного, использование расширения с правкой процедуры РазрешитьОтправкуВБанкОтдельнойВедомости будет наиболее эффективным выходом.

← На главную