К статье
Практический материал

Администрирование · 10 мин

Как исключить документы из обмена данными в 1С

Как исключить документы из обмена в 1С: отборы по СОД, регистрация изменений, правила конвертации, удаление регистрации и проверка результата.

При обмене данными между базами 1С (например, между «Управлением торговлей» и «Бухгалтерией» или через РИБ) нередко требуется, чтобы часть документов не выгружалась: черновики, документы по определённой организации, старые периоды, служебные операции. Для этого в типовых конфигурациях предусмотрено несколько механизмов — отборы в настройке синхронизации, дата начала выгрузки, правила регистрации и конвертации объектов.

Выбор способа зависит от задачи. Если нужно навсегда не передавать определённый вид документов или документы по условию — настраивается отбор в правилах синхронизации. Если документ уже зарегистрирован к обмену, но отправлять его нельзя — удаляется регистрация изменений. Если обмен построен на правилах конвертации (КД 2.0/3.0) — фильтрацию добавляют в правила выгрузки данных или обработчики.

Важно понимать разницу между двумя уровнями: регистрация (что помечено к отправке) и выгрузка (что реально ушло в сообщение). Документ может быть зарегистрирован, но отфильтрован на этапе выгрузки, — тогда он не попадёт в файл обмена, хотя в очереди регистрации останется. Оба уровня нужно контролировать, иначе получите либо «застрявшие» в очереди объекты, либо неожиданные документы в базе-приёмнике.

Определите, какой у вас тип обмена

Прежде чем что-то настраивать, выясните, каким механизмом работает ваш обмен. В типовых конфигурациях встречаются три варианта: синхронизация данных через универсальный формат (EnterpriseData), обмен по правилам конвертации данных (XML-правила, созданные в «Конвертации данных») и распределённая информационная база (РИБ). У каждого свои точки настройки фильтрации.

Посмотреть тип обмена можно в разделе «Администрирование» → «Синхронизация данных» (в разных конфигурациях название может отличаться: «Настройки синхронизации данных», «Обмены данными»). Откройте настройку нужного обмена: если внутри есть кнопки «Параметры синхронизации данных», «Настроить правила отправки и получения» — это типовая синхронизация с отборами. Если указан файл правил — это обмен по правилам конвертации.

Исключение документов через отборы синхронизации

Самый безопасный и обратимый способ — отборы в настройке синхронизации. Откройте «Администрирование» → «Синхронизация данных» → нужная настройка → «Настроить правила отправки данных». Здесь обычно доступны: дата начала использования обмена (документы раньше неё не выгружаются), отбор по организациям, по подразделениям, по складам, а в некоторых конфигурациях — произвольный отбор по видам документов и их реквизитам.

Чтобы исключить конкретный вид документов, найдите в настройке отправки данных список выгружаемых объектов и снимите флажок с нужного вида либо добавьте условие отбора. Например, чтобы не выгружались документы «Корректировка поступления», достаточно исключить этот вид из отправки. Чтобы исключить документы по условию (например, только по одной организации), добавьте в отбор поле «Организация» с нужным значением или списком значений.

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

Порядок настройки отбора
  1. 1
    Откройте «Администрирование» → «Синхронизация данных» и выберите нужный обмен
  2. 2
    Перейдите в «Настроить правила отправки данных»
  3. 3
    Установите дату начала выгрузки и отборы по организациям или видам документов
  4. 4
    Сохраните настройку и проверьте состав отправляемых данных
  5. 5
    Выполните синхронизацию и сверьте результат в базе-приёмнике

Исключение уже зарегистрированных документов

Настройка отборов не удаляет объекты, которые уже стоят в очереди регистрации. Если документ был зарегистрирован к обмену до изменения настроек, он может всё равно уйти при следующей выгрузке — либо «зависнуть» в очереди и мешать диагностике. Поэтому после изменения отборов очередь нужно почистить.

В типовых конфигурациях для этого служит команда «Состав отправляемых данных» (открывается из настройки синхронизации). В открывшемся списке видно все зарегистрированные объекты по видам. Выделите ненужные документы и нажмите «Удалить регистрацию» (или «Не отправлять»). После этого объекты не попадут в сообщение обмена, пока не будут изменены снова — при следующей записи документа регистрация появится заново, но уже отфильтруется новыми отборами.

Для массовой очистки удобно использовать встроенную обработку «Регистрация изменений для обмена данными» (в некоторых конфигурациях доступна через «Все функции» → «Обработки») или типовую обработку с диска ИТС. Она позволяет снять регистрацию по целому виду документов за выбранный период одним действием.

Фильтрация в правилах конвертации данных

Если обмен работает по правилам конвертации (файл правил XML, загруженный в настройку обмена), отборы настраиваются в самих правилах — в конфигурации «Конвертация данных 2.1» или «3.0». Есть два основных места фильтрации: правило выгрузки данных (ПВД) и правило конвертации объекта (ПКО).

В ПВД добавьте отбор на выборку: например, в запросе произвольной выборки исключите документы с пометкой удаления, по списку организаций или по виду операции. В ПКО используйте обработчик «Перед выгрузкой»: установив параметр «Отказ» в значение Истина, вы отмените выгрузку конкретного объекта по любому алгоритму — например, по условию на статус, склад или автора документа.

Пример обработчика «Перед выгрузкой» для исключения документов одной организации:

bsl
// Обработчик "Перед выгрузкой" в ПКО документа
Если Источник.Организация <> ОрганизацияДляВыгрузки Тогда
    Отказ = Истина;
КонецЕсли;

После изменения правил выгрузите их из «Конвертации данных» в файл и загрузите обновлённый файл в настройку обмена в рабочей базе. Проверьте на копии базы, что документы по условию перестали попадать в файл обмена, а нужные документы выгружаются корректно.

Исключение документов в РИБ

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

Для нестандартных условий в РИБ применяют подписки на события регистрации изменений (обработчики «При регистрации изменений» плана обмена), где программно отменяют регистрацию объекта по условию. Это доработка конфигурации, поэтому её выполняют через расширение, чтобы не снимать конфигурацию с поддержки. Перед внедрением протестируйте расширение на копии: ошибка в обработчике регистрации может остановить весь обмен.

Проверка результата и типичные ошибки

После настройки проверьте результат в три шага. Сначала откройте «Состав отправляемых данных» и убедитесь, что исключённые документы не регистрируются при повторной записи. Затем выполните выгрузку и проанализируйте файл сообщения (или протокол обмена): исключённых документов в нём быть не должно. Наконец, сверьте базу-приёмник: новые документы по условию не создаются, ранее выгруженные обработаны по принятому решению.

Частая ошибка — изменить только отборы, но не почистить уже зарегистрированные объекты: документы продолжают уходить «по инерции». Вторая типичная ошибка — исключить документ, но забыть про связанные объекты: например, не выгружается реализация, а счёт-фактура по ней выгружается, что приводит к «битым» ссылкам или ошибкам в приёмнике. Третья — фильтровать только в одну сторону при двустороннем обмене: документ, созданный в другой базе, вернётся обратно.

Типичные ошибки
01
Изменили отборы, но не удалили регистрацию — старые документы всё равно выгружаются
02
Исключили документ, но не его подчинённые объекты — в приёмнике ошибки ссылочной целостности
03
Настроили фильтр только в одной базе при двустороннем обмене — документ возвращается обратно
04
Применили изменения сразу в рабочей базе без копии — при ошибке обмен остановлен
Контрольные точки

Как проверить результат

Состав отправляемых данных
Норма

Исключённые документы не регистрируются при записи

Тревожный признак

Документы снова появляются в очереди

Файл или протокол обмена
Норма

В сообщении нет исключённых видов документов

Тревожный признак

Документы присутствуют в выгрузке

База-приёмник
Норма

Новые исключённые документы не создаются

Тревожный признак

Документы появляются или возникают ошибки загрузки

FAQ

Документ всё равно выгружается после настройки отбора. Почему?

Скорее всего, он был зарегистрирован к обмену до изменения настроек. Откройте «Состав отправляемых данных», найдите документ и удалите его регистрацию. Также проверьте, что отбор настроен именно для нужного узла обмена и в нужном направлении.

Как исключить документы за определённый период?

Используйте параметр «Дата начала использования обмена» в настройке синхронизации — документы раньше этой даты не выгружаются. Для более гибких условий по периоду добавьте отбор по дате в правилах отправки или в обработчике ПВД при обмене по правилам конвертации.

Можно ли исключить только проведённые или только непроведённые документы?

Да. В типовых отборах такого условия обычно нет, поэтому используйте обработчик «Перед выгрузкой» в ПКО: проверьте свойство Источник.Проведен и при необходимости установите Отказ = Истина. В отборах произвольного алгоритма ПВД условие на проведение добавляется в запрос.

Что будет с документами, которые уже выгружены в базу-приёмник?

Ничего автоматически — исключение из обмена не удаляет данные в приёмнике. Их нужно обработать отдельно: пометить на удаление вручную, настроить правило удаления на стороне приёмника или оставить, решив вопрос согласованности учёта.

Как исключить документы при двустороннем обмене?

Настройте одинаковые отборы в обеих базах: и в правилах отправки первой, и в правилах отправки второй. Иначе документ, созданный или изменённый в другой базе, вернётся обратно при следующем сеансе обмена.

Можно ли исключить документы без доработки конфигурации?

Да, если условие простое: вид документа, организация, склад, дата — это закрывается типовыми отборами синхронизации. Нестандартная логика (по статусу, автору, произвольному реквизиту) потребует правок правил конвертации или расширения конфигурации.

Итог

Что важно запомнить

Исключение документов из обмена делается на двух уровнях: отборы в настройке синхронизации (или правилах конвертации) определяют, что выгружать, а удаление регистрации чистит уже стоящую очередь. После изменений проверяйте состав отправляемых данных, файл обмена и базу-приёмник, а все эксперименты проводите на копии базы.