Здравствуйте, такой вопрос, в регистре сведений "Место позиции штатного расписания в структуре предприятия" нужно программно (Через обработку) менять подразделение на точно такое же но с другим владельцем (которого выбрал пользователь из уже существующих)
Грубо говоря пользователь выбрал владельца Б в обработке и в регистре в подразделении вместо подразделения 1 с владельцем А, значение изменилось на подразделение 1 с владельцем Б

Все эти значения находятся в одном справочнике из которых и попадают в регистр.
---
Для истории и для тех кто задастся подобным вопросом добавляю обработку с полностью рабочим вариантом для моих регистров и справочников. Так что можете посмотреть код и поменять на свои значения)
P.S. Код ужасный но рабочий, к сожалению моих знаний пока не хватает для оптимизации)
---
Вопрос в чем?
---
Как это правильно реализовать)
---
думаю, по постановке задачи необходимо добавить владельца С, ну в крайнем случае включить телепатию
---
Извините, никогда не умел правильно и понятно описать вопрос в тексте)
---
Попробовал:

```1c
    Запрос=Новый запрос;
    Запрос.Текст= "ВЫБРАТЬ
    | МестоПозицииШтатногоРасписанияВСтруктуреПредприятия.Подразделение.Родитель,
    | МестоПозицииШтатногоРасписанияВСтруктуреПредприятия.Подразделение,
    | СтруктураПредприятия.Ссылка
    |ИЗ
    | РегистрСведений.МестоПозицииШтатногоРасписанияВСтруктуреПредприятия КАК МестоПозицииШтатногоРасписанияВСтруктуреПредприятия,
    | Справочник.СтруктураПредприятия КАК СтруктураПредприятия
    |ГДЕ
    | МестоПозицииШтатногоРасписанияВСтруктуреПредприятия.Подразделение <> &Родитель
    | И МестоПозицииШтатногоРасписанияВСтруктуреПредприятия.Подразделение.Источник <> &Источник";
    Запрос.УстановитьПараметр("Родитель",Объект.Выбор);
    Запрос.УстановитьПараметр("Источник",Объект.Выбор);
    Выборка=Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    ТекущаяЗапись=РегистрыСведений.МестоПозицииШтатногоРасписанияВСтруктуреПредприятия.СоздатьМенеджерЗаписи();
    ТекущаяЗапись.Подразделение.Владелец=Объект.Выбор

    КонецЕсли;
    Попытка
    ТекущаяЗапись.Записать();
    Исключение
    КонецПопытки;
```

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

```1c
    НаборЗаписей = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей();
    НаборЗаписей.Прочитать();

    Для Каждого Запись Из НаборЗаписей Цикл
    Запись.НужноеПоле = НужноеЗначение;
    НаборЗаписей.Записать(Истина);
    КонецЦикла;
```
---
https://infostart.ru/public/158512/
Видимо надо с помощью транзитивного замыкания найти по наименованию похожее подразделение, которое находится в иерархии другого подразделения которое мы выберем на форме. Получить табличку со всеми предками и т.д. а дальше искать по наименованию в полученной отобранной таблице
---
простите за такой тупой вопрос/уточнение
допустим владельцу Б назначили ТРИ (или более) подразделений (ведь на то он и владелец)
и при выборе владельца Б (вместо владельца А) какое из этих НЕСКОЛЬКИХ подразделений вы автоматически хотите вставить/заменить?
---
Выбрали владельца А и все данные у которых другие владельцы сменили владельцев первого уровня на владельца А
---
Для истории и для тех кто задастся подобным вопросом добавляю обработку с полностью рабочим вариантом для моих регистров и справочников. Так что можете посмотреть код и поменять на свои значения)
P.S. Код ужасный но рабочий, к сожалению моих знаний пока не хватает для оптимизации)