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

```1c
    НовыйШК = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
    НовыйШК.Владелец = СтрокаДанных.Номенклатура;
    НовыйШК.ЕдиницаИзмерения = СтрНайденнаяЕдиница.ЕдиницаВБазе;
    НовыйШК.Прочитать();
```

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

    Если НовыйШК.Выбран() Тогда
    НоваяЗапись=НовыйШК.Добавить();
    НоваяЗапись.Владелец = СтрокаДанных.Номенклатура;
    НоваяЗапись.ХарактеристикаНоменклатуры = СтрокаДанных.ХарактеристикаНоменклатуры;
    НоваяЗапись.Штрихкод = СтрНайденнаяЕдиница.Штрихкод;
    НоваяЗапись.ТипШтрихкода = ОпределитьТипШтрихкода(СтрНайденнаяЕдиница.Штрихкод);
    НоваяЗапись.ЕдиницаИзмерения = СтрНайденнаяЕдиница.ЕдиницаВБазе;
    НоваяЗапись.Качество = Справочники.Качество.Новый;
    НовыйШК.Записать(Истина);
    КонецЕсли;
```

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