Натуля - красотуля :)
Искусственный Интеллект
(184415)
8 месяцев назад
1) Ошибочное условие в соединении с таблицами цен.
ПО Товары.Ссылка = ЦеныТоваровРозница.Ссылка
и
ПО Товары.Ссылка = ЦеныТоваровЗакупка.Ссылка
Товары И Цены... это разные справочники, у них не могут быть одинаковые ссылки.
Не знаю что у вас за структура данных в справочнике цен.
Возможно условие должно быть такое
Товары.Ссылка = ЦеныТоваровРозница.Владелец
если Товары - владелец справочника Цены.
2) Сравнение ссылки со строкой это фейспалм...
ЦеныТоваровЗакупка.ТипЦены.Ссылка = ""Закупочная""
Запросы это не ваше, вы не понимаете базовые вещи.
Процедура Справка(Команда)
Сообщить("Товары, у которых розничная цена меньше, 1.5 * закупочной цены:");
ПолучениеНаименований();
КонецПроцедуры
&НаСервере
Функция ПолучениеНаименований()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Наименование КАК Наименование,
| ЦеныТоваровРозница.ЗначениеЦены КАК РозничнаяЦена,
| ЦеныТоваровЗакупка.ЗначениеЦены КАК ЗакупочнаяЦена
|ИЗ
| Справочник.Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЦеныТоваров КАК ЦеныТоваровРозница
| ПО Товары.Ссылка = ЦеныТоваровРозница.Ссылка
| И (ЦеныТоваровРозница.ТипЦены.Ссылка = ""Розничная"")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЦеныТоваров КАК ЦеныТоваровЗакупка
| ПО Товары.Ссылка = ЦеныТоваровЗакупка.Ссылка
| И (ЦеныТоваровЗакупка.ТипЦены.Ссылка = ""Закупочная"")
|ГДЕ
| ЦеныТоваровРозница.ЗначениеЦены < 1.5 * ЦеныТоваровЗакупка.ЗначениеЦены";
// Выполняем запрос
Результат = Запрос.Выполнить().Выбрать();
// Проверяем, что результат запроса получен успешно
Если Результат.Количество() > 0 Тогда
// Обрабатываем результат
Пока Результат.Следующий() Цикл
Сообщить(Результат.Наименование);
КонецЦикла;
Иначе
Сообщить("Нет товаров у которых розничная цена < закупочной!");
КонецЕсли;
КонецФункции
при любой цене он будет выдавать Иначе
Сообщить("Нет товаров у которых розничная цена < закупочной!");
Что не так?