Как убрать лишнего контрагента из базы 1С без потери истории
Содержание
Напрямую удалить клиента
из 1С 8.3 нельзя: сначала контрагента помечают на удаление, а потом запускают обработку Администрирование → Обслуживание → Удаление помеченных объектов. Она проверяет, нет ли на клиента ссылок в документах. Если ссылок нет — запись исчезает из базы. Если есть — программа выведет список документов, и удаление не пройдёт, пока вы с этими ссылками не разберётесь.
Отсюда три сценария. Клиент заведён по ошибке и нигде не использован — помечаете и удаляете за минуту. Клиент оказался дублем — переносите историю на основного контрагента через слияние, а дубль удаляете. Клиент участвовал в реальных сделках, но больше не нужен — его не удаляют, а убирают из активного списка, потому что документы по нему придётся хранить ещё несколько лет.
Ниже — как это сделать в типовых конфигурациях на платформе 8.3 с интерфейсом «Такси»: Бухгалтерии 3.0, ЗУП 3.1, Управлении торговлей 11 и ERP.
Почему клиента нельзя стереть одним нажатием
В 1С действует контроль ссылочной целостности. Контрагент — это элемент справочника, на который ссылаются документы, договоры, счета, движения по регистрам. Если бы запись можно было удалить мгновенно, все эти ссылки «повисли» бы в пустоту, и база начала бы выдавать ошибки при открытии старых документов.
Поэтому удаление разбито на два шага:
- 🔸 Пометка на удаление — вы помечаете запись как кандидата на удаление. Она остаётся в базе, перечёркнутая значком, и продолжает работать.
- 🔸 Удаление помеченных объектов — отдельная процедура, которая проверяет ссылки и физически убирает запись, если удалять её безопасно.
Пометку можно снять в любой момент — до запуска второго шага ничего не теряется. Это защита от случайного удаления нужного клиента.
В Управлении торговлей и ERP «клиент» — это не одна запись, а связка: партнёр (кого вы обслуживаете) и контрагент (юрлицо или ИП, с кем оформляете документы). У одного партнёра может быть несколько контрагентов. Чтобы убрать клиента полностью, пометьте и партнёра, и привязанных к нему контрагентов.
Помечаем клиента на удаление и очищаем базу
Стандартный путь работает в любой типовой конфигурации. Разберём по шагам.
- Откройте список контрагентов. В Бухгалтерии 3.0 это
Справочники → Контрагенты, в УТ 11 и ERP — раздел с партнёрами и контрагентами (CRM и маркетингилиПродажи). - Найдите нужного клиента. Выделите строку.
- Нажмите клавишу
Deleteлибо командуЕщё → Пометить на удалениев командной панели списка. Запись перечеркнётся. - Перейдите в обработку удаления:
Администрирование → Обслуживание → Удаление помеченных объектов. - Выберите режим.
Автоматически удалить все помеченныеуберёт сразу всё помеченное в базе.Выборочно— покажет список, где можно оставить галочки только на нужных контрагентах. - Нажмите
Удалить. Программа проверит ссылки и либо удалит клиента, либо покажет, что мешает.
В УТ 11 и ERP раздел обслуживания находится в НСИ и администрирование; в вашей версии название подраздела может немного отличаться, но обработка удаления помеченных объектов есть во всех типовых.
Чтобы не искать помеченных клиентов глазами, настройте в списке контрагентов отбор по признаку пометки удаления: тогда перед очисткой вы увидите ровно те записи, которые собираетесь убрать. Это особенно удобно, когда пометки ставили в разное время и забыли, что именно помечено. Перечёркнутый значок слева от строки — и есть пометка на удаление; снять её можно той же клавишей Delete.
Запускайте удаление помеченных объектов, когда в базе нет других пользователей или их немного. Обработка читает ссылки по всем документам и на большой базе заметно нагружает сервер.
Если ссылок на клиента нет, на этом всё — запись удалена. Если программа вывела список документов, читайте следующий раздел.
Что делать, если на клиента есть ссылки в документах
Это самая частая ситуация. Программа пишет что-то вроде Удаление невозможно, так как на объект есть ссылки, и показывает список: накладные, счета, договоры, платёжки. Пока хотя бы одна ссылка жива, клиент не удалится.
Варианты действий зависят от того, что это за ссылки.
Чтобы посмотреть, где именно используется контрагент, не обязательно запускать удаление. В карточке клиента или в списке есть команда Ещё → Отчёт по объекту (в разных конфигурациях — «Связанные документы» или аналог). Она покажет все ссылки на запись. По этому списку сразу видно, можно удалять клиента или нет.
Слияние дублей: переносим историю на нужного контрагента
Если один и тот же клиент заведён дважды (например, с разным написанием ИНН или названия), удалять дубль «в лоб» нельзя — на него уже навешаны документы. Сначала надо перенести все ссылки на основную запись, и только потом удалить освободившийся дубль.
Для этого в типовых конфигурациях есть обработка Поиск и удаление дублей. Открывается из списка контрагентов командой Ещё → Поиск и удаление дублей либо из раздела обслуживания администрирования.
Порядок работы:
- В поле
Искать ввыберите справочникКонтрагенты. - Задайте правило сравнения — обычно по наименованию или ИНН.
- Нажмите
Найти дубли. Программа соберёт группы похожих записей. - В каждой группе отметьте, какая запись — главная (её 1С оставит), остальные станут дублями.
- Нажмите
Удалить дубли. Программа перенесёт все ссылки с дублей на главную запись и пометит дубли на удаление. - Завершите очистку обработкой удаления помеченных объектов.
Главное преимущество: вся история (документы, взаиморасчёты, движения) остаётся — она просто переподчиняется основному контрагенту. Ничего не теряется.
Есть и более мощный инструмент — внешняя обработка Поиск и замена значений (ПоискИЗаменаЗначений). Её применяют специалисты, когда нужно заменить ссылки на один объект ссылками на другой по всей базе, а не только в рамках поиска дублей. Открывается через Файл → Открыть в режиме «Предприятие»; для этого в правах должно быть разрешено интерактивное открытие внешних обработок. Это ручной инструмент для сложных случаев — на рядовой задаче хватает штатного Поиска и удаления дублей.
Перед слиянием дублей сделайте резервную копию базы. Перенос ссылок затрагивает проведённые документы, и откатить его штатно нельзя — только восстановлением из копии.
Почему удалять клиента напрямую через SQL нельзя
Иногда советуют «просто удалить строку в таблице MS SQL или PostgreSQL». Делать так нельзя ни на рабочей базе, ни на копии, которую вы потом вернёте в работу.
Причин несколько:
- 🔸 Структура таблиц не документирована. 1С не гарантирует, что имена таблиц и полей сохранятся между релизами, и не публикует их как часть поддерживаемого интерфейса. То, что сработало вчера, завтра может лежать в другой таблице.
- 🔸 Рушится ссылочная целостность. Прямой
DELETEубирает запись из одной таблицы, но ссылки на неё в документах и регистрах остаются. База начнёт выдавать «битые ссылки». - 🔸 Разъезжаются итоги и регистры. Суммы по счетам, остатки, взаиморасчёты пересчитываются механизмами платформы. SQL их не трогает — цифры в отчётах перестанут сходиться.
- 🔸 Теряется поддержка. После ручного вмешательства в СУБД вендор и франчайзи вправе отказать в разборе проблем с базой.
У платформы есть собственный механизм — пометка и удаление помеченных объектов с контролем ссылок. Он делает ровно то, что нужно, и безопасно. Прямой SQL не решает ни одной задачи лучше, зато гарантированно создаёт новые.
Массовое удаление клиентов: как пометить много записей сразу
Когда накопились десятки тестовых или устаревших контрагентов, помечать их по одному долго. Есть способы быстрее.
Выделение группой. В списке контрагентов зажмите Ctrl и кликайте нужные строки по отдельности либо Shift — чтобы выделить диапазон. Затем Ещё → Пометить на удаление пометит все выделенные записи разом. После этого — обработка удаления помеченных.
Пометка по условию. Если нужно убрать клиентов по признаку (например, всех из определённой группы справочника), удобнее сначала отфильтровать список по этому признаку, выделить всё (Ctrl+A) и пометить одной командой.
Групповая обработка. Для сложных выборок — например, «все контрагенты без оборотов за три года» — специалист применяет групповую обработку справочников или отдельную обработку по заданному отбору. Это уже работа под конкретную задачу, и запускать её лучше на копии базы.
После любой массовой пометки обязательно откройте обработку удаления в режиме Выборочно и просмотрите список. Так вы увидите, какие записи удалятся свободно, а какие держат ссылки, и не снесёте случайно нужного клиента.
Перед массовым удалением сделайте резервную копию. На большом объёме проще восстановить базу целиком, чем вручную возвращать десятки записей.
Удаление клиента в облачной 1С (1С:Fresh)
В облаке 1cfresh.com нет доступа к конфигуратору и к серверу СУБД. Поэтому SQL, внешние обработки и прямое вмешательство в базу недоступны в принципе. Но штатное удаление работает полностью.
Что доступно в облаке:
- ✅ Пометка контрагента на удаление клавишей
Deleteили черезЕщё. - ✅ Обработка
Администрирование → Обслуживание → Удаление помеченных объектов. - ✅ Поиск и удаление дублей — если он включён в вашу конфигурацию.
Чего в облаке нет:
- ❌ Запуска произвольных внешних обработок вроде
Поиска и замены значений— открытие внешних файлов обработок в сервисе по умолчанию закрыто. - ❌ Доступа к таблицам базы данных.
Для удаления помеченных объектов нужны права администратора в приложении. Если у вашего пользователя их нет, обратитесь к администратору вашей организации в сервисе.
Когда клиента лучше не удалять, а архивировать
Это ключевой момент, о котором часто забывают. Контрагента, по которому были реальные сделки, удалять нельзя, даже если ссылки технически позволяют. Документы по нему — часть учёта, и их нужно хранить.
По закону данные бухгалтерского и налогового учёта хранят не меньше пяти лет: это НК РФ (ст. 23) и Федеральный закон № 402-ФЗ «О бухгалтерском учёте» (ст. 29). Удалив контрагента вместе с первичкой, вы нарушите требования к хранению и потеряете историю расчётов, которая пригодится при сверке или проверке.
Поэтому вместо удаления клиента «на пенсии» убирают из активной работы:
- 📁 Отдельная группа. Создайте в справочнике контрагентов группу вроде «Архив» или «Не работаем» и перенесите туда неактивных клиентов. В быстром выборе при вводе документов они мешать перестанут.
- 📁 Отбор в списке. Настройте в списке контрагентов отбор по группе, чтобы по умолчанию видеть только действующих.
- 📁 Свёртка базы. Если цель — разгрузить базу от старых документов целиком, это делают не удалением контрагентов, а свёрткой: специалист формирует остатки на дату и убирает движения за закрытые периоды. После свёртки часть контрагентов освобождается от ссылок, и их уже можно удалить штатно. Процедуру всегда выполняют на копии с предварительным бэкапом.
Удаление оправдано только для «мусора»: тестовых записей, опечаток, дублей и клиентов, которые так и не дошли до первой сделки.
Частые вопросы
Куда денутся документы, если удалить клиента?
Можно ли вернуть удалённого контрагента?
Почему пометка стоит, а при удалении контрагент не исчезает?
Ещё → Отчёт по объекту (или «Связанные документы») — программа покажет, какие документы держат запись.Чем «Поиск и удаление дублей» отличается от обычного удаления?
Удалится ли клиент, если он использован только в закрытом периоде?
Источники
- Налоговый кодекс РФ, ст. 23, п. 1, пп. 8 — срок хранения данных учёта и документов
- Федеральный закон от 06.12.2011 № 402-ФЗ «О бухгалтерском учёте», ст. 29 — хранение документов