Добрый день!

Как решить такую задачу, по всей номенклатуре по каждой позиции запросить розничную цену и цену со скидкой 30%
Взять розничную цену вычислить ее с учетом скидки 30% и сравнить с ценой которая стоит в позиции Скидка30% ,
если цена отличается то в справочник нужно записать правильную цену и провести документ Установка Цен Номенклатуры.
Вот похоже сформулировала задачу.

        РозничнаяЦена = справочники.ВидыЦен.НайтиПоНаименованию("Розничная");
        Скидка30Цена = справочники.ВидыЦен.НайтиПоНаименованию("Скидка30");

 Выборка = Справочники.Номенклатура.ВыбратьИерархически();
 Пока Выборка.Следующий() Цикл
                // и вот тут не знаю как выбрать цены

 КонецЦикла;

не судите строго, еще учусь.
---
Нужен запрос

```1c
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЦеныРозничные.Номенклатура,
    | ЦеныРозничные.Цена КАК ЦенаРозничная,
    | ЕСТЬNULL(ЦеныСкидка30.Цена, 0) КАК Цена30Скидка
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &РозничнаяЦена) КАК ЦеныРозничные
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Скидка30Цена) КАК ЦеныСкидка30
    | ПО ЦеныРозничные.Номенклатура = ЦеныСкидка30.Номенклатура";

    Запрос.УстановитьПараметр("РозничнаяЦена", РозничнаяЦена);
    Запрос.УстановитьПараметр("Скидка30Цена", Скидка30Цена);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если Выборка.ЦенаРозничная*0,3<>Выборка.Цена30Скидка Тогда

    КонецЕсли;
    КонецЦикла;

    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
```

И Условие лучше добавить в запрос

```1c
    |ГДЕ
    | ЦеныРозничные.Цена * 0.3 <> ЦеныСкидка30.Цена";
```
---
по регистру смотреть (ценыНоменклатуры)
---
Нужен запрос

```1c
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЦеныРозничные.Номенклатура,
    | ЦеныРозничные.Цена КАК ЦенаРозничная,
    | ЕСТЬNULL(ЦеныСкидка30.Цена, 0) КАК Цена30Скидка
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &РозничнаяЦена) КАК ЦеныРозничные
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Скидка30Цена) КАК ЦеныСкидка30
    | ПО ЦеныРозничные.Номенклатура = ЦеныСкидка30.Номенклатура";

    Запрос.УстановитьПараметр("РозничнаяЦена", РозничнаяЦена);
    Запрос.УстановитьПараметр("Скидка30Цена", Скидка30Цена);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если Выборка.ЦенаРозничная*0,3<>Выборка.Цена30Скидка Тогда

    КонецЕсли;
    КонецЦикла;

    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
```

И Условие лучше добавить в запрос

```1c
    |ГДЕ
    | ЦеныРозничные.Цена * 0.3 <> ЦеныСкидка30.Цена";
```
---
Спасибо большое! все получилось.