При работе в 1С:Комплексная автоматизация 2.4 или 1С:ERP пользователи часто сталкиваются с ситуацией, когда при процедуре закрытия месяца программа выдает сообщение: «Список организаций, выбранных для расчета, дополнен связанными организациями». Система принудительно объединяет несколько юридических лиц в группу, не позволяя выполнить расчет по отдельной организации. Это происходит даже в тех случаях, когда функционал «Передачи товаров между организациями» (Интеркампани) официально отключен в настройках. Давайте подробно разберем причины такого поведения системы и способы локализации ошибки.
Основная причина кроется в архитектуре решения. Для системы 1С:ERP и КА организации считаются связанными, если между ними обнаружено хотя бы одно хозяйственное взаимодействие, которое влияет на расчет себестоимости или финансового результата. Даже если вы не используете схему «Интеркампани», любая техническая ошибка в документе, при которой «встретились» две организации, создает неразрывную связь для алгоритмов расчета.
Проанализируем основные сценарии возникновения проблемы:
Ключи аналитики учета номенклатуры, которые жестко привязаны к исходной компании.Прежде чем переходить к сложным запросам, рассмотрим самый простой способ диагностики. Часто проблема вызвана технической ошибкой в регистре Товары организаций.
Перейдем в раздел Финансовый результат и контроллинг — Сервис — Помощник исправления отрицательных остатков организаций. Проанализируем сформированный отчет. Если в нем обнаружены документы, которые делают приход по одной организации, а расход по другой (например, при виде операции «Закупка по регл учету»), их необходимо исправить. После перепроведения таких документов связь между организациями может исчезнуть автоматически. Для автоматизации этой задачи можно воспользоваться обработкой для исправления отрицательных остатков товаров организаций.
Если помощник не выявил проблему, нам необходимо найти записи в регистре накопления СебестоимостьТоваров, где измерение Организация не совпадает с реквизитом КорОрганизация. Это классический индикатор «скрытого интеркампани».
Воспользуемся консолью запросов и выполним следующий код, чтобы найти документы-виновники:
ВЫБРАТЬ РАЗЛИЧНЫЕ
СебестоимостьТоваров.Организация КАК Организация,
СебестоимостьТоваров.КорОрганизация КАК КорОрганизация,
СебестоимостьТоваров.Регистратор КАК Регистратор
ИЗ
РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров
ГДЕ
СебестоимостьТоваров.Период МЕЖДУ &НачалоПериода И &КонецПериода
И СебестоимостьТоваров.Организация <> СебестоимостьТоваров.КорОрганизация
И СебестоимостьТоваров.КорОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
И СебестоимостьТоваров.Активность = ИСТИНА
Разберем, что мы ищем этим запросом. Мы выбираем все записи, где заполнена корреспондирующая организация, и она отлична от основной организации документа. Если запрос выдает строки — каждый найденный Регистратор нужно открыть, проверить его заполнение (особенно статьи расходов и аналитики) и перепровести.
В типовых конфигурациях существует функция, которая определяет все связи организаций. Мы можем использовать ее логику для максимально глубокой проверки. Рассмотрим расширенный запрос, который имитирует работу встроенной функции ВсеСвязиОрганизацийПоСхемеИнтеркампани из общего модуля РасчетСебестоимостиПрикладныеАлгоритмы.
ВЫБРАТЬ РАЗЛИЧНЫЕ
Организации.Организация КАК Организация,
Организации.КорОрганизация КАК КорОрганизация
ПОМЕСТИТЬ ВТОрганизации
ИЗ (
ВЫБРАТЬ РАЗЛИЧНЫЕ
СебестоимостьТоваров.Организация,
СебестоимостьТоваров.КорОрганизация
ИЗ
РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров
ГДЕ
СебестоимостьТоваров.Период МЕЖДУ &НачалоПериода И &КонецПериода
И СебестоимостьТоваров.КорОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
И СебестоимостьТоваров.Активность
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ РАЗЛИЧНЫЕ
КПередаче.ОрганизацияВладелец,
КПередаче.ВидЗапасовПродавца.Организация
ИЗ
РегистрНакопления.ТоварыОрганизацийКПередаче.Остатки(&КонецПериода) КАК КПередаче
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ РАЗЛИЧНЫЕ
Резервы.Организация,
Резервы.КорОрганизация
ИЗ
РегистрНакопления.РезервыТоваровОрганизаций КАК Резервы
ГДЕ
Резервы.Период МЕЖДУ &НачалоПериода И &КонецПериода
И Резервы.Организация <> Резервы.КорОрганизация
) КАК Организации
ГДЕ
Организации.Организация <> Организации.КорОрганизация
И Организации.Организация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
И Организации.КорОрганизация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
Этот запрос анализирует не только себестоимость, но и резервы товаров, а также остатки к передаче между организациями. Если в результате выполнения вы видите пары организаций, значит, в системе есть движения, связывающие их. Добавьте поле Регистратор в каждое объединение запроса, чтобы увидеть конкретные документы. Для автоматизированного поиска таких связей и первичных документов можно использовать отчет для выявления причин интеркампани по документам-основаниям.
Проанализируем ситуации, которые встречаются реже, но также могут блокировать раздельное закрытие:
ВидЗапасов или в скрытых реквизитах остался ключ от другой организации, визуально в документе всё будет верно, но в регистре Товары организаций запись пройдет по чужому ключу. Рекомендуется использовать типовую обработку «Исправление дублей и поиск ошибок в ключах аналитики».Чтобы избежать подобных ситуаций в будущем, рекомендуем придерживаться следующих правил:
Выполнив указанные шаги по поиску и исправлению документов, вы сможете разорвать некорректную связь между организациями и успешно завершить закрытие месяца по каждой из них в отдельности.