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