Имя: Пароль:
1C
1С v8
Номенклатура без цены
0 pv94384
 
24.07.14
07:58
Как получить всю номенклатуру без определенного типа цен?
1 Любопытная
 
24.07.14
07:59
(0) взять всю номенклатуру, соединить ее с тем местом, где хранятся цены и получить нужное
2 Wobland
 
24.07.14
07:59
срезпоследних(&Период, ВидЦены<>&определённый)
3 Wobland
 
24.07.14
07:59
(1) не видала РН для цен?
4 Ненавижу 1С
 
гуру
24.07.14
08:00
(0) могу дать три различных решения этой задачи через запросы
5 pv94384
 
24.07.14
08:01
Делаю так, но он выводит наоборот не пустые
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Ссылка,
                   |    Номенклатура.Наименование
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура";
    Результат = Запрос.Выполнить();
    Выборка   = Результат.Выбрать();
    
    Пока Выборка.Следующий() цикл
        запрос1 = Новый Запрос;
        Запрос1.Текст = "ВЫБРАТЬ
                        |    ЦеныНоменклатурыСрезПоследних.ТипЦен,
                        |    ЦеныНоменклатурыСрезПоследних.Номенклатура,
                        |    ЦеныНоменклатурыСрезПоследних.Цена
                        |ИЗ
                        |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
                        |ГДЕ
                        |    ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура
                        |    И ЦеныНоменклатурыСрезПоследних.ТипЦен = &типцен";
        Запрос1.УстановитьПараметр("Номенклатура", Выборка.ссылка);
        запрос1.УстановитьПараметр("типцен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000006"));
        Результат1 = запрос1.Выполнить();
        Выборка1   = Результат1.Выбрать();
        Пока Выборка1.Следующий() цикл
    .........
        КонецЦикла;
    КонецЦикла;
6 Wobland
 
24.07.14
08:02
(5) теперь делай так, как в (1) и (2)
7 floody
 
24.07.14
08:03
(3) Регистр накопления для цен? Хм.
8 Wobland
 
24.07.14
08:04
9 pv94384
 
24.07.14
08:06
Спасибо! Разобрался!
10 shuhard
 
24.07.14
08:06
(0)[Как получить всю номенклатуру без определенного типа цен?]
не использовать Рг сведений
11 Ненавижу 1С
 
гуру
24.07.14
08:14
вариант 1

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

вариант 2

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

вариант 3 (для извращенцев)

ВЫБРАТЬ
    Номенклатура.Ссылка,
    0 КАК Флаг
ПОМЕСТИТЬ Т
ИЗ
    Справочник.Номенклатура КАК Номенклатура

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    1
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Т.Ссылка
ИЗ
    Т КАК Т

СГРУППИРОВАТЬ ПО
    Т.Ссылка

ИМЕЮЩИЕ
    СУММА(Т.Флаг) = 0