Объединение документов в 1С 8.3: от удаления дублей до сводной накладной
Содержание
Кнопки «Объединить документы» в 1С 8.3 нет, и обработка Администрирование → Обслуживание → Корректировка данных → Поиск и удаление дублей тоже не о том: она объединяет одинаковые элементы справочников (контрагентов, номенклатуру), а не документы. Документы объединяют одним из трёх способов: удаляют лишний дубль, создают один сводный документ по нескольким исходным (ввод на основании, копирование строк, загрузка) или собирают его обработкой на встроенном языке. Исходные документы после этого помечают на удаление.
Выбор способа зависит от задачи. Две одинаковые выписки — это дубль, его не сливают, а удаляют. Пять накладных одному покупателю за день, которые нужно превратить в одну, — это сводный документ. Сотня таких пар в месяц — повод для обработки.
Прежде чем объединять документы: три проверки
Объединение меняет движения по регистрам и проводки. Ошибку потом ищут по оборотно-сальдовой ведомости, а не по одному документу. Поэтому сначала:
- Резервная копия. Сделайте выгрузку базы или копию каталога файловой базы до начала работы. Для клиент-серверной базы — резервную копию средствами СУБД. Это единственный способ откатить массовую операцию.
- Даты запрета изменения. Если период закрыт, программа не даст ни перепровести, ни пометить документ на удаление. Настройка находится в
Администрирование → Пользователи и права → Даты запрета изменения. Открывать период — решение главного бухгалтера, не исполнителя. - Первичка у контрагента. Если накладные уже подписаны покупателем или ушли по ЭДО, «склеить» их в учёте нельзя: в базе окажется документ, которого нет на бумаге. По ст. 9 закона № 402-ФЗ каждый факт хозяйственной жизни оформляется первичным документом, и база должна совпадать с первичкой.
Дубли документов: поиск и удаление штатными средствами
Дубль появляется, когда один документ ввели руками, а второй загрузили: из банк-клиента, из обмена с другой базой, из ЭДО. Объединять тут нечего — лишний экземпляр удаляют.
Как найти дубль без программирования
- 🔎 Фильтр в журнале. Откройте список документов, например
Банк и касса → Банковские выписки. Отберите по контрагенту и отсортируйте по сумме: два одинаковых документа окажутся рядом. - 📊 Оборотно-сальдовая ведомость. Задвоенная оплата видна как переплата по 62 или 60 счёту. Расшифруйте сальдо до документов — дубль покажет себя двумя одинаковыми строками.
- 🔗 Структура подчинённости. На документе откройте структуру подчинённости (команда в меню «Ещё» или кнопка с иерархией в командной панели). Видно, какой из двух экземпляров «обвешан» счётом-фактурой и оплатами, — его и оставляют.
Как удалить лишний экземпляр
- Перенесите на «живой» документ всё, что ссылается на дубль: счёт-фактуру, оплату, корректировку.
- Пометьте дубль на удаление (
Delв списке). Пометка сразу отменяет проведение. - Запустите
Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. - Если программа пишет, что объект используется, она покажет, где именно. Исправьте эти места и повторите удаление.
Удаление помеченных объектов в монопольном режиме не обязательно, но на время операции попросите коллег не работать с удаляемыми документами. В крупной базе процедура идёт долго — запускайте её вне рабочего пика.
Когда дублируются справочники, а не документы
Часто просьба «объединить документы» на деле означает другое: в базе два контрагента «Ромашка» с одним ИНН, и документы разбросаны по обоим. Тогда нужна обработка Поиск и удаление дублей. Она находит одинаковые элементы, вы выбираете оригинал, и программа подменяет ссылку на дубль в каждом документе. Документы остаются отдельными, но «съезжаются» на одного контрагента.
Сводный документ из нескольких исходных
Это и есть объединение в бытовом смысле: было пять реализаций, стала одна. Способ выбирают по конфигурации и по числу строк.
| Способ | Когда подходит | Риск |
|---|---|---|
| Ввод на основании нескольких заказов | УТ 11, КА 2, ERP: заказы одного клиента ещё не отгружены | Почти нет: исходные заказы остаются, накладная одна |
| Копирование строк табличной части | БП 3.0 и другие: 2–5 документов, десятки строк | Легко пропустить строку или скопировать дважды |
| Загрузка строк из файла | Строк сотни, их проще собрать в Excel | Ошибки сопоставления номенклатуры |
| Обработка на встроенном языке | Регулярная задача, десятки документов | Нужен программист и тест на копии |
Ввод на основании в УТ 11 и КА
В типовых конфигурациях на базе УТ 11 накладную можно оформить сразу по нескольким заказам клиента. Выделите заказы в списке (Ctrl + щелчок) и создайте реализацию на основании. Программа сведёт в один документ заказы с совпадающими ключевыми условиями: организацией, клиентом, соглашением, складом. Если условия разные, документов получится несколько — это защита, а не сбой.
Копирование строк в БП 3.0
В Бухгалтерии сводную реализацию собирают руками:
- Создайте новую реализацию на покупателя и договор, общие для всех исходных документов.
- Откройте первый исходный документ, выделите строки табличной части
Товары(Ctrl+A). - Скопируйте строки командой копирования из меню «Ещё» табличной части и вставьте их в новый документ той же командой вставки.
- Повторите для остальных документов. Сверьте итог по сумме с суммой исходных.
- Проведите сводный документ, исходные пометьте на удаление.
Перед вставкой проверьте вид операции и признак «Цена включает НДС» в шапке нового документа. Строки вставляются с ценами как есть, и при другом признаке НДС суммы пересчитаются.
Загрузка из файла
Когда строк много, удобнее собрать их в одну таблицу Excel и загрузить командой загрузки в табличную часть (в БП 3.0 — кнопка Загрузить над списком товаров). Программа предложит сопоставить колонки и найдёт номенклатуру по наименованию или артикулу. Ненайденные позиции подсветит — их сопоставляют вручную.
Внешние обработки и расширения для объединения
Типовые конфигурации не умеют объединять произвольные документы, поэтому эту задачу закрывают доработками. Два варианта:
- 🧩 Внешняя обработка (.epf). Подключается без изменения конфигурации:
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Обновление базы её не ломает, пока не меняется структура документа. - 🧱 Расширение конфигурации (.cfe). Добавляет команду «Объединить» прямо в список документов. Расширения появились в платформе 8.3.6. Загрузка расширения и применение к базе — отдельные шаги, после загрузки нужен перезапуск сеанса.
Готовые обработки «объединения документов» встречаются в каталогах разработчиков. Перед запуском такой обработки в рабочей базе:
- Проверьте, под какую конфигурацию и релиз она написана.
- Откройте модуль и посмотрите, что она делает с исходными документами: помечает на удаление или удаляет сразу.
- Прогоните её на копии базы и сравните ОСВ до и после.
Обработка, которая удаляет документы напрямую, минуя пометку, не оставляет следа и не проверяет ссылки. В рабочей базе такие инструменты не запускайте.
Консоль запросов: найти документы, которые нужно объединить
Консоль запросов — внешняя обработка для опытных пользователей с правами администратора. С её помощью находят кандидатов на объединение одной выборкой, а не листанием журналов.
Пример: задвоенные поступления на расчётный счёт в БП 3.0. Запрос ищет документы с одинаковым контрагентом, суммой, днём и номером входящего документа:
ВЫБРАТЬ
Д.Контрагент КАК Контрагент,
Д.СуммаДокумента КАК Сумма,
НАЧАЛОПЕРИОДА(Д.Дата, ДЕНЬ) КАК День,
Д.НомерВходящегоДокумента КАК НомерПП,
КОЛИЧЕСТВО(Д.Ссылка) КАК Экземпляров
ИЗ
Документ.ПоступлениеНаРасчетныйСчет КАК Д
ГДЕ
НЕ Д.ПометкаУдаления
И Д.Дата МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
Д.Контрагент,
Д.СуммаДокумента,
НАЧАЛОПЕРИОДА(Д.Дата, ДЕНЬ),
Д.НомерВходящегоДокумента
ИМЕЮЩИЕ
КОЛИЧЕСТВО(Д.Ссылка) > 1
Для поиска реализаций, которые можно свести в одну, группируют по-другому: организация, контрагент, договор, день. Всё, где в группе больше одного документа, — кандидаты в сводную накладную.
Имена полей отличаются между конфигурациями. Если запрос падает с ошибкой «Поле не найдено», откройте его в конструкторе запроса и выберите поля из дерева объекта — так имя будет точным.
Консоль только показывает. Помечать найденные документы на удаление лучше вручную или через Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов, а не запросом: язык запросов 1С данные не изменяет.
Чем отличается объединение разных типов документов
Механика одна, но последствия разные. Перед объединением сверьтесь с таблицей.
| Вид документов | Что объединяют | На что смотреть |
|---|---|---|
| Реализация, поступление товаров | Строки товаров в один документ | Счета учёта в строках, НДС, счёт-фактура на исходных документах |
| Банковские документы | Не объединяют, удаляют дубль | Связанные с оплатой зачёты авансов и счета-фактуры на аванс |
| Кассовые ордера | Не объединяют: номер ордера уже в кассовой книге | Сквозную нумерацию ПКО и РКО |
| Счета-фактуры | Перевыставляют на сводную реализацию | Ст. 169 НК РФ, книга продаж, сроки выставления |
| Авансовые отчёты | Строки из нескольких отчётов одного сотрудника | Подтверждающие документы и даты расходов |
| Кадровые документы ЗУП | Существующие не объединяют | Для новых событий есть «списочные» документы, например приём на работу списком |
Главное правило для товарных документов: у исходных документов могут быть счета-фактуры. Их удаляют вместе с исходником, а на сводный документ выписывают новый. Если исходный счёт-фактура уже отражён в книге продаж закрытого квартала, объединение превращается в исправление и требует корректировки декларации — согласуйте это с бухгалтером.
Обработка на встроенном языке: сводная реализация по списку
Если объединять приходится регулярно, программист пишет внешнюю обработку. Ниже — серверная функция для БП 3.0. Она проверяет, что документы относятся к одному контрагенту и договору, копирует первый документ, собирает в него строки товаров из всех исходных и записывает результат без проведения.
&НаСервереБезКонтекста
Функция СоздатьСводнуюРеализацию(СписокДокументов)
Если СписокДокументов.Количество() < 2 Тогда
ВызватьИсключение "Выберите не меньше двух документов.";
КонецЕсли;
Первый = СписокДокументов[0];
Для Каждого Ссылка Из СписокДокументов Цикл
Если Ссылка.Контрагент <> Первый.Контрагент
Или Ссылка.ДоговорКонтрагента <> Первый.ДоговорКонтрагента
Или Ссылка.Организация <> Первый.Организация Тогда
ВызватьИсключение СтрШаблон("Документ %1 относится к другому контрагенту или договору.", Ссылка);
КонецЕсли;
КонецЦикла;
Сводный = Первый.ПолучитьОбъект().Скопировать();
Сводный.Дата = ТекущаяДатаСеанса();
Сводный.Товары.Очистить();
Сводный.Услуги.Очистить();
Для Каждого Ссылка Из СписокДокументов Цикл
Для Каждого Строка Из Ссылка.Товары Цикл
ЗаполнитьЗначенияСвойств(Сводный.Товары.Добавить(), Строка);
КонецЦикла;
Для Каждого Строка Из Ссылка.Услуги Цикл
ЗаполнитьЗначенияСвойств(Сводный.Услуги.Добавить(), Строка);
КонецЦикла;
КонецЦикла;
Сводный.Комментарий = СтрШаблон("Сводный документ из %1 реализаций",
Формат(СписокДокументов.Количество(), "ЧГ=0"));
Сводный.Записать(РежимЗаписиДокумента.Запись);
Возврат Сводный.Ссылка;
КонецФункции
На форме обработки список документов собирают в массив ссылок и передают в функцию. Что важно в этом коде:
Скопировать()переносит реквизиты шапки — склад, вид операции, признаки НДС, — но не номер: номер получит новый документ при записи.- Строки копируются целиком, со счетами учёта и суммами НДС. Одинаковые позиции не схлопываются: так проще сверить сводный документ с исходными построчно.
- Документ записывается без проведения. Бухгалтер открывает его, сверяет итог и проводит сам.
Исходные документы помечают на удаление вторым шагом, после проверки:
&НаСервереБезКонтекста
Процедура ПометитьИсходныеНаУдаление(СписокДокументов)
Для Каждого Ссылка Из СписокДокументов Цикл
Объект = Ссылка.ПолучитьОбъект();
Объект.УстановитьПометкуУдаления(Истина);
КонецЦикла;
КонецПроцедуры
Если пропустить этот шаг и провести сводный документ, движения задвоятся: товар спишется со склада и в исходных, и в сводной накладной. Пометка на удаление снимает проведение исходных документов.
Для поступлений, перемещений и других документов код тот же, меняются имена табличных частей и реквизитов. Их проверяют в конфигураторе, в дереве объекта.
Ошибки при объединении документов и что с ними делать
Частые вопросы об объединении документов
Можно ли объединить документы разных месяцев?
Сохранится ли номер одного из исходных документов?
Как отменить объединение?
Можно ли объединить документы из двух разных баз?
Как объединить счета на оплату в один?
Источники
- Федеральный закон от 06.12.2011 № 402-ФЗ «О бухгалтерском учете», ст. 9
- Налоговый кодекс РФ, ст. 169