Строки в регистре создаются не сами, а через другие объекты документы или обработки. Причем две полностью одинаковые строки по принципу работы регистров не могут быть созданы с одинаковыми измерениями. Но в УПП измерения километровые, если например одно из измерений это ссылка на разные документы. Каким образом понять в чем отличие в двойных строках (измерениях) и какую из них нужно удалить. И можно ли удалять? Как определить какая из них рабочая, какая нет? Разработка ведется разными программистами и в разное время и понять причинно следственную связь бывает трудно. Как можно поступить в данной ситуации более универсально? Пометить на удаление каждую попеременно и посмотреть какая из них будет работать или так может не получиться в рабочей базе? Как бы не порушить что нибудь? Или просить у администратора развернуть архив и на копии проверить/потыкать?
---
Пробовать все на копии, обязательно. Если в РС записи делает документ, то трогать эти записи нельзя. Есть служебные РС в них можно менять/удалять записи обдумано. Записи в РС нельзя пометить на удаление они сразу удаляются.
---
Вот нашелся добрый человек и написал код, как изменить запись в регистре и удалить, это я.

```1c
    Процедура МенеджерЗаписиВРегистрНажатие(Элемент)

    НаборПлан=РегистрыСведений.Поооооооооооооо.СоздатьНаборЗаписей();
    НаборПлан.Отбор.Заооооооооо.Установить(Зооооооооо);
    Если ЗначениеЗаполнено(Маоооо) Тогда
    НаборПлан.Отбор.Мооооо.Установить(Мооооо);
    КонецЕсли;

    Если Ноооооо>0 Тогда
    НаборПлан.Отбор.НомерВОчереди.Установить(Нооооооо);
    КонецЕсли;
    НаборПлан.Прочитать();

    Для каждого ЗаписьНабора Из НаборПлан Цикл

    Запись=РегистрыСведений.Поооооооооооо.СоздатьМенеджерЗаписи();
    ЗаполнитьЗначенияСвойств(Запись,ЗаписьНабора);
    Если СнятьАктивность Тогда
    Запись.Активность=Ложь;
    КонецЕсли;
    Если Нооооооо>0 Тогда
    Запись.Ноооооооооо=Ноооооо;
    КонецЕсли;
    Запись.Записать();

    КонецЦикла;
    НаборПлан.Очистить();
    НаборПлан.Записать();

    КонецПроцедуры
```

код рабочий, проверено.
---
Пробовать все на копии, обязательно. Если в РС записи делает документ, то трогать эти записи нельзя. Есть служебные РС в них можно менять/удалять записи обдумано. Записи в РС нельзя пометить на удаление они сразу удаляются.
---
Спасибо Рустам за помощь! Да пометить на удаление нельзя, но можно сделать не активными, это в ручную можно сделать? Регистр заполняется из обработки планирования, видимо попали разные измерения. У двух одинаковых строк могут быть разные ключи записи? (правда не очень пока понимаю, что такое ключи записи регистров)
---
измерения километровые - это в каком смысле???
---
Смотрю иногда курсы Павла Белоусова по платформе, там говорится, что измерение бывает одно например номенклатура и период (регистратор) и для детализации возможно еще какое-то измерение, а тут в регистрах в упп порядка 10 измерений, причем регистратор например ЗаказНаПроизводство, у которого своих[ реквизитов около 30 и ТЧ около 5. Ресурсов тоже около 5 и более и еще реквизитов более 30. Как в таком случае определить в чем отличие в двух "одинаковых" строках регистра, которые "задвоились", они же не могут задвоиться по определению.
---
Если в регистре сведений задвоились строки
Но в УПП измерения километровые, если например одно из измерений это ссылка на разные документы.так они задвоились или нет?
Каким образом понять в чем отличие в двойных строках (измерениях)Напишите обработку по сравнению строк, если вручную затрудняетесь.
А что вообще не устраивает? РС типовой? Пишут типовые документы? Тогда не делайте ничего, если проблем нет.
---
Первое - привести в порядок мысли и получить ответ хотя бы на один из поставленных вопросов.

Пока ваши задачи похожи на взбесившиеся приборы самолета, который попал в аномальную зону.
Я предлагаю делегировать миссию решения ваших задач Рен-Тв. Пишите туда.
---
Плохое решение, не конструктивное, не годится
---
Вряд ли Вам кто-то ответит на эти вопросы. Но если пишут несколько программистов, возможно есть какое-то техническое задание, где написано, что документы должны делать движения по этому регистру. Наверняка это техническое задание писал аналитик, у него и спросить, верно ли делаются движения. Если не верно, то понять какой документ делает не верно движение и кто писал этот код, и попросить исправить код и перепровести документы по этому регистру.
А вообще в коде желательно всегда писать комментарии, зачем этот код написан, кем этот код написан и когда.
---
закирпичить и поставить пароль чтобы не было стыдно!
---
в том то и дело не кого спросить, кто в командировке, кто в отпуске, вот решил к специалистам обратиться.
И кстати мне на вопрос уже ответили во (2) ответе, возможно пока этого достаточно для решения задачи.
---
Может можно как-то снять Активность в одной строке регистра? (если например допустить, что одна строка лишняя)
---
Или лучше все изменения в регистре делать менеджером регистра например из внешней обработки, нашел вот такой пример кода.

```1c
    //Выберем всех регистраторов регистра
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
    | УчетНоменклатуры.Регистратор
    |ИЗ
    | РегистрНакопления.УчетНоменклатуры КАК УчетНоменклатуры";
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    //Обойдем регистраторов
    Пока Выборка.Следующий() Цикл
    Сообщить("Изменение записей по регистратору: " + Выборка.Регистратор);
    //Для каждого регистратора выполним изменение набора записей
    НаборЗаписей = РегистрыНакопления.УчетНоменклатуры.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Значение = Выборка.Регистратор;
    НаборЗаписей.Прочитать();
    Для каждого Запись Из НаборЗаписей Цикл
    Запись.Реквизит1 = "Тест";
    КонецЦикла;
    НаборЗаписей.Записать();
    КонецЦикла;
```

Для регистра сведений эта методика/способ тоже подойдет?

Мне в набор наверно нужно будет добавить еще одну строку

```1c
    НаборЗаписей.Отбор.Активный = Истина;
```
---
Или лучше все изменения в регистре делать менеджером регистраКакие "все изменения регистра"?
Вы удалить программно можете только через Менеджер, и никак более.
---
ну да наверно лучше менеджером, хотя вот пример с сайта 1С можно без всякого менеджера видимо

```1c
    ...
    НаборЗаписей = РегистрыНакопления.УчетНоменклатуры.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Значение = Выборка.Регистратор;
    НаборЗаписей.Прочитать();
    Для каждого Запись Из НаборЗаписей Цикл
    Запись.Реквизит1 = "Тест";
    КонецЦикла;
    НаборЗаписей.Записать();
    ...
```
---
хотя вот пример с сайта 1С можно без всякого менеджера видимоВ смысле, без менеджера?! А кто тут, по-вашему, менеджер тогда? Или где он тут отсутствует?
---
А кто тут, по-вашему, менеджер тогда?
вот это менеджер

```1c
    ...
    Запись=РегистрыСведений.Поооооооооооооооо.СоздатьМенеджерЗаписи();
    ЗаполнитьЗначенияСвойств(Запись,ЗаписьНабора);
    Если СнятьАктивность Тогда
    Запись.Активность=Ложь;
    КонецЕсли;
    Если НомерВОчередиДляЗамены>0 Тогда
    Запись.Номер=НомерЗамены;
    КонецЕсли;
    Запись.Записать();
    ...
```

уже часть обработки написал по замене все работает, осталось еще дописать по удалению через менеджер тоже, так надежнее
---
вот это менеджер Ну, поздравляю вас, вы познакомились с 1С-тупизмом в терминологии.
"СоздатьМенеджерЗаписи()" - изменяет ОДНУ, и только одну запись. И то в независимых РС.
"СоздатьНаборЗаписей()" - тот же менеджер, только для набора из более чем одной записи. И применяется везде, где более одной записи. А также - строго во всех подчиненных РС, без разницы сколько в нем записей.
А все отчего? А от отсутствия понимания, что такое "ООП", и острого нежелания "видеть" его слабенькие отблески в своей поделке, отчего и избегают даже говорить об ООП, не говоря уже - внедрить его в 1С наконец полностью и к всеобщему удовлетворению (ну, за исключением ортодоксальных 1С-ников, им вообще ничего не светит).
---
(13) А что мне мешает зайти форму списка регистра и удалить любую запись, кнопка удаления там естьНу так, а кнопка удаления как работает? С помощью силы джедая?)
---
вот даже писать не хочется, по этой теме только один человек написал по честному (2) без подъездов (ебoв). Остальные просто поиздевались. И так во всех темах, 10% нормальных ответов, остальное все вода, причем грязная. Что это зависть или отсутствие ума не буду судить, могу только пожалеть.
---
Так это же известный тролль этого форума. У него цель из любой темы где отметился срач устроить.
---
если ты известный тролль - так и пиши, не скрывайся под третьим лицом.
А то неясно выражаешься.
---
вот даже писать не хочется, по этой теме только один человек написал по честному (2)Давай разберем, что тебе тут твой "т-ль"? - да нет, просто студент-неуч, написал:
Пробовать все на копии, обязательно. Если в РС записи делает документ, то трогать эти записи нельзя. Есть служебные РС в них можно менять/удалять записи обдумано. Записи в РС нельзя пометить на удаление они сразу удаляются."Если в РС записи делает документ, то трогать эти записи нельзя." - в 1с БОЛЬШИНСТВО регистров- подчиненные. Ты вопрос задавал про что - как задвоение убрать в регистре, или так, погулять пришел?
Есть служебные РС в них можно менять/удалять записи обдуманоК служебным регистрам нет доступа на запись/изменение ни у тебя, ни у твоего студента. Их вообще в конфигурации нет. Все остальные регистры - рабочие, и в любом записи нужно удалять обдуманно. Или не лезьть туда со студентом.
"Записи в РС нельзя пометить на удаление они сразу удаляются" - введи поле-ресурс "ПометкаНаУдаление", и будет тебе пометка на удаление. Да, у 1С не предусмотрено это визуально или в виде служебного поля, как в остальных объектах - 1С считает, что тут "сразу голая таблица", без ссылок и прочего "объективизма", поэтому можно и удалять сразу.
Единственно, что верно - "Пробовать все на копии", но это, видимо, заучил. Троечка.
---
просто студент-неуч Ты брат ошибся по крупному, ну все держись. Я правда ответчика (2) немного перепутал с другим своим знакомым тоже Рустам, но это не важно.
---
Ну подскажите тогда как можно и нужно правильно удалять записи из регистра? Код в студию.
---
Не надейся. Не было такого и не будет. :)
---
Чего не было и чего не будет? Спорим что будет? уже 5% нормальных ответов с помощью.
---
Вот нашелся добрый человек и написал код, как изменить запись в регистре и удалить, это я.

```1c
    Процедура МенеджерЗаписиВРегистрНажатие(Элемент)

    НаборПлан=РегистрыСведений.Поооооооооооооо.СоздатьНаборЗаписей();
    НаборПлан.Отбор.Заооооооооо.Установить(Зооооооооо);
    Если ЗначениеЗаполнено(Маоооо) Тогда
    НаборПлан.Отбор.Мооооо.Установить(Мооооо);
    КонецЕсли;

    Если Ноооооо>0 Тогда
    НаборПлан.Отбор.НомерВОчереди.Установить(Нооооооо);
    КонецЕсли;
    НаборПлан.Прочитать();

    Для каждого ЗаписьНабора Из НаборПлан Цикл

    Запись=РегистрыСведений.Поооооооооооо.СоздатьМенеджерЗаписи();
    ЗаполнитьЗначенияСвойств(Запись,ЗаписьНабора);
    Если СнятьАктивность Тогда
    Запись.Активность=Ложь;
    КонецЕсли;
    Если Нооооооо>0 Тогда
    Запись.Ноооооооооо=Ноооооо;
    КонецЕсли;
    Запись.Записать();

    КонецЦикла;
    НаборПлан.Очистить();
    НаборПлан.Записать();

    КонецПроцедуры
```

код рабочий, проверено.
---
Поооооооооооооо
Что это за "Поооооооооооооо", "Нооооооо" и прочее в коде?
---
Что это за "Поооооооооооооо", "Нооооооо" и прочее в коде?Это он весь регистр тренируется очищать по "вааааау!".
---
ага, так всегда и пиши. Еще дружи с неучами - больше неучей будет, быстрее накроетесь.
---
этот пользователь, которого вы назвали неучем, а вернее оскорбили, руководит проектами, подозреваю как раз такими как вы). А Пооо и прочее в коде это сокрытие информации, суть видна. Все тему можно закрыть, спасибо всем за косвенную помощь.
---
ужасная реализация поставленной задачи.
(32) руководители проектов тоже бывают разные, но благо нормальному руководителю проектов и не нужно знать программирование в 1С и учить кого-то писать код.
---
вас то кто в тему позвал, все уже закрыто, опоздали. Легче всего написать и облить, а доказательства где, только голословные заявления, честно неприятно даже читать (карпик, даже не карп).
---
я смотрю грубить вы научились, и даже переходите на личности, хотя здесь был прокомментирован именно код-пример. Видать вы "крутой" программист, но только среди своих одноклассников.
1. Вы написали в общедоступном форуме, а не в своем личном бложике, так что где хочу, там и пишу.
2. Чтобы называть код гавном не нужно доказательств, если всем итак ясно. Можно убедиться по ссылке https://www.govnokod.ru/1c , как раз найдете там такие же примеры творчества, как и у вас.
3. Лучше бы потраченное время уделили книжкам по программированию, почитали, что такое менеджер записи и набор записей регистра, а не огрызались. По факту думать не хотим, ждем чтобы разжевали и в рот положили.
4. Есть стандарты разработки 1С https://its.1c.ru/db/v8std , и для кода, что в (28) другого названия и не подобрать, кроме как говнокод.
---
я не крутой, я начинающий, но хамство тоже не люблю и не вижу смысла в голословных утверждениях и уж тем более когда тема закрыта автором. Извините если обидел не хотел, исправлюсь.
---
прокомментирован именно код-пример где был код прокомментирован и в чем, что все плохо, так это я и сам знаю что не очень хорошо, хорошо приходит с опытом, а опыта пока нет. И какой смысл в таких комментариях?
---
Вы написали в общедоступном форуме это форум, где задаются вопросы, причем конкретные, если вам хочется поговорить не о чем , пишите в личку, я пойму что вам нужно выговориться, понимаю время сейчас нервное, нужно скинуть негативную энергетику
---
если всем итак ясно не существует такого понятия ВСЕМ, всем это значит никому, пройдите просто мимо темы, которая не подходит вашему настроению, гениями не рождаются он проходят путь от новичка до специалиста и дальше
---
потраченное время уделили книжкам по программированию, книги и курсы я читаю и смотрю постоянно, но дома, на работе на это нет времени
---
Есть стандарты разработки вам нужно было всего навсего предложить эту ссылку, а не устраивать спектакль, хотя еще не смотрел, что это за ссылка, вряд ли вы способны дать что то конкретное и полезное.
---
Может нужно для начала определиться по измерениям, которые способствовали "задвоению".

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

Чисто как пример из рабочего варианта

```1c
    Процедура ПередЗаписью(Отказ, Замещение)

    Набор = ЭтотОбъект;

    для каждого ряд из Набор Цикл

    ПредыдущееЗначенияЗаписи = ПолучитьПредыдущееЗначениеЗаписи(ряд);

    ЕсльДубликаты= ПроверитьДуликаты(ряд);

    Если ряд.ДатаОбработки = ПредыдущееЗначенияЗаписи.ДатаОбработки тогда
    ряд.ДатаОбработки = ТекущаяДата();
    Конецесли;

    Если ЕстьДубликаты тогда
    ВызватьИсключение "Дубикат записи в измерениях для " + ряд.Документ ;
    Конецесли;

    конеццикла;

    КонецПроцедуры;

    функция ПолучитьПредыдущееЗначениеЗаписи(ряд)

    Запрос = Новый Запрос;
    // тут запрос к данному регистру с параметрами из ряд
    //......

    КонецФункции;

    функция ПроверитьДубликаты(ряд)

    Запрос = Новый Запрос;
    // тут запрос к данному регистру на проверку дубликатов измерений с параметрами из ряд
    //......

    КонецФункции;
```
---
Спасибо большое, посмотрю когда будет время)