Вопрос вот в чём - Есть документ, назовём его "Ремонт". В нём полчища полей для заполнения и среди них затесалось маленькое поле с перечислением. Основная составляющая: "Принят в ремонт", "На согласовании", "В ремонте", "Выдан".

Этот документ делает записи в два регистра накопления: "РегистрПринятоВРемонт" и "РегистрВыданныхИзделий"

Соль вопроса: Мне нужно, чтобы при выставлении в поле перечисления "Выдан", данные заносились в "РегистрВыданныхИзделий" при проведении документа, а если выбрано какое-либо другое значение - в "РегистрПринятоВРемонт". Как такое можно реализовать?

Ну и, мысли вскользь: нужно ли, чтобы при занесении во второй регистр, запись удалялась из первого. Или потом просто при формировании отчёта из двух регистров делать пометку "выдан"? (или тут я глупость сморозил и такие вообще невозможны? даже в параллельных мирах)
---
Соль вопроса: Мне нужно, чтобы при выставлении в поле перечисления "Выдан", данные заносились в "РегистрВыданныхИзделий" при проведении документа, а если выбрано какое-либо другое значение - в "РегистрПринятоВРемонт". Как такое можно реализовать?

там где вы движения пишите

```1c
    //Очистить движения перед проведением..
    //.....
    Для каждого СтрТЧ из ТЧ Цикл

    Если СтрТЧ .ПолеСПеречислением = Перечисления.ИмяПеречисления.Выдан Тогда
    ДобавитьзаписьРегистрВыданныхИзделий(НаборЗаписей,СтрТЧ);
    Иначе
    ДобавитьзаписьРегистрПринятоВРемонт(НаборЗаписей,СтрТЧ);
    КонецЕсли

    КонецЦикла;

    //......
```

мне кажется это то, о чем вы спрашиваете.

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

Очищайте все движения перед проведением документов чтобы избежать возможность задублировать записи.

И про регистры вам тут правильно спрашивают, задумайтесь какие вам нужны на самом деле? Накопления остаточный/Оборотный или регистр сведений (переодический, под чиненый регистратору)
---
отталкивайтесь от того, что Документ это единица фиксации первичной документации.
То что пытаетесь сделать это конечно возможно, но это уже не Документ в учетных системах. Теряется фиксация действий по учету данных.
Тут в любом случае 2 разных документа нужно. Или 2 разных типа документа, или 2 разных документа одного типа.
Просто представьте себе, что документом было принято в ремонт 2 изделия, а нужно вернуть из ремонта только 1, а второе оставить в ремонте...
---
нужно ли, чтобы при занесении во второй регистр, запись удалялась из первого. Или потом просто при формировании отчёта из двух регистров делать пометку "выдан"?
Если ваши регистры - регистры остатков, то при неудалении записей вы получите непрерывно пухнущую таблицу остатков. Учет на регистрах накопления обязан закрываться. А при удалении записей вы теряете историю, а ведь наверняка потребуется потом отчет о количестве ремонтируемых объектов за период.

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

"Маленькое поле перечисления" содержит значение реквизита документа допустим с именем "Операция"?
Тогда в ОбработкаПроведения пишете

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

там где вы движения пишите

```1c
    //Очистить движения перед проведением..
    //.....
    Для каждого СтрТЧ из ТЧ Цикл

    Если СтрТЧ .ПолеСПеречислением = Перечисления.ИмяПеречисления.Выдан Тогда
    ДобавитьзаписьРегистрВыданныхИзделий(НаборЗаписей,СтрТЧ);
    Иначе
    ДобавитьзаписьРегистрПринятоВРемонт(НаборЗаписей,СтрТЧ);
    КонецЕсли

    КонецЦикла;

    //......
```

мне кажется это то, о чем вы спрашиваете.

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

Очищайте все движения перед проведением документов чтобы избежать возможность задублировать записи.

И про регистры вам тут правильно спрашивают, задумайтесь какие вам нужны на самом деле? Накопления остаточный/Оборотный или регистр сведений (переодический, под чиненый регистратору)