Пользователи базовых версий программы «1С:Бухгалтерия 8.3» часто сталкиваются со следующей проблемой: после проведения синхронизации данных (например, с программой «1С:Зарплата и управление персоналом») или некорректного импорта документов в справочнике Организации внезапно появляется вторая запись. Базовая лицензия накладывает жесткое ограничение — в одной информационной базе может вестись учет только по одной организации. Как только в базе физически записывается вторая карточка юридического лица, платформа блокирует проведение документов и не позволяет штатным образом пометить лишний объект на удаление, выводя ошибку лицензионного ограничения.
В этой статье мы подробно разберем, почему возникает эта проблема, и рассмотрим несколько эффективных способов её решения — как для программистов (с написанием кода), так и для обычных пользователей (штатными инструментами «1С» без изменения конфигурации).
При обмене данными между конфигурациями (например, «1С:ЗУП» и «1С:Бухгалтерия») система сопоставляет объекты по ключевым полям. Для справочника Организации такими полями являются:
GUID).Если в базах-источниках организации создавались вручную и независимо друг от друга, их внутренние идентификаторы (GUID) гарантированно будут отличаться. Если при этом в карточках организации в разных базах допущена хотя бы малейшая разница в реквизитах (лишний пробел в названии, опечатка в КПП, дефис), алгоритм синхронизации решает, что это абсолютно другое юридическое лицо. В результате в базу-приемник записывается новый элемент справочника Организации, что моментально вызывает блокировку работы базовой версии.
Проанализируем доступные методы исправления этой ситуации.
Как справедливо заметили участники обсуждения на форуме, вносить изменения в саму конфигурацию базовой версии в Конфигураторе нельзя — она находится на поддержке без возможности редактирования. Однако мы можем написать простую внешнюю обработку и запустить её в режиме «1С:Предприятие».
Суть метода заключается в использовании специального свойства объекта — ОбменДанными.Загрузка. Если установить его в значение Истина перед записью объекта в базу данных, система отключит выполнение стандартных проверок платформы (включая проверку базовой версии на количество организаций) и позволит безболезненно установить пометку удаления.
Для реализации этого метода напишем следующий код в модуле внешней обработки:
Процедура ПометитьНаУдалениеНаСервере(ОрганизацияСсылка)
// Получаем объект из ссылки для возможности редактирования
ОрганизацияОбъект = ОрганизацияСсылка.ПолучитьОбъект();
Если ОрганизацияОбъект = Неопределено Тогда
Возврат;
КонецЕсли;
// Включаем режим загрузки данных для обхода платформенных проверок
ОрганизацияОбъект.ОбменДанными.Загрузка = Истина;
// Устанавливаем пометку удаления на объект
ОрганизацияОбъект.ПометкаУдаления = Истина;
// Записываем изменения в базу данных
ОрганизацияОбъект.Записать();
КонецПроцедуры
После выполнения данного кода лишняя организация успешно пометится на удаление. После этого мы можем перейти в раздел Администрирование — Обслуживание — Удаление помеченных объектов и полностью очистить базу от некорректной записи.
Если у вас нет навыков программирования и вы не умеете создавать внешние обработки, эту задачу можно решить штатными административными инструментами современной платформы «1С:Предприятие 8.3». Мы воспользуемся скрытым режимом разработчика в групповой обработке данных.
Разберем по шагам последовательность действий:
Система запишет изменения, успешно установив пометку удаления на дублирующую организацию в обход лицензионных ограничений. После этого её можно удалить стандартным поиском помеченных объектов.
Если лишняя организация создалась с теми же реквизитами ИНН и КПП, программа считает их полными дубликатами. В этом случае мы можем воспользоваться встроенным поиском дублей:
Бывают ситуации, когда пользователи переносят базу данных из многофирменной версии ПРОФ в Базовую версию. В этом случае в исходной базе гарантированно содержатся несколько организаций, и простой даунгрейд конфигурации до базовой заблокирует работу. Рассмотрим, как правильно разделить базу с помощью технологии РИБ (Распределенной информационной базы):
.cf) того же релиза.Чтобы избежать повторения этой неприятной ситуации, придерживайтесь двух простых правил:
Организации и вручную свяжите карточку вашей компании из одной базы с карточкой из другой. Программа запомнит эту связь на уровне внутренних идентификаторов (GUID), и новые дубликаты больше создаваться не будут.