Имя: Пароль:
1C
1С v8
Спрвавочник Номенклатура, расчет цены по характерисикам
0 ElidaDV
 
03.05.15
10:10
Добрый день. Только учусь поэтому и есть непонятки.
Суть вопроса такова:
УТ 10.3 (10.3.32.2)
Платформа 8.2.19.130

В организации ведется учет по характеристикам. В справочнике номенклатура, вкладка Цены номенклатуры есть кнопка Перечитать Текущие Цены;
Процедура КоманднаяПанельЦеныНоменклатурыПеречитатьТекущиеЦены(Кнопка)
Так вот при нажатии на данную кнопку в табличную часть выходит текущая цена по типам цен (Розничная, Закупочная, и т.д.)
Есть товар  с разной ценой для разной характеристики.
Товароведы просят что бы выходила таблица следующего вида:

Тип цен - Характеристика - Цена - Способ расчета

К примеру:

Закупочная - 1 - 50 - Способ расчета
Закупочная - 2 - 60 - Способ расчета
Розничная - 1 - 70 - Способ расчета
Розничная - 2 - 90 - Способ расчета

Сейчас просто выходит
Закупочная -  - 50 - Способ расчета
Розничная -  - 90 - Способ расчета

Цену берет из последнего документа установка цен номенклатуры

Добавил колонку Характеристика
Данные - Характеристика
Тип значения - СправочникСсылка.ХарактеристикиНоменклатуры
Связь по владельцу - ссылка

В модуле

Процедура КоманднаяПанельЦеныНоменклатурыПеречитатьТекущиеЦены(Кнопка)

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

    Запрос.УстановитьПараметр("Дата", РабочаяДата);
    Запрос.УстановитьПараметр("Характеристика", ЦеныНоменклатуры.ВыгрузитьКолонку("Характеристика"));
    Запрос.УстановитьПараметр("ТипыЦен", ЦеныНоменклатуры.ВыгрузитьКолонку("ТипЦен"));
    Запрос.УстановитьПараметр("Номенклатура", Ссылка);

    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        СтрокаЦен = ЦеныНоменклатуры.Найти(Выборка.ТипЦен, "ТипЦен");
        ЗаполнитьЗначенияСвойств(СтрокаЦен, Выборка);
    КонецЦикла;

КонецПроцедуры


*********

Подскажите чего не дописал?
1 DrShad
 
03.05.15
10:21
Запрос и параметры запроса сравни
2 jsmith82
 
03.05.15
11:20
я в акуе
3 ElidaDV
 
03.05.15
12:55
я понимаю что косяк тут:
Запрос.УстановитьПараметр ("Характеристика" ,  ХарактеристикаНоменклатуры.ВыгрузитьКолонку ("Характеристика"));
Так?
4 DrShad
 
03.05.15
12:58
нет
5 ElidaDV
 
03.05.15
13:04
В запросе:
Цены.ХарактеристикаНоменклатуры как Характеристика

Параметр:
Как должен выглядеть?
Цены.ХарактеристикаНоменклатуры.ВыгрузитьКолонку?

Тогда дает ошибку переменная не определена Цены = ???
6 floody
 
03.05.15
13:12
ХарактеристикаНоменклатуры В &СписокХарактеристик

Про это вопрос чтоли?
7 Zhuravlik
 
03.05.15
13:13
из запроса вообще непонятно, зачем там этот параметр.
-
И непонятно: каким образом будет решена задача, если в запросе условие на пустую характеристику?
8 floody
 
03.05.15
13:13
в общем, похоже я не осилил)
9 Zhuravlik
 
03.05.15
13:15
(6) Тогда уж ХарактеристикаНоменклатуры В (&СписокХарактеристик).
А лучше:
"ХарактеристикаНоменклатуры В (&МассивХарактеристик)", и

Запрос.УстановитьПараметр("МассивХарактеристик", ЦеныНоменклатуры.ВыгрузитьКолонку("Характеристика"));
10 Zhuravlik
 
03.05.15
13:17
(5) в (0) вместо "ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)" надо (9). Насколько я понял.
11 ElidaDV
 
03.05.15
13:17
в запросе не указал параметр &Характеристика
Подскажите пожалуйста где его правильно вставить
12 ElidaDV
 
03.05.15
13:21
Сейчас поправлю запрос отпишусь что получилось
И запрос был в типовой ут, просто его редактирую.