Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 апр 2025, 06:41

Не получается добавить нужные колонки в номенклатуру

Автор Bulldoas, 25 авг 2017, 17:26

0 Пользователей и 1 гость просматривают эту тему.

Bulldoas

Что я делаю не так??? Всего-лишь хочу добавить в номенклатуру три колонки ЦЕНА РОЗН и ЦЕНА ЗАКУП и ОСТАТКИ с выбором склада..

ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Цена,
    ТоварыНаСкладахОстатки.ВНаличииОстаток,
    СпрНоменклатура.Ссылка КАК Ссылка,
СпрНоменклатура.Код КАК Код,
СпрНоменклатура.Наименование КАК Наименование,
СпрНоменклатура.Артикул КАК Артикул,
СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
СпрНоменклатура.Родитель,
ВЫБОР
КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
ТОГДА 4 + ВЫБОР
КОГДА СпрНоменклатура.ПометкаУдаления
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ + ВЫБОР
КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
ТОГДА 0
ИНАЧЕ 2
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА СпрНоменклатура.ПометкаУдаления
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ
+ ВЫБОР
КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
ТОГДА 0
ИНАЧЕ 2
КОНЕЦ

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


Выдаёт ошибку:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(44, 2)}: Синтаксическая ошибка "ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование"
<<?>>ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = ""Розничная""



PS: Вот моя типовая чистая:
ВЫБРАТЬ
СпрНоменклатура.Ссылка КАК Ссылка,
СпрНоменклатура.Код КАК Код,
СпрНоменклатура.Наименование КАК Наименование,
СпрНоменклатура.Артикул КАК Артикул,
СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
СпрНоменклатура.Родитель,
ВЫБОР
КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
ТОГДА 4 + ВЫБОР
КОГДА СпрНоменклатура.ПометкаУдаления
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ + ВЫБОР
КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
ТОГДА 0
ИНАЧЕ 2
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА СпрНоменклатура.ПометкаУдаления
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ
+ ВЫБОР
КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
ТОГДА 0
ИНАЧЕ 2
КОНЕЦ

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


Помогите пожалуйста...

ilyay

Два условия в ГДЕ должны быть соединены через логический оператор И.
Конструктор запросов 1С даже позиционирует курсор туда, где ошибка, если внимательно посмотреть.

Bulldoas

Благодарю! Получилось, но в номенклатуре теперь не отображается ни одного товара((( Отбор пуст..
Добавлено: 28 авг 2017, 13:27


Блин, пытаюсь сделать, как в этой статье:
http://you1c.ru/1c82/ut11/ut-11-kak-dobavit-kolonku-v-spisok-nomenklatury

Выдаёт ошибку:

Ошибка в запросе набора данных
по причине:
{(31, 26)}: Поле не найдено "ТоварыОрганизацийОстатки.Номенклатура"
ТоварыОрганизацийОстатки.<<?>>Номенклатура КАК Номенклатура,


Помогите пожалуйста сделать три колонки ЦЕНА РОЗН и ЦЕНА ЗАКУП и ОСТАТКИ с выбором склада..
Добавлено: 28 авг 2017, 16:12


Дурдом... Вставил код

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


Вытащил на таблицу


Теперь не пойму, как разместить поля ввода (какой тип реквизита?):


Ну и далее вставляю
&НаСервере
Процедура УстановитьОтборПоЦенаНаСервере()
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена1), Цена1, Неопределено);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "Цена1", ЗначениеОтбора, ЗначениеЗаполнено(Цена1));
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена2), Цена2, Неопределено);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "Цена2", ЗначениеОтбора, ЗначениеЗаполнено(Цена2));
КонецПроцедуры


и облом((
Добавлено: 28 авг 2017, 16:41


Пардон за маленькую картинку. обновил:


Добавлено: 28 авг 2017, 17:17


Ладно, забил на коверканье модуля и две цены.
Нашёл более простую статью.. Делаю ДВЕ колонки.

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаРозн,
    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток,
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
        КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
            ТОГДА 4 + ВЫБОР
                    КОГДА СпрНоменклатура.ПометкаУдаления
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ + ВЫБОР
                    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                        ТОГДА 0
                    ИНАЧЕ 2
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА СпрНоменклатура.ПометкаУдаления
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ
            + ВЫБОР
                        КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                            ТОГДА 0
                        ИНАЧЕ 2
                    КОНЕЦ

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


Всё проглатывается, но в клиенте список номенклатуры пуст!! ПОМОГИИИТЕЕЕЕ
Добавлено: 29 авг 2017, 10:14


Как решить?

Kironten

Сейчас ругается вот на этот ваш код. Ищите, где вы его не удалили

Цитата: Bulldoas от 28 авг 2017, 13:24
Дурдом... Вставил код

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

Добавлено: 29 авг 2017, 14:33


Цитата: Kironten от 29 авг 2017, 13:40
Сейчас ругается вот на этот ваш код. Ищите, где вы его не удалили

Цитата: Bulldoas от 28 авг 2017, 13:24
Дурдом... Вставил код

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


Вообще сейчас как у вас код динамического списка выглядит?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск