При синхронизации данных между различными конфигурациями 1С, такими как 1С:Управление торговлей (УТ) и 1С:Бухгалтерия предприятия (БП), часто возникает вопрос о корректной нумерации документов. Пользователи сталкиваются с тем, что номера документов, созданных в УТ и переданных в БП, могут отличаться или генерироваться по правилам Бухгалтерии, что вызывает путаницу и затрудняет поиск. Давайте вместе разберем эту проблему и выясним, как ее эффективно решить.
Мы рассмотрим подробнее, почему возникают такие ситуации, какие подходы существуют для их разрешения, и какие инструменты 1С нам в этом помогут. Наша цель — обеспечить бесперебойную и логичную работу с документами в обеих информационных базах.
Прежде всего, проанализируем ситуацию: в большинстве случаев, когда речь идет о торговых операциях (реализации, поступления, возвраты), 1С:Управление торговлей является первичным источником данных. Это означает, что именно УТ должна определять номера таких документов, а 1С:Бухгалтерия предприятия должна лишь принимать эти документы, сохраняя их оригинальные номера. Такой подход позволяет избежать двойного ввода информации, минимизировать ошибки и упростить отслеживание документов по всей цепочке бизнес-процессов.
Стандартная рекомендация 1С гласит, что номера документов формируются с учетом префикса организации, префикса информационной базы и порядкового номера. Использование префиксов для каждой информационной базы (например, "УТ" для Управления торговлей и "БП" для Бухгалтерии предприятия) является отличной практикой. Это позволяет однозначно определить источник документа после синхронизации и предотвращает дублирование номеров даже при наличии одинаковых порядковых номеров.
Один из самых важных моментов, который мы должны выяснить при настройке обмена, это способ идентификации документов. Крайне важно, чтобы при обмене документами они опознавались по уникальному идентификатору (УИД или GUID), а не по номеру. Почему это так важно?
Мы используем механизм сопоставления данных, который в 1С реализован через регистр сведений Публичные идентификаторы синхронизируемых объектов. Этот регистр хранит соответствия между объектами разных баз. В конфигурации 1С:Конвертация данных 3.0 (и более поздних версиях) мы можем настроить идентификацию объектов по УИД, по УИД и полям поиска, или только по полям поиска. Всегда стремитесь к идентификации по УИД, если это возможно.
Для настройки правил обмена между 1С:УТ и 1С:Бухгалтерия мы обычно используем конфигурации "1С:Конвертация данных" версий 2.0 (или 2.1) и 3.0 (или 3.1). Разберем их особенности:
Теперь рассмотрим конкретные подходы к обработке номеров документов при синхронизации.
Это наиболее правильный и рекомендованный подход. Мы исходим из того, что номер, присвоенный документу в 1С:УТ, является окончательным и должен быть сохранен в 1С:Бухгалтерии предприятия.
Как это достигается:
Преимущества: Прозрачность учета, легкость поиска документов по единому номеру в обеих базах, отсутствие необходимости в дополнительных доработках. Фраза "Правильный номер - УТ" из форума как раз подчеркивает этот подход.
Иногда возникают ситуации, когда по каким-то внутренним правилам или особенностям учета в 1С:Бухгалтерии предприятия требуется, чтобы номера документов генерировались именно по правилам БП. Мы должны понимать, что этот подход сложнее и не всегда оправдан, так как нарушает принцип "единого источника истины" для номера документа.
Рассмотрим два основных способа реализации такого изменения.
Мы можем использовать расширение конфигурации для того, чтобы перед записью документа в 1С:Бухгалтерии очищать его номер. Это заставит систему сгенерировать новый номер по правилам БП.
Разберем по шагам:
Документ.РеализацияТоваровУслуг).ПередЗаписью. В этом обработчике мы прописываем логику очистки номера.Посмотрим на пример кода:
В модуле объекта документа (который мы добавили в расширение) мы можем написать следующий код:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
// Проверяем, является ли документ новым или был ли он загружен из обмена
// (можно использовать дополнительные признаки, например, наличие УИД Источника)
Если ИсточникОбмена = "УТ" Или ЭтотОбъект.ДополнительныеСвойства.Свойство("ЭтоОбменДанными") Тогда
ЭтотОбъект.Номер = ""; // Очищаем номер, чтобы система сгенерировала новый
КонецЕсли;
КонецПроцедуры
Важные моменты:
ИсточникОбмена = "УТ": Это условный пример. В реальной системе вам потребуется определить, как именно ваш обмен помечает документы, пришедшие из другой базы. Это может быть специальное свойство, или проверка на заполненность поля, которое заполняется только при обмене.ЭтотОбъект.Номер = "";: Эта строка непосредственно очищает номер документа. При последующей записи 1С автоматически присвоит ему новый номер согласно настройкам нумерации в БП.Минусы подхода: При использовании этого метода нарушается прямая связь с оригинальным номером из УТ, что может усложнить поиск и сопоставление документов в случае аудита или сверки данных.
Если мы используем внешние правила обмена, созданные в "Конвертации данных", мы можем прописать алгоритм очистки или изменения номера непосредственно в правилах конвертации для соответствующего документа.
Разберем по шагам:
РеализацияТоваровУслуг).Посмотрим на пример кода в "Конвертации данных":
В обработчике "После загрузки" для свойства "Номер" объекта "Документ.РеализацияТоваровУслуг" можно указать:
// Если источник - УТ, очищаем номер
Если ОбъектОбмена.Метаданные.Имя = "РеализацияТоваровУслуг" И Источник.СсылкаНаОбъект.Метаданные.Имя = "РеализацияТоваровУслуг" Тогда
Значение = ""; // Очищаем номер, чтобы он был перегенерирован в принимающей базе
КонецЕсли;
Важные моменты:
Значение = "";: Эта строка присваивает пустое значение номеру документа, и при записи в БП будет сгенерирован новый номер.Преимущества: Этот метод более гибок, чем изменение через расширение, так как вся логика сосредоточена в правилах обмена. Однако он также имеет те же минусы, что и предыдущий способ, связанные с нарушением единообразия нумерации.
Мы уже упоминали об этом, но давайте рассмотрим подробнее. Использование префиксов для каждой информационной базы является стандартной рекомендацией. Например, документы в 1С:УТ могут иметь префикс "УТ-", а в 1С:БП — "БП-".
Пример:
УТ-00000001БП-00000001Если вы решили, что номера в БП должны быть свои, но при этом хотите сохранить уникальность, то при синхронизации документ из УТ (например, УТ-00000001) будет передан в БП, и в БП ему будет присвоен свой номер, например, БП-00000005. Главное — чтобы идентификация при обмене происходила по УИД, а не по номеру.
Важно: Изменение префикса информационной базы в уже работающей системе не рекомендуется, так как это может привести к сбросу нумерации документов и другим непредсказуемым последствиям.
Прежде чем приступать к настройке синхронизации и корректировке нумерации, мы должны выполнить ряд важных подготовительных работ. Это поможет избежать многих проблем в будущем.
Проанализируем некоторые дополнительные аспекты, которые могут повлиять на нумерацию документов:
Экспресс-проверка ведения учета. Она может помочь в проверке и автоматическом исправлении нумерации приходных и расходных кассовых ордеров, а также счетов-фактур. Используйте ее для контроля.Мы рассмотрели все основные аспекты проблемы с нумерацией документов при синхронизации 1С:УТ и 1С:Бухгалтерия. Настоятельно рекомендуем придерживаться принципа сохранения номера из 1С:УТ и идентификации по УИД. Если же специфические требования вынуждают вас изменять номера в 1С:Бухгалтерии, используйте описанные методы с осторожностью и пониманием возможных последствий.
← К списку