Как правильно обрабатывать номера документов при синхронизации 1С:УТ и 1С:Бухгалтерия?

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

При синхронизации данных между различными конфигурациями 1С, такими как 1С:Управление торговлей (УТ) и 1С:Бухгалтерия предприятия (БП), часто возникает вопрос о корректной нумерации документов. Пользователи сталкиваются с тем, что номера документов, созданных в УТ и переданных в БП, могут отличаться или генерироваться по правилам Бухгалтерии, что вызывает путаницу и затрудняет поиск. Давайте вместе разберем эту проблему и выясним, как ее эффективно решить.

Мы рассмотрим подробнее, почему возникают такие ситуации, какие подходы существуют для их разрешения, и какие инструменты 1С нам в этом помогут. Наша цель — обеспечить бесперебойную и логичную работу с документами в обеих информационных базах.

Основной принцип: 1С:УТ — источник истины для торговых операций

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

Стандартная рекомендация 1С гласит, что номера документов формируются с учетом префикса организации, префикса информационной базы и порядкового номера. Использование префиксов для каждой информационной базы (например, "УТ" для Управления торговлей и "БП" для Бухгалтерии предприятия) является отличной практикой. Это позволяет однозначно определить источник документа после синхронизации и предотвращает дублирование номеров даже при наличии одинаковых порядковых номеров.

Ключ к успеху: Идентификация документов по УИД

Один из самых важных моментов, который мы должны выяснить при настройке обмена, это способ идентификации документов. Крайне важно, чтобы при обмене документами они опознавались по уникальному идентификатору (УИД или GUID), а не по номеру. Почему это так важно?

  1. Сохранение целостности: Если документы идентифицируются по номеру, а номера в принимающей базе генерируются по-своему, система может создать новый документ вместо обновления существующего, или вовсе не найти соответствие.
  2. Гибкость: Идентификация по УИД обеспечивает корректное сопоставление объектов, даже если их номера в разных базах отличаются или были изменены вручную.

Мы используем механизм сопоставления данных, который в 1С реализован через регистр сведений Публичные идентификаторы синхронизируемых объектов. Этот регистр хранит соответствия между объектами разных баз. В конфигурации 1С:Конвертация данных 3.0 (и более поздних версиях) мы можем настроить идентификацию объектов по УИД, по УИД и полям поиска, или только по полям поиска. Всегда стремитесь к идентификации по УИД, если это возможно.

Инструменты для настройки правил обмена

Для настройки правил обмена между 1С:УТ и 1С:Бухгалтерия мы обычно используем конфигурации "1С:Конвертация данных" версий 2.0 (или 2.1) и 3.0 (или 3.1). Разберем их особенности:

Варианты решения проблемы нумерации документов

Теперь рассмотрим конкретные подходы к обработке номеров документов при синхронизации.

Вариант 1: Сохраняем номера из 1С:УТ (Рекомендуемый подход)

Это наиболее правильный и рекомендованный подход. Мы исходим из того, что номер, присвоенный документу в 1С:УТ, является окончательным и должен быть сохранен в 1С:Бухгалтерии предприятия.

Как это достигается:

  1. Идентификация по УИД: Убедитесь, что в правилах обмена (например, в "Конвертации данных") настроена идентификация документов по УИД. Это гарантирует, что при получении документа из УТ, БП будет искать существующий документ по его уникальному идентификатору, а не пытаться создать новый или сопоставить по номеру.
  2. Правила выгрузки/загрузки: В правилах выгрузки из УТ и загрузки в БП для реквизита "Номер" документа не нужно прописывать никаких специальных алгоритмов очистки или изменения. По умолчанию, если документ идентифицирован по УИД и реквизит "Номер" передается, он будет записан как есть.

Преимущества: Прозрачность учета, легкость поиска документов по единому номеру в обеих базах, отсутствие необходимости в дополнительных доработках. Фраза "Правильный номер - УТ" из форума как раз подчеркивает этот подход.

Вариант 2: Изменяем номера в 1С:Бухгалтерии (если очень нужно)

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

Рассмотрим два основных способа реализации такого изменения.

Способ 2.1: Использование расширения конфигурации

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

Разберем по шагам:

  1. Создание расширения: Создаем новое расширение конфигурации в режиме "Конфигуратор".
  2. Добавление объекта: Добавляем в расширение тот документ, номер которого хотим изменить (например, Документ.РеализацияТоваровУслуг).
  3. Добавление обработчика события: Для этого документа добавляем обработчик события ПередЗаписью. В этом обработчике мы прописываем логику очистки номера.

Посмотрим на пример кода:

В модуле объекта документа (который мы добавили в расширение) мы можем написать следующий код:


Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    // Проверяем, является ли документ новым или был ли он загружен из обмена
    // (можно использовать дополнительные признаки, например, наличие УИД Источника)
    Если ИсточникОбмена = "УТ" Или ЭтотОбъект.ДополнительныеСвойства.Свойство("ЭтоОбменДанными") Тогда
        ЭтотОбъект.Номер = ""; // Очищаем номер, чтобы система сгенерировала новый
    КонецЕсли;
КонецПроцедуры

Важные моменты:

Минусы подхода: При использовании этого метода нарушается прямая связь с оригинальным номером из УТ, что может усложнить поиск и сопоставление документов в случае аудита или сверки данных.

Способ 2.2: Корректировка номера в правилах обмена (1С:Конвертация данных)

Если мы используем внешние правила обмена, созданные в "Конвертации данных", мы можем прописать алгоритм очистки или изменения номера непосредственно в правилах конвертации для соответствующего документа.

Разберем по шагам:

  1. Открытие правил: Открываем правила конвертации объектов для документа (например, РеализацияТоваровУслуг).
  2. Настройка свойства "Номер": Находим свойство "Номер" и переходим к его настройкам.
  3. Добавление алгоритма: В обработчике "Перед выгрузкой" или "После загрузки" (в зависимости от логики) для свойства "Номер" мы можем прописать алгоритм.

Посмотрим на пример кода в "Конвертации данных":

В обработчике "После загрузки" для свойства "Номер" объекта "Документ.РеализацияТоваровУслуг" можно указать:


// Если источник - УТ, очищаем номер
Если ОбъектОбмена.Метаданные.Имя = "РеализацияТоваровУслуг" И Источник.СсылкаНаОбъект.Метаданные.Имя = "РеализацияТоваровУслуг" Тогда
    Значение = ""; // Очищаем номер, чтобы он был перегенерирован в принимающей базе
КонецЕсли;

Важные моменты:

Преимущества: Этот метод более гибок, чем изменение через расширение, так как вся логика сосредоточена в правилах обмена. Однако он также имеет те же минусы, что и предыдущий способ, связанные с нарушением единообразия нумерации.

Вариант 3: Использование префиксов баз

Мы уже упоминали об этом, но давайте рассмотрим подробнее. Использование префиксов для каждой информационной базы является стандартной рекомендацией. Например, документы в 1С:УТ могут иметь префикс "УТ-", а в 1С:БП — "БП-".

Пример:

Если вы решили, что номера в БП должны быть свои, но при этом хотите сохранить уникальность, то при синхронизации документ из УТ (например, УТ-00000001) будет передан в БП, и в БП ему будет присвоен свой номер, например, БП-00000005. Главное — чтобы идентификация при обмене происходила по УИД, а не по номеру.

Важно: Изменение префикса информационной базы в уже работающей системе не рекомендуется, так как это может привести к сбросу нумерации документов и другим непредсказуемым последствиям.

Подготовительные действия перед синхронизацией

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

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

Важные нюансы и дополнительные возможности

Проанализируем некоторые дополнительные аспекты, которые могут повлиять на нумерацию документов:

Мы рассмотрели все основные аспекты проблемы с нумерацией документов при синхронизации 1С:УТ и 1С:Бухгалтерия. Настоятельно рекомендуем придерживаться принципа сохранения номера из 1С:УТ и идентификации по УИД. Если же специфические требования вынуждают вас изменять номера в 1С:Бухгалтерии, используйте описанные методы с осторожностью и пониманием возможных последствий.

← К списку