Есть задачка записать цены на номенклатуру программно в РС.
Подробнее: Для начала мы грузим файл, потом записываем данные в номенклатуру и вместе с этим же записывать данные в РС "Цены на номенклатуру", а после нажимаем на кнопку "Создать Документ", где выбираем номенклатуру и цены автоматически проставляются.

Возникает ошибка после "НаборЗаписей.Отбор." - не выбирается регистратор.

Код:

```1c
    &НаКлиенте
    Процедура ЗаписатьДанные(Команда)
    ЗаписатьДанныеНаСервере();
    КонецПроцедуры

    &НаСервере
    Процедура ЗаписатьДанныеНаСервере()
    Для Каждого СтрокаДанных Из Объект.ДанныеФайла Цикл
    Наименование = СтрокаДанных.ITEMNO + "| " + СтрокаДанных.GENDER + "| " + СтрокаДанных.STORY + "| " + СтрокаДанных.DESCRIPTION + "| " + СтрокаДанных.COLOUR;
    Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Наименование, Истина);

    Если Не ЗначениеЗаполнено(Номенклатура) Тогда
    Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();
    Иначе
    Номенклатура = Номенклатура.ПолучитьОбъект();
    КонецЕсли;

    Номенклатура.Артикул = СтрокаДанных.ITEMNO;
    Номенклатура.Наименование = Наименование;
    Номенклатура.Родитель = СоздатьГруппу(СтрокаДанных);
    //Функция на возвращение созданной группы. вернуть в переменную номенклатура.родитель
    Номенклатура.Записать();

    НаборЗаписей = РегистрыСведений.Цены.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Номенклатура);
    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Номенклатура = Номенклатура;
    НоваяЗапись.РозничнаяЦена = СтрокаДанных.STANDARDFOBCNY;
    НоваяЗапись.ЗакупочнаяЦена = СтрокаДанных.FOBCNY;
    НаборЗаписей.Записать();
    КонецЦикла;
    Сообщить("Группы созданы");
    Сообщить("Загрузка выполнена успешно!");
    КонецПроцедуры

    &НаКлиенте
    Процедура СоздатьДокумент(Команда)
    СоздатьДокументНаСервере();
    КонецПроцедуры

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

2 запись в регистр рекомендую копировать из синтаксис помощника

```1c
    КурсыВалют = РегистрыСведений.КурсыВалют;
    НаборКурсов = КурсыВалют.СоздатьНаборЗаписей();
    Доллар = Справочники.Валюты.НайтиПоНаименованию("USD");
    НаборКурсов.Отбор.Валюта.Установить(Доллар);
    НаборКурсов.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));
    НаборКурсов.Прочитать();
    Если НаборКурсов.Количество() = 0 Тогда
    НовыйКурс = НаборКурсов.Добавить();
    НовыйКурс.Валюта = Доллар;
    НовыйКурс.Период = ТекущаяДата();
    ИначеЕсли НаборКурсов.Количество() = 1 Тогда
    НовыйКурс = НаборКурсов[0];
    Иначе
    Предупреждение(НСтр("ru = 'Курс валюты задается один раз в день.';"
    + " en = 'Rate is set once a day.'"), 60);
    Возврат;
    КонецЕсли;
    НовыйКурс.Курс = 31.44;
    НовыйКурс.Кратность = 1;
    НаборКурсов.Записать();
```
---
Начните с этого
---
"НаборЗаписей.Отбор."так попробуйте
```1c
    НоменклатураДляЗаписи = Номенклатура.Ссылка;
    НаборЗаписей = РегистрыСведений.Цены.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(НоменклатураДляЗаписи);
    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Номенклатура = НоменклатураДляЗаписи;
    НоваяЗапись.РозничнаяЦена = СтрокаДанных.STANDARDFOBCNY;
    НоваяЗапись.ЗакупочнаяЦена = СтрокаДанных.FOBCNY;
    НаборЗаписей.Записать();
```
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
1 проверьте название регистра Цены (не ЦеныНоменклатуры ?)

2 запись в регистр рекомендую копировать из синтаксис помощника

```1c
    КурсыВалют = РегистрыСведений.КурсыВалют;
    НаборКурсов = КурсыВалют.СоздатьНаборЗаписей();
    Доллар = Справочники.Валюты.НайтиПоНаименованию("USD");
    НаборКурсов.Отбор.Валюта.Установить(Доллар);
    НаборКурсов.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));
    НаборКурсов.Прочитать();
    Если НаборКурсов.Количество() = 0 Тогда
    НовыйКурс = НаборКурсов.Добавить();
    НовыйКурс.Валюта = Доллар;
    НовыйКурс.Период = ТекущаяДата();
    ИначеЕсли НаборКурсов.Количество() = 1 Тогда
    НовыйКурс = НаборКурсов[0];
    Иначе
    Предупреждение(НСтр("ru = 'Курс валюты задается один раз в день.';"
    + " en = 'Rate is set once a day.'"), 60);
    Возврат;
    КонецЕсли;
    НовыйКурс.Курс = 31.44;
    НовыйКурс.Кратность = 1;
    НаборКурсов.Записать();
```
---
Нет, "Цены". Потому как я выполняю задание в существующей базе
---
не знаю как в вашей базе, но скорее всего

```1c
    НаборЗаписей.Отбор.Регистратор.Установить(Номенклатура);
```

регистратор тут документ установки цен номенклатуры, а не справочник номенклатуры.

еще у вас Прочитать не хватает
---
Имеете ввиду так?:

                НаборЗаписей = РегистрыСведений.Цены.СоздатьНаборЗаписей();
  НаборЗаписей.Отбор.Цены.Установить(Номенклатура);
  НаборЗаписей.Прочитать();
  НоваяЗапись = НаборЗаписей.Добавить();
  НоваяЗапись.Номенклатура = Номенклатура;
  НоваяЗапись.РозничнаяЦена = СтрокаДанных.STANDARDFOBCNY;
  НоваяЗапись.ЗакупочнаяЦена = СтрокаДанных.FOBCNY;
  НаборЗаписей.Записать();
---
проверьте наличие цены как тут

```1c
    Если НаборКурсов.Количество() = 0 Тогда
    НовыйКурс = НаборКурсов.Добавить();
    НовыйКурс.Валюта = Доллар;
    НовыйКурс.Период = ТекущаяДата();
    ИначеЕсли НаборКурсов.Количество() = 1 Тогда
    НовыйКурс = НаборКурсов[0];
    Иначе
```

и еще проверьте что заполняете все измерения регистра (например тип цен)
---
в отладчике какое значение покажет у строки
```1c
    НаборЗаписей.Отбор.Регистратор.ТипЗначения.Типы().Найти(ТипЗнч(Номенклатура))
```
 ?
---
Ну вот, пришёл, и всю малину... ))) Тут так интересно было!