Нередко при настройке и выполнении типового обмена данными между конфигурациями 1С:Зарплата и управление персоналом и 1С:Бухгалтерия предприятия возникает скрытая ошибка: часть документов выплаты зарплаты (ВедомостьНаВыплатуЗарплаты) не появляется в базе-приемнике. При этом процесс синхронизации завершается со статусом успешного выполнения, количество выгруженных и загруженных объектов совпадает, а сам документ присутствует в файле обмена XML.
Разберем по шагам внутренние механизмы платформы и типовых конфигураций, выясним истинную причину такого поведения и рассмотрим надежные способы решения проблемы.
Основная причина скрытого пропуска ведомостей заключается в специфике работы механизма проверки дат запрета. В конфигурациях на базе Библиотеки стандартных подсистем (БСП) действуют два различных механизма контроля:
Проанализируем ключевой нюанс обработки зарплатных документов. Для большинства первичных документов границей проверки выступает реквизит Дата. Однако для документов выплаты и начисления зарплаты типовые правила обмена и алгоритмы БСП переопределяют контрольную дату. В качестве точки контроля система использует не дату самого документа, а расчетный месяц — реквизит ПериодРегистрации.
Рассмотрим конкретную ситуацию: документ ведомости создан и датирован июлем (например, 05.07.2017), но в реквизите ПериодРегистрации указан май (01.05.2017), так как выплачивается задолженность за май. Если в базе 1С:Бухгалтерия предприятия установлена дата запрета изменения или загрузки, равная 31.05.2017, система считает, что документ относится к закрытому периоду, и блокирует его создание.
Выясним причину совпадения счетчиков: платформа инкрементирует количество загруженных объектов в момент успешного синтаксического чтения узла XML. Когда в процессе проведения или записи срабатывает отказ по дате запрета загрузки данных, критическое исключение не генерируется, чтобы не прерывать весь пакет синхронизации. В результате документ тихо пропускается, а отчет обмена рапортует об успешной обработке всех узлов.
Прежде чем вносить изменения в настройки, проверим наличие проблемы в базе-приемнике. Выполним следующие шаги диагностики:
УникальныйИдентификатор не был записан из-за попадания в закрытый период.ПериодРегистрации. Сравним значение этого тега с установленными датами запрета в базе-приемнике.Соответствия объектов информационных баз. Если документ ранее уже участвовал в обмене, а затем был удален непосредственно (без контроля ссылочной целостности), в регистре может остаться некорректная запись сопоставления по идентификатору GUID.Это штатный и наиболее правильный способ устранения проблемы, сохраняющий целостность методологии учета.
ПериодРегистрации проблемного документа оказался в открытом периоде.Разберем, почему помогает использование внешней обработки обмена данными (например, УниверсальныйОбменДаннымиXML):
Когда мы загружаем выгруженный XML-файл через универсальную внешнюю обработку интерактивно от имени пользователя с административными правами, загрузка выполняется вне контекста регламентного узла плана обмена БСП. Механизм проверки даты запрета загрузки узла при этом не активируется, что позволяет документу записаться в информационную базу даже при наличии ограничений.
УниверсальныйОбменДаннымиXML.Если доступ к изменению дат запрета в бухгалтерии ограничен административной политикой, применим временную корректировку на стороне ЗУП: