Добрый день.

В систему добавлен самописный РС ТранспортныеРасходы. Независимый, в пределах секунды.
Данные в него должны записываться при проведении документа ПриобретениеУслугПрочихАктивов, только если в документе стоит статья расходов Услуги по доставке продукции (44.02) и заполнено поле Сумма транспортных расходов. В таких докуметах стоит признак Булево Транспортные расходы Истина.
Не получается сделать отбор по статье и полю расходов и при проведении регистр добавляет данные по документу еще раз а не перезаписывает. Подскажите, что нужно добавить в код модуля?

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

    НаборЗаписей.Отбор.Период.Установить(Дата);

    НаборЗаписей.Прочитать();
    НаборЗаписей.Очистить();

    Если ЗначениеЗаполнено(ТранспортныеРасходы) Тогда

    Для Каждого ТекСтрокаРасходы Из Расходы Цикл

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

Если ТранспортныеРасходы Тогда
---
что будет, когда Дата будет отличаться на секунду и больше? У вас именно это и происходит, по всей видимости.

ответ, насколько понял суть проблемы:
т.к. другие условия неизвестны, то сделать РС подчиненным регистратору.
---
что будет, когда Дата будет отличаться на секунду и больше? У вас именно это и происходит, по всей видимости.

ответ, насколько понял суть проблемы:
т.к. другие условия неизвестны, то сделать РС подчиненным регистратору.
---
У меня есть в коде Если Значение заполнено Транспортные расходы тогда делать запись в регистр, но не отрабатывает.

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

(5) Не понятно, что есть ТранспортныеРасходы, заполнение которого проверяется?
Если оно установлено на форме и не установлено в реквизите объекта, то быть может ЭУ на форме привязан не к тому реквизиту объекта?

Вы лучше расскажите как вы себе представляете логику записи в регистр?

Простой пример, исходя из приведенного вами кода:

1. Есть документ1, с датой Дата1, при проведении выполнили запись в регистр.
Создали Документ2, с датой Дата1, при проведении прочитали регистр, очистили и записали заново другие данные.

2. Есть документ1, с датой Дата1, при проведении выполнили запись в регистр.
Отредактировали Документ1, поставили дату Дата2, при проведении прочитали регистр - он пустой. записали новые данные.

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

Если ТранспортныеРасходы Тогда
---
Спасибо, это помогло.
Только если стоит признак Транспортные расходы, документ проведен, и движение по регистру есть, если снять галочку Транспортные расходы и провести снова - регистр не очищается. Если сначала отменить проведение, тогда все ОК.
---
только если в документе стоит статья расходов Услуги по доставке продукции (44.02) и заполнено поле Сумма транспортных расходов
самое простое - добавить в код модуля эти условия.
---
Набор.Записать(ИСТИНА)