При выполнении типового обмена данными между конфигурациями 1С:Зарплата и управление персоналом (ЗУП) и 1С:Бухгалтерия предприятия (БП) многие специалисты сталкиваются с ситуацией, когда пометка на удаление, установленная в документе Ведомость в банк в базе-источнике (ЗУП), не передается в базу-приемник (БП). Давайте разберем, почему это происходит и как решить данную задачу, не нарушая типовую логику обновления конфигураций.
Первое, что необходимо понять: поведение системы не является ошибкой. Это осознанное решение разработчиков, направленное на обеспечение целостности бухгалтерского учета. Документ Ведомость в банк в 1С:Бухгалтерия является первичным документом для формирования проводок и выгрузки платежных поручений. Если система автоматически удалит (пометит на удаление) документ, который уже был оплачен банком или на основании которого сформированы проводки, это приведет к расхождению данных между бухгалтерским и управленческим учетом.
Типовые Правила обмена (конвертации) настроены так, что при получении данных система обновляет реквизиты (суммы, состав сотрудников), но блокирует операцию пометки на удаление, чтобы пользователь, отвечающий за БП, осознанно принимал решение об удалении проводок.
Если в вашей организации ведется интенсивный документооборот (например, 38 баз и сотни ведомостей в день), ручная обработка пометок на удаление становится неэффективной. Рассмотрим, как можно автоматизировать этот процесс.
Правил обмена, которые будут перезаписаны при обновлении, мы создадим Расширение конфигурации для базы БП.Регламентные задания, которые будут выполняться с заданным интервалом (например, через 5 минут после основной синхронизации) и анализировать состояние документов.Для реализации задачи создадим в расширении для 1С:Бухгалтерия обработчик, который будет находить документы, пришедшие из ЗУП, и приводить их статус в соответствие с базой-источником. Рассмотрим логику реализации:
Нам потребуется создать Регламентное задание, которое будет запускать процедуру проверки. Примерный алгоритм работы процедуры:
Процедура СинхронизироватьПометкуНаУдалениеВедомостей()
// Получаем документы, которые должны быть помечены на удаление
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВедомостьВБанк.Ссылка КАК Ссылка
|ИЗ
| Документ.ВедомостьВБанк КАК ВедомостьВБанк
|ГДЕ
| ВедомостьВБанк.ПометкаУдаления = ЛОЖЬ
| И ВедомостьВБанк.Комментарий ПОДОБНО ""%ПомеченНаУдалениеВЗУП%""";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектДок = Выборка.Ссылка.ПолучитьОбъект();
ОбъектДок.УстановитьПометкуУдаления(Истина);
КонецЦикла;
КонецПроцедуры;
Обратите внимание: для реализации такой логики в ЗУП можно добавить запись специального признака (например, в Комментарий или дополнительный реквизит) при установке пометки на удаление, чтобы БП «понимала», что документ требует аналогичного действия.
Если бизнес-процессы компании позволяют, рекомендуем отказаться от физического удаления документов. Вместо пометки на удаление можно использовать дополнительные реквизиты статусов, например, СтатусДокумента с вариантами «Действующий», «Отменен», «Оплачен». Поскольку изменение реквизитов типовая синхронизация передает корректно, такой метод позволит полностью автоматизировать процесс без риска потери данных и нарушения бухгалтерского учета.
Если же физическое удаление необходимо, убедитесь, что в базе БП не созданы Выписки банка или иные документы на основании ведомостей, которые вы планируете удалять. Использование Расширения в данном случае является оптимальным вариантом, так как оно позволяет соблюсти принцип «не навреди» при обновлении типовых конфигураций 1С.
Важное примечание: при настройке любых автоматических действий всегда проверяйте влияние на Регистры накопления и Регистры бухгалтерии. Перед внедрением решения на всех 38 базах протестируйте механизм на одной копии, чтобы исключить возникновение «битых» проводок.