После обновления конфигурации «Зарплата и управление персоналом» до релиза 3.1.8.155 многие пользователи и администраторы столкнулись с неприятной ситуацией: в документах «Ведомость в банк» бесследно исчезла кнопка «Выгрузить файл», а автоматическая генерация XML-файлов для банковских систем перестала работать. Ситуация осложняется тем, что привычные настройки зарплатного проекта кажутся верными, но функционал остается недоступным. Рассмотрим детально, почему это происходит и какими способами можно восстановить работу системы.
Проанализируем изменения, внесенные разработчиками 1С в логику программы. Начиная с ветки 3.1.8, была реализована жесткая привязка интерфейса к настройкам синхронизации данных. Если в вашей информационной базе включен обмен с «1С:ERP Управление предприятием» или «1С:Комплексная автоматизация 2.0», программа автоматически предполагает, что функции казначейства и фактического взаимодействия с банками переносятся на сторону управляющей системы (ERP).
С точки зрения методологии разработчиков, ЗУП в связке с ERP должна выполнять только роль кадрового учета и расчета сумм, а формирование платежных документов и файлов для банка — это задача финансового контура ERP. Поэтому кнопка выгрузки скрывается принудительно, чтобы избежать дублирования операций. Выясним, какие технические условия влияют на видимость кнопки.
Прежде чем переходить к радикальным мерам, проверим стандартные настройки. Посмотрим, установлены ли необходимые флаги в карточке зарплатного проекта:
Важное наблюдение: иногда в релизе 3.1.8.155 после обновления признак электронного обмена визуально стоит, но «не подхватывается» формой ведомости. Попробуем снять галочку, записать объект, затем снова установить её и снова записать. Это может принудительно обновить состояние связанных объектов.
Для программистов и системных администраторов будет полезно проанализировать программный код, отвечающий за вывод команды на форму. Управление видимостью кнопки ВыгрузитьФайлДляОбменаСБанком осуществляется в общем модуле. Рассмотрим ключевое условие, которое определяет судьбу этого элемента интерфейса:
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВыгрузитьФайлДляОбменаСБанком",
"Видимость",
ПоказыватьКомандуОбмена И Не ИспользоватьПрямойОбмен
);
В этой строке переменная ПоказыватьКомандуОбмена вычисляется исходя из наличия настройки обмена с ERP. Если в константах или настройках синхронизации стоит флаг связи с УправлениеПредприятием2, значение превращается в Ложь, и кнопка исчезает.
Если ваша организация не готова переносить процесс выгрузки файлов в ERP и вам необходимо сохранить этот функционал в ЗУП, потребуется внести изменения в общий модуль КонфигурацииЗарплатаКадрыРасширенный. Найдем процедуру РазрешитьОтправкуВБанкОтдельнойВедомости(Использование). Нам нужно принудительно вернуть значение Истина параметру Использование, игнорируя наличие обмена с ERP.
Посмотрим на пример реализации исправления:
Процедура РазрешитьОтправкуВБанкОтдельнойВедомости(Использование) Экспорт
ИспользуетсяОбменУправлениеПредприятием2 = Ложь;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОбменЗарплатаERP") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиУниверсальныйФормат");
УстановитьПривилегированныйРежим(Истина);
ИспользуетсяОбменУправлениеПредприятием2 = Модуль.ИспользуетсяОбменУправлениеПредприятием2;
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Если ИспользуетсяОбменУправлениеПредприятием2 Тогда
Использование = Ложь; // Здесь программа отключает кнопку
КонецЕсли;
//++ Наше исправление: принудительно разрешаем выгрузку
Использование = Истина;
//-- Конец процедуры
КонецПроцедуры
После внесения этого изменения (рекомендуется делать это через расширение конфигурации, чтобы не снимать основную базу с поддержки) кнопка «Выгрузить файл» появится снова, независимо от настроек синхронизации.
Иногда кнопка отсутствует по более прозаичным причинам. Проанализируем дополнительные факторы:
Часто вместе с проблемой ведомостей в этом же релизе проявляется ошибка с формированием расчетных листков (они выводятся пустыми или без реквизитов). Проанализируем решение этой ситуации. Проблема обычно кроется в некорректном обновлении кэша метаданных и временных файлов.
Рекомендуется выполнить следующие действия:
%AppData%\1C\1Cv8\ и %LocalAppData%\1C\1Cv8\.Подводя итог, можно сказать, что исчезновение кнопки — это следствие новой логики 1С по разделению прав между ЗУП и ERP. Самый корректный способ решения без внесения изменений в код — это проверка целесообразности выгрузки именно из ЗУП при наличии интеграции, но если бизнес-процесс требует обратного, использование расширения с правкой процедуры РазрешитьОтправкуВБанкОтдельнойВедомости будет наиболее эффективным выходом.