Пройтись по номенклатуре, найти цену розничную , если цена отличается от цены провести документ Установка Цен Номенклатуры
Добрый день!
Как решить такую задачу, по всей номенклатуре по каждой позиции запросить розничную цену и цену со скидкой 30%
Взять розничную цену вычислить ее с учетом скидки 30% и сравнить с ценой которая стоит в позиции Скидка30% ,
если цена отличается то в справочник нужно записать правильную цену и провести документ Установка Цен Номенклатуры.
Вот похоже сформулировала задачу.
РозничнаяЦена = справочники.ВидыЦен.НайтиПоНаименованию("Розничная");
Скидка30Цена = справочники.ВидыЦен.НайтиПоНаименованию("Скидка30");
Выборка = Справочники.Номенклатура.ВыбратьИерархически();
Пока Выборка.Следующий() Цикл
// и вот тут не знаю как выбрать цены
КонецЦикла;
не судите строго, еще учусь.
Как решить такую задачу, по всей номенклатуре по каждой позиции запросить розничную цену и цену со скидкой 30%
Взять розничную цену вычислить ее с учетом скидки 30% и сравнить с ценой которая стоит в позиции Скидка30% ,
если цена отличается то в справочник нужно записать правильную цену и провести документ Установка Цен Номенклатуры.
Вот похоже сформулировала задачу.
РозничнаяЦена = справочники.ВидыЦен.НайтиПоНаименованию("Розничная");
Скидка30Цена = справочники.ВидыЦен.НайтиПоНаименованию("Скидка30");
Выборка = Справочники.Номенклатура.ВыбратьИерархически();
Пока Выборка.Следующий() Цикл
// и вот тут не знаю как выбрать цены
КонецЦикла;
не судите строго, еще учусь.
По теме из базы знаний
Найденные решения
(1) Нужен запрос
И Условие лучше добавить в запрос
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныРозничные.Номенклатура,
| ЦеныРозничные.Цена КАК ЦенаРозничная,
| ЕСТЬNULL(ЦеныСкидка30.Цена, 0) КАК Цена30Скидка
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &РозничнаяЦена) КАК ЦеныРозничные
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Скидка30Цена) КАК ЦеныСкидка30
| ПО ЦеныРозничные.Номенклатура = ЦеныСкидка30.Номенклатура";
Запрос.УстановитьПараметр("РозничнаяЦена", РозничнаяЦена);
Запрос.УстановитьПараметр("Скидка30Цена", Скидка30Цена);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если Выборка.ЦенаРозничная*0,3<>Выборка.Цена30Скидка Тогда
КонецЕсли;
КонецЦикла;
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
ПоказатьИ Условие лучше добавить в запрос
|ГДЕ
| ЦеныРозничные.Цена * 0.3 <> ЦеныСкидка30.Цена";
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Нужен запрос
И Условие лучше добавить в запрос
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныРозничные.Номенклатура,
| ЦеныРозничные.Цена КАК ЦенаРозничная,
| ЕСТЬNULL(ЦеныСкидка30.Цена, 0) КАК Цена30Скидка
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &РозничнаяЦена) КАК ЦеныРозничные
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Скидка30Цена) КАК ЦеныСкидка30
| ПО ЦеныРозничные.Номенклатура = ЦеныСкидка30.Номенклатура";
Запрос.УстановитьПараметр("РозничнаяЦена", РозничнаяЦена);
Запрос.УстановитьПараметр("Скидка30Цена", Скидка30Цена);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если Выборка.ЦенаРозничная*0,3<>Выборка.Цена30Скидка Тогда
КонецЕсли;
КонецЦикла;
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
ПоказатьИ Условие лучше добавить в запрос
|ГДЕ
| ЦеныРозничные.Цена * 0.3 <> ЦеныСкидка30.Цена";
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот