После проведения очередного обновления конфигурации 1С:Зарплата и управление персоналом 3.1 пользователи часто сталкиваются с неприятной ситуацией: в документах Ведомость в банк (как в форме самого документа, так и в списке) исчезает привычная кнопка "Выгрузить в файл". Это блокирует процесс передачи данных в банк, если не используется прямой обмен (DirectBank). В этой статье мы подробно разберем, почему это происходит, как проанализировать проблему с помощью отладчика и какие шаги предпринять для восстановления функционала.
Первым делом нам необходимо понять, как программа принимает решение о выводе кнопки на форму. В современных редакциях ЗУП 3.1 управление командами обмена реализовано динамически. Рассмотрим программный код, который отвечает за установку видимости. Как правило, за это отвечает общий модуль ОбменаСБанкамиПоЗарплатнымПроектам.
Проанализируем процедуру ОбновитьКомандыОбменаОбъекта, которая вызывается при создании формы. Именно здесь параметр РазрешенаОтправкаДокумента играет ключевую роль. Если он принимает значение Ложь, кнопка будет скрыта программно, даже если она физически существует в конфигураторе.
Процедура ОбновитьКомандыОбменаОбъекта(Форма, Источник, РазрешенаОтправкаДокумента = Истина) Экспорт
Для Каждого КомандаОбмена Из Форма.КомандыОбмена Цикл
ПоказыватьКоманду = Истина;
Если Не РазрешенаОтправкаДокумента Или КомандаОбмена.Значение.Найти(Источник) = Неопределено Тогда
ПоказыватьКоманду = Ложь;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, КомандаОбмена.Ключ, "Видимость", ПоказыватьКоманду);
КонецЦикла;
КонецПроцедуры
Если при отладке мы видим, что в переменную ПоказыватьКоманду попадает Ложь, значит, система считает условия для выгрузки невыполненными. Разберем основные причины такого поведения по шагам.
Самая очевидная причина — сброс или некорректное заполнение настроек обмена в справочнике Зарплатные проекты. Программа скрывает кнопку выгрузки, если считает, что проект не предполагает электронного обмена. Проверим следующие настройки:
Даже если вы работаете под учетной записью с ролью Полные права, этого может быть недостаточно в новых релизах. Система прав в ЗУП 3.1 гранулярна, и для работы с файлами обмена требуются специфические разрешения. Проанализируем наличие следующих ролей у пользователя:
Выполнение обмена с банками по зарплатным проектам — критически важная роль для видимости кнопок выгрузки.Работа с внешними файлами — необходима для сохранения сформированного файла на диск.Обработки.ОбменСБанками. Для корректной работы требуются права на Использование и Просмотр.Выясним, почему параметр РазрешенаОтправкаДокумента может принимать значение Ложь. В последних обновлениях 1С добавила проверки на состояние документа:
Выплачено, кнопка "Выгрузить" может скрываться, так как система считает операцию завершенной.Выплачивать выбрано значение, не соответствующее настройкам зарплатного проекта (например, "В межрасчетный период" при отсутствии таких настроек в проекте), алгоритм может скрыть команды выгрузки.Если кнопка в ведомости так и не появилась, но выгрузку нужно сделать срочно, воспользуемся альтернативным механизмом, который часто остается рабочим даже при ошибках в форме документа. Рассмотрим этот способ:
Если отладчик показывает, что все настройки верны, но свойство ЭлементФормы.Видимость упорно устанавливается в значение Ложь без видимых причин, мы имеем дело с повреждением кэша метаданных. Это часто происходит именно после "кривого" наката обновления. Выполним следующие действия:
/ClearCache.snccntx в каталоге данных сервера.Как показывает практика (и опыт автора проблемы), иногда обновление конфигурации проходит с микро-сбоями, которые не диагностируются проверкой конфигурации, но влияют на работу динамических форм. Рассмотрим алгоритм действий в этом случае:
.cf из идентичной базы, где кнопка присутствует, и загрузить её в проблемную базу через Конфигурация — Загрузить конфигурацию из файла. Важно: этот метод подходит только если версии релизов полностью совпадают..cf не помогла, следует восстановить базу из бэкапа до обновления и повторить процесс обновления заново, предварительно убедившись, что в процессе обновления никто не подключается к базе и не прерывает регламентные операции.Разберем, почему простая загрузка .cf может не помочь. В современных конфигурациях 1С многие настройки интерфейса хранятся в системных справочниках и регистрах сведений (например, Параметры работы программ). При обновлении выполняются обработчики обновления, которые заполняют эти регистры. Если обработчик не отработал (например, из-за аварийного завершения сеанса), кнопка не появится, даже если программный код в .cf будет идеальным. Поэтому критически важно дождаться окончания выполнения всех регламентных процедур обновления при первом запуске в режиме "Предприятие".
Подводя итог, можно сказать, что исчезновение кнопки "Выгрузить в файл" — это комплексная проблема. Чаще всего она решается проверкой ролей пользователя или перевыбором зарплатного проекта в документе. Однако в случае системного сбоя после обновления, единственным надежным способом остается повторная установка обновления на "чистую" копию базы с последующей тщательной очисткой кэша сервера и клиентских станций.