Почему документы выплаты зарплаты не загружаются в 1С:Бухгалтерию при синхронизации

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Нередко при настройке и выполнении типового обмена данными между конфигурациями 1С:Зарплата и управление персоналом и 1С:Бухгалтерия предприятия возникает скрытая ошибка: часть документов выплаты зарплаты (ВедомостьНаВыплатуЗарплаты) не появляется в базе-приемнике. При этом процесс синхронизации завершается со статусом успешного выполнения, количество выгруженных и загруженных объектов совпадает, а сам документ присутствует в файле обмена XML.

Разберем по шагам внутренние механизмы платформы и типовых конфигураций, выясним истинную причину такого поведения и рассмотрим надежные способы решения проблемы.

Анализ механизма проверки даты запрета при обмене

Основная причина скрытого пропуска ведомостей заключается в специфике работы механизма проверки дат запрета. В конфигурациях на базе Библиотеки стандартных подсистем (БСП) действуют два различных механизма контроля:

  1. Дата запрета изменения данных — ограничивает интерактивную работу пользователей в программе.
  2. Дата запрета загрузки данных — настраивается индивидуально для каждого узла обмена в разделе синхронизации и контролирует импорт объектов из внешних баз.

Проанализируем ключевой нюанс обработки зарплатных документов. Для большинства первичных документов границей проверки выступает реквизит Дата. Однако для документов выплаты и начисления зарплаты типовые правила обмена и алгоритмы БСП переопределяют контрольную дату. В качестве точки контроля система использует не дату самого документа, а расчетный месяц — реквизит ПериодРегистрации.

Рассмотрим конкретную ситуацию: документ ведомости создан и датирован июлем (например, 05.07.2017), но в реквизите ПериодРегистрации указан май (01.05.2017), так как выплачивается задолженность за май. Если в базе 1С:Бухгалтерия предприятия установлена дата запрета изменения или загрузки, равная 31.05.2017, система считает, что документ относится к закрытому периоду, и блокирует его создание.

Выясним причину совпадения счетчиков: платформа инкрементирует количество загруженных объектов в момент успешного синтаксического чтения узла XML. Когда в процессе проведения или записи срабатывает отказ по дате запрета загрузки данных, критическое исключение не генерируется, чтобы не прерывать весь пакет синхронизации. В результате документ тихо пропускается, а отчет обмена рапортует об успешной обработке всех узлов.

Диагностика проблемы

Прежде чем вносить изменения в настройки, проверим наличие проблемы в базе-приемнике. Выполним следующие шаги диагностики:

  1. Анализ журнала регистрации в базе-приемнике. Откроем журнал регистрации в 1С:Бухгалтерия предприятия и установим отбор по событиям со статусом Предупреждение или Информация. В момент синхронизации подсистема фиксирует запись о том, что объект с определенным УникальныйИдентификатор не был записан из-за попадания в закрытый период.
  2. Проверка расчетного периода в файле обмена. Откроем transport XML-файл и найдем секцию с незагруженным объектом. Обратим внимание на реквизит ПериодРегистрации. Сравним значение этого тега с установленными датами запрета в базе-приемнике.
  3. Проверка регистра соответствий. Проанализируем регистр сведений Соответствия объектов информационных баз. Если документ ранее уже участвовал в обмене, а затем был удален непосредственно (без контроля ссылочной целостности), в регистре может остаться некорректная запись сопоставления по идентификатору GUID.

Способ 1. Корректировка даты запрета загрузки в базе-приемнике

Это штатный и наиболее правильный способ устранения проблемы, сохраняющий целостность методологии учета.

  1. В конфигурации 1С:Бухгалтерия предприятия перейдем в раздел Администрирование — Синхронизация данных.
  2. Откроем ссылку Даты запрета загрузки.
  3. Проверим значение даты для узла информационной базы, из которой выполняется выгрузка (ЗУП). Если указана общая дата, сместим ее назад таким образом, чтобы реквизит ПериодРегистрации проблемного документа оказался в открытом периоде.
  4. Если закрытие периода необходимо сохранить для других организаций, переключим настройку в режим По организациям и откроем доступ только для той организации, по которой передаются ведомости.
  5. Повторим процедуру загрузки данных из ЗУП. Документ успешно запишется в базу. После завершения импорта дату запрета загрузки можно вернуть в исходное состояние.

Способ 2. Загрузка через внешнюю обработку обмена

Разберем, почему помогает использование внешней обработки обмена данными (например, УниверсальныйОбменДаннымиXML):

Когда мы загружаем выгруженный XML-файл через универсальную внешнюю обработку интерактивно от имени пользователя с административными правами, загрузка выполняется вне контекста регламентного узла плана обмена БСП. Механизм проверки даты запрета загрузки узла при этом не активируется, что позволяет документу записаться в информационную базу даже при наличии ограничений.

  1. Выполним штатную выгрузку данных из ЗУП в файл.
  2. В базе 1С:Бухгалтерия предприятия откроем внешнюю обработку УниверсальныйОбменДаннымиXML.
  3. Перейдем на вкладку Загрузка данных, выберем сформированный файл и нажмем кнопку Загрузить данные.

Способ 3. Временная смена расчетного периода в базе-источнике

Если доступ к изменению дат запрета в бухгалтерии ограничен административной политикой, применим временную корректировку на стороне ЗУП:

  1. В документе ведомости в ЗУП временно изменим реквизит Месяц начисления на открытый период (например, с мая на июнь).
  2. Выполним сеанс синхронизации. Документ успешно запишется в 1С:Бухгалтерия предприятия, так как его расчетный период больше не блокируется датой запрета.
  3. Вернем правильный месяц начисления (май) в исходном документе в ЗУП.
  4. Откроем перенесенный документ непосредственно в 1С:Бухгалтерия предприятия и вручную скорректируем месяц начисления на май. При последующих сеансах обмена документ уже будет сопоставлен по внутреннему идентификатору и не будет конфликтовать.
← На главную