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

Мы разберём не только базовые сценарии (например, связь РеализацияТоваровУслуг с СчётНаОплату), но и сложные случаи: межбазовый обмен, связь документов разных периодов, а также типичные ошибки, которые приводят к расхождению итогов в отчётах. Особое внимание уделено новым механизмам связывания через UUID в последних релизах платформы 1С 8.3.20+, которые упрощают интеграцию с внешними системами.

Статья будет полезна:

  • 📊 Бухгалтерам — для понимания, как избежать разногласий между документами при закрытии месяца.
  • 💻 Программистам 1С — для разработки кастомных механизмов связывания и отладки ошибок.
  • 🏢 Руководителям — чтобы оценить риски некорректной автоматизации документооборота.
📊 Какой конфигурацией 1С вы пользуетесь?
1С:Бухгалтерия 8.3
1С:Управление торговлей 11
1С:ERP 2
1С:Зарплата и управление персоналом
Другая

1. Базовые принципы связывания документов в 1С

В 1С:Предприятие связь между документами организуется через реквизиты-ссылки или специализированные механизмы платформы. Основные способы:

  • 🔗 Прямая ссылка — когда в документе А хранится ссылка на документ Б (например, поле СчётНаОплату в РеализацияТоваровУслуг).
  • 🔄 Обратная ссылка — когда документ Б "знает" о документе А (например, в счёте хранится список связанных реализаций).
  • 📋 Движения по регистрам — косвенная связь через записи в регистрах накопления или сведений (актуально для сложных схем учёта).
  • 🔑 UUID (уникальные идентификаторы) — современный метод для межбазового обмена и интеграций.

Важно понимать, что не все связи видны пользователю. Например, при проведении документа ПоступлениеТоваров автоматически создаются движения по регистру ТоварыНаСкладах, но явной ссылки на эти записи в интерфейсе может не быть. Такие связи называются неявными и управляются логикой конфигурации.

💡

Чтобы проверить все связи документа, используйте отчёт "Анализ связей объектов" (Все функции → Стандартные отчёты → Анализ связей объектов). Он покажет как прямые, так и косвенные зависимости.

2. Ручное связывание документов: пошаговая инструкция

Рассмотрим процесс на примере связывания Счёта на оплату и Реализации товаров и услуг в 1С:Бухгалтерия 8.3:

  1. Откройте документ РеализацияТоваровУслуг (раздел Продажи → Реализация товаров и услуг).

  2. В поле Счёт на оплату нажмите на кнопку выбора (...) или клавишу F4.

  3. В открывшемся окне выберите нужный счёт. Если счёт ещё не создан, нажмите Создать и заполните его.

  4. После выбора счёта поле заполнится автоматически, а в счёте появится обратная ссылка на реализацию (проверьте в разделе Связанные документы).

Для связывания Платёжного поручения с Поступлением на расчётный счёт:

  1. Откройте Поступление на расчётный счёт (Банк и касса → Банковские выписки).

  2. В табличной части найдите строку с платежом и дважды кликните по ней.

  3. В поле Основание укажите связанный документ (например, Счёт на оплату или Реализация).

☑️ Проверка корректности ручной связи

Выполнено: 0 / 4

⚠️ Внимание: Если при ручном связывании возникает ошибка "Не найден документ-основание", проверьте:

  • 📅 Даты документов (основание должно быть раньше зависимого документа).
  • 🏷️ Права пользователя на просмотр/редактирование связанных документов.
  • 🔄 Настройки обмена данными (если документы из разных баз).

3. Автоматическое связывание: настройки конфигурации

Для автоматизации связей в используются:

  1. Предопределённые процедуры — встроенные в конфигурацию механизмы. Например, при создании Реализации на основе Счёта связь устанавливается автоматически.

  2. Регламентные задания — для периодического поиска и связывания документов по заданным правилам (например, связь платежей с неоплаченными счетами).

  3. Обработки — внешние или встроенные скрипты для массового связывания.

Пример настройки автоматического связывания в 1С:Управление торговлей 11:

  1. Перейдите в Администрирование → Настройки программы → Заказы и продажи.

  2. Включите опцию "Автоматически связывать документы реализации со счётами".

  3. Укажите правила связывания (по номеру, дате, контрагенту).

Тип документа А Тип документа Б Способ автоматической связи Типовая конфигурация
Счёт на оплату Реализация товаров По номеру и контрагенту 1С:Бухгалтерия, 1С:УТ 11
Заказ покупателя Реализация товаров По ссылке в табличной части 1С:УТ 11, 1С:ERP
Платёжное поручение Поступление на р/с По сумме и назначению платежа 1С:Бухгалтерия
Приходный ордер Поступление товаров По номеру документа-основания 1С:УТ 11

🔹 Программистам: Для кастомной автоматизации используйте событие ПередЗаписью в модуле документа. Пример кода для автоматической связи:

Процедура ПередЗаписью(Отказ, РежимЗаписи)

Если НЕ ЗначениеЗаполнено(СчётНаОплату) Тогда

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ ПЕРВЫЕ 1

| СчётНаОплатуКлиентов.Ссылка КАК Счёт

|ИЗ

| Документ.СчётНаОплатуКлиентов КАК СчётНаОплатуКлиентов

|ГДЕ

| СчётНаОплатуКлиентов.Контрагент = &Контрагент

| И СчётНаОплатуКлиентов.СуммаДокумента = &Сумма

| И СчётНаОплатуКлиентов.Дата <= &Дата

|УПОРЯДОЧИТЬ ПО

| Дата УБЫВ";

Запрос.УстановитьПараметр("Контрагент", Контрагент);

Запрос.УстановитьПараметр("Сумма", СуммаДокумента);

Запрос.УстановитьПараметр("Дата", Дата);

Результат = Запрос.Выполнить().Выбрать();

Если Результат.Следующий() Тогда

СчётНаОплату = Результат.Счёт;

КонецЕсли;

КонецЕсли;

КонецПроцедуры

Как проверить корректность автоматической связи?

Используйте отчёт "Контроль связей документов" (Отчёты → Стандартные → Контроль связей документов). Он покажет все документы без связей или с несоответствиями по суммам/датам. Особое внимание уделите документам с статусом "Неоплачено" или "Не отгружено".

4. Связывание документов из разных баз (межбазовый обмен)

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

  • 🔄 Универсальный обмен данными (УФ) — встроенный механизм для синхронизации через XML-файлы. Поддерживает связывание по UUID.
  • 🌐 Web-сервисы — для обмена в реальном времени (требует настройки на стороне обоих баз).
  • 📦 Внешние обработки — например, "Обмен с бухгалтерией" в 1С:УТ.

Пример настройки обмена через UUID:

  1. В обеих базах включите использование UUID в настройках обмена (Администрирование → Настройки программы → Обмен данными).

  2. В документах, которые нужно связать, проверьте заполнение реквизита УникальныйИдентификатор (он должен быть уникальным для каждой базы).

  3. Настройте правило обмена, где укажите соответствие типов документов и поля для связывания (обычно это UUID или ВнешнийИдентификатор).

⚠️ Внимание: При межбазовом обмене возможны конфликты версий документов. Всегда проверяйте:

  • 🔄 Направление обмена (какая база является главной для конкретного типа документов).
  • 📅 Периодичность синхронизации (при редком обмене возможны расхождения в остатках).
  • 🔑 Права доступа (пользователь должен иметь права на изменение связанных документов в обеих базах).
💡

Для надёжного межбазового связывания используйте UUID вместо номеров документов. Это исключит ошибки при перенумерации или удалении документов в одной из баз.

5. Типичные ошибки и их исправление

Ошибки при связывании документов делятся на логические (неверные правила связи) и технические (сбои платформы или конфигурации). Рассмотрим наиболее частые:

Ошибка Причина Решение
"Документ-основание не найден" Документ удалён или перенумерован Восстановите документ из архива или свяжите вручную по UUID
"Несовпадение сумм" Изменена сумма в одном из документов Проверьте историю изменений и скорректируйте суммы
"Циклическая ссылка" Документ А ссылается на Б, а Б — на А Разорвите цикл вручную или через обработку
"Нет прав на связывание" Ограничения ролей пользователя Настройте права в Администрирование → Пользователи

🔧 Инструкция по исправлению циклических ссылок:

  1. Откройте отчёт "Анализ связей объектов" и найдите документы с циклическими ссылками.

  2. Скопируйте данные из документа (например, табличную часть) в буфер обмена.

  3. Удалите один из документов в цикле (например, дублирующий счёт).

  4. Создайте новый документ и вставьте данные из буфера.

  5. Свяжите документы заново, избегая взаимных ссылок.

⚠️ Внимание: Если после исправления ошибок связывания в отчётах (ОСВ, Анализ счёта) остаются расхождения, выполните:

  1. Перепроведите связанные документы (Действия → Провести документ).

  2. Выполните регламентное задание "Закрытие месяца".

  3. Проверьте настройки учётной политики на соответствие периодам документов.

6. Программные методы связывания (для разработчиков)

Для сложных сценариев (например, связывание документов по нестандартным критериям) используйте встроенный язык 1С или внешние компоненты. Основные подходы:

  • 📝 Запросы — для поиска и связывания документов по произвольным условиям.
  • 🔧 Обработки — для массового связывания (например, "Поиск и связывание платежей").
  • 🤖 Роботы — для автоматизации рутинных операций (доступно в 1С:ERP и 1С:УТ 11.4+).

Пример кода для связывания неоплаченных счетов с поступлениями:

Процедура СвязатьПлатежиСоСчетами()

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ПоступлениеНаРасчётныйСчёт.Ссылка КАК Поступление,

| СчётНаОплатуКлиентов.Ссылка КАК Счёт

|ИЗ

| Документ.ПоступлениеНаРасчётныйСчёт КАК ПоступлениеНаРасчётныйСчёт

| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчётНаОплатуКлиентов КАК СчётНаОплатуКлиентов

| ПО ПоступлениеНаРасчётныйСчёт.Основание = СчётНаОплатуКлиентов.Ссылка

|ГДЕ

| СчётНаОплатуКлиентов.Ссылка ЕСТЬ NULL

| И ПоступлениеНаРасчётныйСчёт.Сумма = СчётНаОплатуКлиентов.СуммаДокумента

| И ПоступлениеНаРасчётныйСчёт.Контрагент = СчётНаОплатуКлиентов.Контрагент";

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Тогда

ДокПоступление = Выборка.Поступление.ПолучитьОбъект();

ДокПоступление.Основание = Выборка.Счёт;

ДокПоступление.Записать();

КонецЦикла;

КонецПроцедуры

Для работы с UUID используйте следующие методы:

  • Объект.УникальныйИдентификатор() — получить UUID текущего документа.
  • Справочники.Документы.НайтиПоУникальномуИдентификатору(UUID) — найти документ по UUID в другой базе.

⚠️ Внимание: При программном связывании документов:

  • 🔒 Всегда используйте Транзакция для групповой записи связанных документов.
  • 📡 Проверяйте доступность базы данных (особенно при межбазовом обмене).
  • 📝 Ведите лог изменений для отката ошибочных операций.

7. Связывание документов в нетиповой конфигурации

Если ваша конфигурация сильно модифицирована или разработана с нуля, стандартные механизмы связывания могут не работать. В этом случае:

  1. Добавьте реквизиты-ссылки в нужные документы через Конфигуратор (Объект → Реквизиты).

  2. Настройте подписки на события (например, ПриЗаписи) для автоматического связывания.

  3. Используйте регистры сведений для хранения связей, если прямые ссылки невозможны.

Пример добавления реквизита для связи Заказа с Производственным заданием:

  1. Откройте конфигуратор и найдите документ ЗаказКлиента.

  2. Добавьте реквизит типа ДокументСсылка.ПроизводственноеЗадание с именем ПроизводственноеЗадание.

  3. В модуле документа ПроизводственноеЗадание добавьте код для обратной связи:

    Процедура ПередЗаписью(Отказ)
    

    Если ЗначениеЗаполнено(ЗаказКлиента) Тогда

    ДокЗаказ = ЗаказКлиента.ПолучитьОбъект();

    Если ДокЗаказ.ПроизводственноеЗадание <> ТекущийДокумент.Ссылка Тогда

    ДокЗаказ.ПроизводственноеЗадание = ТекущийДокумент.Ссылка;

    ДокЗаказ.Записать();

    КонецЕсли;

    КонецЕсли;

    КонецПроцедуры

🔹 Для сложных схем: Используйте граф связей (хранение связей в отдельном регистре сведений с указанием типа связи и приоритета). Это позволит:

  • 🔄 Гибко управлять связями без изменения конфигурации.
  • 📊 Строить отчёты по цепочкам документов (например, "от заказа до отгрузки").
  • 🔧 Легко модифицировать логику связывания без перепрограммирования.
💡

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

FAQ: Частые вопросы по связыванию документов в 1С

Как связать документ, если в списке не отображается нужный вариант?

Проверьте:

  1. Фильтры в форме выбора (возможно, установлен фильтр по дате или контрагенту).
  2. Права пользователя на просмотр документа.
  3. Настройки видимости документов в конфигураторе (реквизит ПометкаУдаления или статус документа).

Если документ существует, но не виден, попробуйте ввести его номер вручную в поле связи.

Можно ли связать документы из разных периодов (например, счёт за декабрь с реализацией в январе)?

Да, но:

  • Убедитесь, что дата документа-основания (Счёт) раньше даты зависимого документа (Реализация).
  • Проверьте настройки учётной политики — некоторые операции могут требовать совпадения периодов.
  • При межпериодном связывании может потребоваться ручное закрытие месяца для корректного отражения в отчётности.
Как массово связать документы (например, платежи с неоплаченными счетами)?

Используйте:

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

Перед массовым связыванием обязательно сделайте резервную копию базы!

Почему после связывания документов в отчётах появляются расхождения?

Частые причины:

  • Документы проведены с ошибками (проверьте движения по регистрам).
  • Несовпадение аналитики (например, разные статьи ДДС в платеже и счёте).
  • Настройки отчёта не учитывают связанные документы (настройте группировки).
  • Ошибки округления при связывании документов в разных валютах.

Для диагностики используйте отчёт "Анализ проводок" с фильтром по связанным документам.

Как связать документы в облачной версии 1С (1С:Fresh)?

В 1С:Fresh связывание документов работает аналогично десктопным версиям, но с ограничениями:

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

Для связывания документов из разных баз в 1С:Fresh настройте обмен через сервис "1С:Линк".