arefaste/1C_Forums huggingface dataset:
Добрый день. насколько я знаю типовые конфигурации на БСП, то доступ настраивается на вкладке администрирования. создаем профиль, добавляем в профиль роль. затем профиль добавляем для пользователя. И если не изменяет память галочки в конфигураторе у пользователя синхронизируются с настройками в режиме предприятия. но этого не происходит. добавляю роль1 через предприятие, доступных объектов нет, вручную добавляю роль1 через конфигуратор - все норм. в чем ело? я что то сломал или теперь все не так работает? БП 3.0.52.
Спасибо заранее!
---
посмотреть можно здесь https://forum.infostart.ru/forum9/topic184090/
---
если я туплю то киньте ссылку почитать плиз!
---
кеш - !?
---
та нее)
---
посмотреть можно здесь https://forum.infostart.ru/forum9/topic184090/
---
Вообщем природа проблемы пока не решена
---
В общем не удержался,
прошел/проверил лично пошагово.
1. Взял типовую БУХгалтерию ПРОФ, 3.0.57.10 (последняя), Платформа 8.3.10.2561
2. Захожу в конфигуратор. Включаю возможность изменения с сохранением поддержки.
Добавляю тестовый справочник, добавляю тестовую роль.
У роли, для данного справочника настраиваю открытие, пометка удаления, интерактивный ввод и т.д.. короче все галки.
3. Смотрю тут же в конфигураторе, одного из пользователей. Вижу что у него по разным ролям галки стоят, но напротив моей новой - нету. (отлично, так и нужно)
4. Захожу в базу в режиме предприятия. Тут же запускаю обновление вспомогательных данных (которую в той ветке я прикреплял, новую)
5. В администрировании, добавляю новый профиль групп доступа, даю ему имя "новое право", и ставлю галку, только для одной своей единственной роли.
6. Захожу в администрирование - пользователи. Захожу в пользователя - которого смотрел в конфигураторе. Нажимаю права доступа, и добавляю ему свой новый профиль "новое право" - отметив галкой.
Нажимаю "Записать".
7. Не выходя из режима предприятия и не завершая сеанса, смотрю снова в конфигураторе этого пользователя. Галка напротив моей новой роли - появилась.

Не знаю что там уже у тебя не так. Но все должно работать. Может проблема в чем-то другом, сложно сказать.
Ты случайно не на пользователе с "Полными правами" экспериментируешь ? Просто Если выделить много стандартных профилей, то у пользователя снимаются все галки, и ставится одна - полные права. Она по идее наследуемая, и в ней во все объекты доступ есть. Надо экспериментировать на пользаке с ограниченными правами, н-р, с правом обычного бухгалтера.
---
Платформа: 1С:Предприятие 8.3 (8.3.11.2899)
Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.55.16)

Создаем расширение.

Создаем в расширении Роль: ИнвентаризацияОС.

Перемещаем в расширение требуемые объекты.

В роли расширения ИнвентаризацияОС устанавливаем права на добавленные в расширение объекты.

Заходим в режиме Предприятие под Администратором, создаём профиль ИнветаризацияОС, добавляем в профиль роль ИнвентаризацияОС, добавляем нужному пользователю профиль ИнвентаризацияОС.

Заходим под этим пользователем и видим в его интерфейсе только то, что мы ему назначили. :
Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

В обработке выбираю и получаю список нужных мне справочников Контрагентов.
Далее пробегаю по этому списку, открываю форму элементов этих справочников.
Требуется программно изменить некоторые элементы этой формы справочника Контрагентов.
Пробую так:

```1c
    Контра = ТС.Контрагент.ПолучитьОбъект();
    Форма = Контра.ПолучитьФорму("ФормаЭлемента");
    Форма.Открыть();
    Форма.ЭлементыФормы.ИНН = "1111111";
```

Выдает ошибку: Поле объекта недоступно для записи (ИНН)

Как изменить данные элемента открытой формы?

И еще. На форме элемента справочника Контрагенты имеется элемент "Входит в холдинг".
Этот элемент не имеет источника как реквизит справочника, а это есть реквизит именно формы. Именно из-за этого элемента формы и требуется программное изменение элементов открытой формы справочника. Как правильно обратится к элементы "Входит в холдинг"?
---
Не элемента, а значения. Элемент это только поле на форме отображающее значение какого-то атрибута. Необходимо менять значение атрибута. Если это атрибут формы, то ИНН = "111", если объекта, то Объект.ИНН = "111". И не забудьте записать изменения атрибутов, если это требуется.
---
1.менять реквизит объекта, не открывать форму
2. Посмотреть откуда берутся данные для реквизита формы, менять значение там
---
Контра = ТС.Контрагент.ПолучитьОбъект();
Контра.ИНН = "33333";
Контра.Записать();
---
Не элемента, а значения. Элемент это только поле на форме отображающее значение какого-то атрибута. Необходимо менять значение атрибута. Если это атрибут формы, то ИНН = "111", если объекта, то Объект.ИНН = "111". И не забудьте записать изменения атрибутов, если это требуется.
---
Можно предположить, что есть справочник или регистр сведений "Предприятия холдинга" (условно). При открытии формы контрагента проверяется наличие контрагента в этом справочнике и устанавливается реквизит формы "Входит в холдинг". Чтобы поменять у контрагента "Входит в холдинг", нужно добавить/удалить его из справочника "Предприятия холдинга".
Добрый вечер.Пытаюсь понять для чего нужен регистр ДанныеОВремениДляРасчетаСреднегоЗаработкаКорректировка?Каким образом и в каких ситуациях он заполняется?Читал код,но вопросов стало только больше?
---
Судя по запросам,это отпуска,неявки,отгулы и прочии отклонения
Нет. Как раз наоборот.
Этот регистр используется в запросе для подсчета отработанного времени в расчете среднего заработка общего

например. У сотрудника в день проходит два вида времени (ремонт и просто работа) . Т е в документе начисления получается отработано 20 дней по одному начислению и 20 дней по другому, если не дать запись в этой регистр, то в дальнейшем, при расчете среднего, у сотрудника окажется отработано 40 дней в месяце.

Если у вас нет таких таких начислений, то вам этот регистр не нужен. И запись в этот регистр делает документ "начисление зарплаты"
---
А о каком релизе идет речь ? В релизе 3.1.4.120 такого регистра сведений нет. Есть "ДанныеОВремениДляРасчетаСреднегоОбщийКорректировка" и в пояснение к этому регистру написано "Значения для корректного учета отработанных дней при наличии более одного вида рабочего времени за день".
При начислении отнимаются дни (формируется запись в этот регистр). Если этого не делать, то у сотрудника будет завышенное число отработанных дней.
---
Именно о нем и идет речь.Просто не могу понять,как его заполнить и каким документом.Судя по запросам,это отпуска,неявки,отгулы и прочии отклонения.Только пробовал их вводить вместе с зп и табеле.Не заполняет.Один раз выдал запись.Как и каким образом не понял.Я пока гоняю на 3.1.2.274.Просто,что бы отладчиком туда зайти.Нужно понять как запустить этот регистр.
---
Судя по запросам,это отпуска,неявки,отгулы и прочии отклонения
Нет. Как раз наоборот.
Этот регистр используется в запросе для подсчета отработанного времени в расчете среднего заработка общего

например. У сотрудника в день проходит два вида времени (ремонт и просто работа) . Т е в документе начисления получается отработано 20 дней по одному начислению и 20 дней по другому, если не дать запись в этой регистр, то в дальнейшем, при расчете среднего, у сотрудника окажется отработано 40 дней в месяце.

Если у вас нет таких таких начислений, то вам этот регистр не нужен. И запись в этот регистр делает документ "начисление зарплаты"
---
Теперь я все понял.Вся мозайка собралась в кучу.Я этот вариант в начале пробовал,правда с ночными.Это было до того,как читал запросы.Вид времени не тот смотрел.Спасибо,попробую смоделировать.
---
Выполняет пересчет и регистрацию данных об отработанном времени. Данные по календарю (сколько всего должно быть зарегистрировано дней в учете среднего заработка) соотносим с тем,
 // что уже накоплено в ДанныеОВремениДляРасчетаСреднегоОбщий.
 // Разницу записываем с минусом в ДанныеОВремениДляРасчетаСреднегоОбщийКорректировка.
 // Корректировку отработанных дней получаем "как есть" из учета начисленной зарплаты.
Здравствуйте. Типовая конфа ЗГУ.
Добавил регистр в к-м храню настройки.
В ЗГУ есть масса ролей: табельщик, кадровик, расчетчик, кадровик-расчетчик, аудитор и пр.

В запросе получения настроек я пишу:
ВЫБРАТЬ РАЗРЕШЕННЫЕ

Но, если пытаюсь обратиться к регистру с правами, у к-х не добавил этот регистр, то программа выдает ошибку, что нет прав на этот регистр.

Ясно, что можно добавить его в какие-нибудь базовые права (чтобы не добавлять во все нужные).

Но вопрос:
Можно ли как-то понять без ошибки, что регистр не доступен?
Т.е. я бы в коде предусмотрел, что, если бы Недоступен, тогда не выполнял бы нужного действия и все.
Но при этом, чтобы ошибка доступа не вышла?

Как это сделать?
---
Синтаксис-помощник

Глобальный контекст (Global context)
ПравоДоступа (AccessRight)
Синтаксис:

ПравоДоступа(<Право>, <ОбъектМетаданных>, <Пользователь/Роль>, <СтандартныйРеквизитСтандартнаяТабличнаяЧасть>)

```1c
    Справочник = Метаданные.Справочники.Конкуренты;
    Если Не ПравоДоступа("Чтение", Справочник) Тогда
    Предупреждение(НСтр("ru = 'Доступ к данному справочнику закрыт!';"
    + " en = 'Access denied!'"));
    КонецЕсли;
```
---
как вариант, выполнять запрос в привелигированном режиме, - тогда все будет всегда работать.
---
как вариант, выполнять запрос в привелигированном режиме, - тогда все будет всегда работать.
---
тоже разумно, учитывая, что в регистре настройки хранятся. Я бы так и сделал.
---
Синтаксис-помощник

Глобальный контекст (Global context)
ПравоДоступа (AccessRight)
Синтаксис:

ПравоДоступа(<Право>, <ОбъектМетаданных>, <Пользователь/Роль>, <СтандартныйРеквизитСтандартнаяТабличнаяЧасть>)

```1c
    Справочник = Метаданные.Справочники.Конкуренты;
    Если Не ПравоДоступа("Чтение", Справочник) Тогда
    Предупреждение(НСтр("ru = 'Доступ к данному справочнику закрыт!';"
    + " en = 'Access denied!'"));
    КонецЕсли;
```
---
, (3) Спасибо!
Работает.
Нужно чтобы при привышении суммы 1000р выводилось сообщение "Возможна бесплатная доставка", как это сделать?
Вот код:

```1c
    &НаКлиенте
    Процедура ТоварыКоличествоПриИзменении(Элемент)
    Стр=Элементы.Товары.ТекущиеДанные;
    Стр.Сумма=Стр.Количество*Стр.Цена;

    Стр=Элементы.Товары.ТекущиеДанные;
    Если
    Стр.Сумма>1000
    Тогда
    Сообщить="Возможна бесплатная доставка";
    КонецЕсли;

    КонецПроцедуры
```
---
```1c
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Возможна бесплатная доставка";
    Сообщение.Поле = "Объект.Товары["+Элементы.Товары.ТекущаяСтрока+"].сумма";
    Сообщение.Сообщить();
```
---
Сообщить("Возможна бесплатная доставка");
---
иногда нужно открывать справку и читать как писать код))
Если не умеете читать, пора научиться, сразу кучу вопросов отпадет!
---
достаточно найти в синтксис-помошнике "Сообщить" или "СообщениеПользователю"

если этот поиск вызовет затруднения, значит выбирайте другую профессию
---
```1c
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Возможна бесплатная доставка";
    Сообщение.Поле = "Объект.Товары["+Элементы.Товары.ТекущаяСтрока+"].сумма";
    Сообщение.Сообщить();
```
---
А сразу после расчета суммы нельзя ее сравнить с >1000. Зачем строку переопределять?
---
Выводи через Предупреждение ("Возможна бесплатная доставка"), вдруг по ту сторону монитора тоже не любят читать )
Добрый день, возникла ошибка "Ошибка "программа на вашем хост - компьютере разорвала установленное подключение"".

ошибка и при запуске в режиме предприятия и при открытии конфигурации в конфигураторе.

Заметил что растут рабочие процессы rphost. и растут сеансы в 1с.

В чем дело не пойму надо копать в сторону сервера, или что то в 1С косякнули.

платформа 8.3.11.2867. Никто не сталкивался?
используем расширение дополнительно
---
В чем причина так и не разобрались. ТИИ не помогло. пришлось восстанавливать базу из архива.
---
В чем причина так и не разобрались. ТИИ не помогло. пришлось восстанавливать базу из архива.
Есть такие параметры Srvr=aaa, Ref=bbb. Нужно подключиться к серверу на котором находится тестовая база чтобы объединить ее со своей рабочей. В параметрах информационной базы в поле "на данном компьютере или компьютере локальной сети" указываю каталог Srvr=aaa;Ref=bbb; пишет "информационная база не обнаружена! создать новую?"
---
Нужна ветка диалога в настройках с подключением к серверу 1С:Предприятия, а не локальным или сетевым расположением базы.
---
подойдите к серверу и положите на него руку - подключение есть
---
указываю каталог Srvr=aaa;Ref=bbb;
это точно не каталог :) это кластер и имя базы...
---
погуглите : добавление существующей базы расположенной на сервере 1С предприятия.
---
Нужна ветка диалога в настройках с подключением к серверу 1С:Предприятия, а не локальным или сетевым расположением базы.
Добрый день! В БП 3.0(ну не совсем БП 3.0, но суть та же) создал свой документ. В табличной части есть реквизиты "Счет учета" - Ссылка на план счетов и "Субконто1", "Субконто2", "Субконто3" - Характеристика "Виды субконто". К реквизитам Субконто1,2,3 указал "связь по типу" к Счету учета и пронумеровал. После выбора счета в полях субконто правильно выбираются соответствующие этому счету субконто. Но хотелось бы еще сделать и такую связь: например, у выбранного счета три субконто(Контрагент, Договор, Документы расчетов) выбираем в первом субконто Контрагента - при выборе во втором субконто был бы отбор договоров только этого контрагента, а не все подряд. Выбрали договор, в третьем субконто выбор документов расчетов с контрагентами только по этому контрагенту и договору.

Счет может быть выбран разный(любой) в этом документе и субконто соответственно тоже разные могут быть. Есть ли какой то механизм в платформе (ну может наподобие "связи по типу") чтобы отбор в следующем субконто шел по предыдущему субконто?

P.S. Смотрел типовую ручную операцию, как это реализовано там(там это работает). Там черт ногу сломит: бежим из процедуры в функцию, из нее в еще в 50 процедур, которые в свою очередь обращаются еще к разным 50 процедурам и функциям. Обратиться к тем же процедурам и функциям(которые обращаются к плану счетов Хозрасчетному и его субконто) не могу, ибо другие объекты: вообще другой план счетов(МСФО) и другие Виды субконто.

Спасибо!
---
А СвязьПараметровВыбора Отбор.Владелец(Субконто1) не работает?
---
сравни свойства реквизитов у тебя и в том документе где работает, не указал некоторые свойства
---
А СвязьПараметровВыбора Отбор.Владелец(Субконто1) не работает?
---
Спасибо большое! Работает. В типовом документе правда не так. Проверил там все свойства: они не заполнены. Там видимо программно все сделано. Но мне все равно, главное, чтоб работало))
---
Связь по владельцу у поля настройте.
Здравствуйте, как известно, формулы на языке выражений СКД можно размещать как минимум в 3 местах конструктора СКД: на закладке "Ресурсы" в формуле вычисления ресурса, на закладке "Вычисляемые поля" в поле "Выражение"и на закладке "Макеты" (если в макете используются параметры, которые надо вычислять по определенной формуле).

Имеется ввиду что-то наподобие вот такого выражения:

Сумма(Продажи.СуммаОборот) / Вычислить("Сумма(Продажи.СуммаОборот)", "ОбщийИтог")

Может кто-то внятно объяснить или дать ссылку на объяснение, в чём принципиальная разница размещения такого выражения в разных местах? Я замечал пока что часто по непонятным причинам, если разместить такое выражение в вычисляемых полях, то может не сработать. Но при этом переносишь его в поле "выражение" соответствующего ресурса на закладке "Ресурсы" и там оно работает.

Нигде никогда ни в каких Хрусталёвых не встречал внятного пояснения, может не внимательно читал :(
---
расчет идет

в вычисляемых полях - после выполнения запроса источника данных относительно детальных записей

а ресурсах - после выполнения запроса источника данных относительно группировок

в макетах - в процессе компоновки данных

в пользовательских полях - после компоновки данных(вывода группировок)

так в чем же очевидная разница?
---
расчет идет

в вычисляемых полях - после выполнения запроса источника данных относительно детальных записей

а ресурсах - после выполнения запроса источника данных относительно группировок

в макетах - в процессе компоновки данных

в пользовательских полях - после компоновки данных(вывода группировок)

так в чем же очевидная разница?
Прошу прощения за столь тупой вопрос, но есть ли в 8.2 встроенная функция, возвращающая истину, если дата пустая? (или, наоборот, если НЕ пустая)

Или так и нужно сравнивать дату с 01 января 0001 года?
---
ЗначениеЗаполнено(ТвояДата) можно так
---
ЗначениеЗаполнено(ТвояДата) можно так
---
ЗначениеЗаполнено

ОГРОМНОЕ спасибо! С Наступающим!
Имеется определяемы тип "АдресатЗапрета". Он составного типа, в нем множество ссылок на объекты.

Добавляю его в расширение. в расширении он становится произвольного типа. с пометкой контроля.

Вопрос: Что нужно делать? просто добавить в него свой тип, или указать в расширении у него все типы которые есть в основной конфигурации и добавить свой тип?
---
Если он имеет произвольный тип и нет задачи ограничивать его расширением, то ничего делать не нужно. Пускай и остается произвольным. Все ограничения подтянуться из основной конфигурации.
---
Если он имеет произвольный тип и нет задачи ограничивать его расширением, то ничего делать не нужно. Пускай и остается произвольным. Все ограничения подтянуться из основной конфигурации.
---
Изначально в основной конфе он не имеет произвольный тип
---
ну это нормально, что не имеет, пусть в расширении имеет.
---
То есть смотрите, мне нужно добавить в этот тип еще одну ссылку, я его переношу в расширение, в расширении он произвольного типа, и в расширении помимо произвольного добавляю свою ссылку?
---
Не Добавляй, он выставляет произвольный тип, так как не все типы добавлены в расширение, но произвольный тип говорит о том, что можно добавить любой тип данных.
---
Ну да, Понял, то есть если предварительно эти типы поместить в расширение, то они встанут. спасибо!
Здравствуйте!
Подскажите пожалуйста решение следующей проблемы. У меня есть выгрузка БД, я создаю пустую базу без конфы, в нее выгружаю вышеуказанную БД, все отлично, но не работает расширение, потому что "Режим совместимости не совпадает с основной конфой". Захожу в свойства основной конфы дабы этот режим подредактировать и нахожу, что он стоит в значении "Не использовать" и РЕДАКТИРОВАТЬ ЭТО НЕВОЗМОЖНО. Как и все остальные свойства конфы. В чем тут дело?
---
На поддержке же стоит, можешь в своем расширении, снять контроль режима совместимости, или изменить версию режима совместимости в неиспользовать.
---
На поддержке же стоит, можешь в своем расширении, снять контроль режима совместимости, или изменить версию режима совместимости в неиспользовать.
---
тогда это расширение нескольких объектов не видит
---
а, ну этих объектов и нет в конфе. Ее обновили, так что расширение не соответствует... А на режим совместимости не ругается, да. Спасибо всем.
---
(8)

Да, обновили, надо крыжить расширение, менять его. погуглите про это "Обновили конфу, как обновить расширение", на ИТС про это есть информация
---
Типовую БП не стоит снимать с поддержки и менять режим совместимости, это будет крах, вылезут неизвестные проблемы, плюс потом не обновиться. меняйте расширение, его можете крутить как хотите.
---
Конфигурация типовая? Какая версия?
---
Типовая БП 3.0
---
В расширении измени режим совместимости. (4)
Я слушаю gps трекер через tcp порт, и мне нужно отправить ему в ответ 01 в виде двоичного пакета.

```1c
    WinSocket.SendData("01") ; // естественно не работает
```

К примеру в js это можно реализовать так:

```1c
    var buf = new Buffer(1) ;
    buf.writeUInt8(0x01,0) ;
    socket.write(buf) ;
```

Подскажите пожалуйста, как правильно это сделать в 1с?
---
мне нужно отправить ему в ответ 01 в виде двоичного пакета Ничего не понимаю в WinSocket, но с точки зрения строковых функций надо пробовать так:

```1c
    WinSocket.SendData(Символ(1));
```

Способ универсальный, только с посылкой 0x00 будут проблемы.
---
мне нужно отправить ему в ответ 01 в виде двоичного пакета Ничего не понимаю в WinSocket, но с точки зрения строковых функций надо пробовать так:

```1c
    WinSocket.SendData(Символ(1));
```

Способ универсальный, только с посылкой 0x00 будут проблемы.
---
var buf = new Buffer(1) ;
buf.writeUInt8(0x01,0) ;

судя по коду это не JS, а nodeJS :)

кстати конструктор для буфера депрекейтед и рекомендуется юзать фабричный методы, например Buffer.from(array) и др.

на 1С это можно реализовать так (если версия платформы позволяет):

```1c
    Поток = Новый ПотокВПамяти();
    Запись = Новый ЗаписьДанных(Поток);
    Запись.ЗаписатьБайт(1);
    Запись.ЗаписатьБайт(2);
    Запись.ЗаписатьБайт(3);
    ДД = Поток.ЗакрытьИПолучитьДвоичныеДанные();
```

аналогичный код ноды

```1c
    const buf1 = Buffer.from([0x1, 0x2, 0x3]);
    console.log(buf1);
```
---
Запись.ЗаписатьБайт(1); да, действительно 1с может вернуть двоичные данные, но мне нужно передать истину в виде двоичного пакета

Так как здесь на примере получается получить 01 в двоичных данных, но как это поместить в пакет?

```1c
    Поток = Новый ПотокВПамяти();
    Запись = Новый ЗаписьДанных(Поток);
    Запись.ЗаписатьБайт(1);
    ДД = Поток.ЗакрытьИПолучитьДвоичныеДанные();
```
---
мне нужно передать истину в виде двоичного пакета Что значит "двоичный пакет" в вашем понимании? Весь TCP-пакет вместе с заголовком? Или передаваемые данные? Какую длину (в битах или байтах) должен иметь этот "двоичный пакет"?

Имейте в виду: в WinSocket.SendData передаются только данные, а заголовок будет создан автоматически.

Примеры: https://infostart.ru/public/165023/ https://infostart.ru/public/119982/

Как видим, везде в WinSocket.SendData передается символьная строка, если в вашем случае эта строка состоит из всего одного байта с кодом 0x01 (двоичное представление: 00000001), то в 1С ее можно получить функцией Символ(1), как это и предлагалось в (2).

Вы опробовали этот способ?
---
Символ(1)
Да действительно получилось.
Всем спасибо!
---
Да действительно получилось. Только на всякий случай учтите на будущее: передать этим способом 0х00 не получится: 1С воспринимает символ с нулевым кодом как признак конца строки, так что аргументом у WinSocket.SendData() окажется вообще пустая строка.
---
Спасибо.
---
Видимо так:

ДанныеДляОтправления = Base64Значение("01");
WinSocket.SendData(ДанныеДляОтправления) ;
---
https://infostart.ru/public/252365/
---
В справке есть раздел (1С 8.3.10)
Процедуры и функции работы с двоичными данными
Уважаемое сообщество, возник такой вопрос:
Была получена на баланс информационная база, где часть информации, касающийся своего бизнеса предыдущий владелец удалил. Удалил он его таким образом что просто удалил записи в справочниках подразделения и организации и документов, записи же всей его деятельности во всех регистрах остались.

 Его бизнес не представляет никому никакого интереса, а вот сотни тысяч записей с потерянными ссылками в рабочей базе представляют огромную проблему. Тестирование и исправление идет уже пол недели и особо окончания процесса не видно.

Есть ли соображения по поводу каким образом вручную почистить регистры накопления, расчета, сведений от записей с несуществующими ссылками?
---
Выполнить запрос
выбрать Регистратор из РегистрНакопления.МойРегистр
где Регистратор.Ссылка ЕСТЬ NULL

И потом по выборке набором записей
набор.Отбор.Регистратор.Установить(выборка.Регистратор);
набор.Записать(Истина);

Аналогично для неподчинённых РС, только с отбором по ключевым полям.
---
Выполнить запрос
выбрать Регистратор из РегистрНакопления.МойРегистр
где Регистратор.Ссылка ЕСТЬ NULL

И потом по выборке набором записей
набор.Отбор.Регистратор.Установить(выборка.Регистратор);
набор.Записать(Истина);

Аналогично для неподчинённых РС, только с отбором по ключевым полям.
---
Смотри мою публикацию поиск и замена битых ссылок.
---
а для чего вообще нужна даза с кучей кривой инфы, не проше выгрузить файл конфигурации и своять на базе него новую чистую базу?
Если в данной Информационной базе нет болше других организаций то я бы так и сделал
---
В этой базе несколько лет велся учет, в которой лежали миллионы записей с удаленными ссылками. Т.е. здесь или перенести данные в новую базу, но ресурса на проверку переноса нет, или выпилить битые данные из реальной базы