8.х Отображение характеристик номенклатуры в списке

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Silapil, 5 сен 2017.

  1. TopicStarter Overlay
    Silapil
    Offline

    Silapil Опытный в 1С

    Регистрация:
    25 авг 2017
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    А как можно реализовать отображение характеристик номенклатуры в списке?
    У каждой номенклатуры может быть несколько характеристик.. Вот думаю, что нужно отображать в списке каждую характеристику одного и того-же товара новой строкой... Как быть?

    Хочу так:
    Безымянный.png

    Помогите пожалуйста дополнить мой код:

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


    И попутный вопрос, код вроде верный, но почему пишет ошибку - "Обнаружено дублирование ключевых значений в колонке ссылка"?? в "Дополнительно" - "Выборка записей" стоит галка "Без повторяющихся"...
  2. TopicStarter Overlay
    Silapil
    Offline

    Silapil Опытный в 1С

    Регистрация:
    25 авг 2017
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Так как решить-то? Чесслово не понимаю, почему сделали так, как есть изначально.. Ведь неудобно же!

    У меня например есть на складе 10 карандашей. 5 синих и 5 красных. Как в списке номенклатуры смотреть остаток, если отображаетс "карандаш: 10шт"? Прайс смотреть не вариант каждый раз. Нужно видеть оставшиеся цвета в списке номенклатуры..

    Как вообще люди живут с этим?
  3. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.270
    Симпатии:
    106
    Баллы:
    104
    Хм. тут у вас что-то не стандартное! =)
    Остатки то хранятся в разрезе характеристик или?
    А проблема с дублированием от того, что на одну и ту же ссылку номенклатуры приходится несколько характеристик и выводится все в дин.списке.
    Без повторяющихся верно отрабатывает - строки-то разные:
    карандаш-синий
    карандаш-красный
    строки не повторяются, а ссылки на номенклатуру повторяются
  4. TopicStarter Overlay
    Silapil
    Offline

    Silapil Опытный в 1С

    Регистрация:
    25 авг 2017
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Это я понимаю. Как можно сделать, чтобы он ска, показывал-таки повторяющиеся карточки (с разными характеристиками)?
  5. TopicStarter Overlay
    Silapil
    Offline

    Silapil Опытный в 1С

    Регистрация:
    25 авг 2017
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Я понимаю, что один и тот же товар с разными характеристиками будет давать одинаковые ссылки. Но ведь должен же быть способ решения этой проблемы? Может не динамический список, а статичный сделать?
  6. TopicStarter Overlay
    Silapil
    Offline

    Silapil Опытный в 1С

    Регистрация:
    25 авг 2017
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Сделал динамический список справочника характеристик. Почти получилось.. Стал отображать и характеристики и владельца. Помогите вот с чем:

    1. Отображается далеко не вся номенклатура. Только часть. Если лазить по иерархии, то натыкаюсь на ошибку:

    {ОбщийМодуль.ОбщегоНазначения.Модуль(94)}: Ошибка при вызове метода контекста (Выполнить)
    Выборка = Запрос.Выполнить().Выбрать();
    по причине:
    {(3, 2)}: Поле не найдено "Родитель"
    <<?>>Родитель КАК Родитель

    Безымянный.png

    2. Как сгруппировать таким образом, чтобы Наименование характеристики было вложено во владельца одной строкой?

    ВЫБРАТЬ
    СправочникХарактеристикиНоменклатуры.Ссылка,
    СправочникХарактеристикиНоменклатуры.ПометкаУдаления,
    СправочникХарактеристикиНоменклатуры.Владелец КАК Родитель,
    СправочникХарактеристикиНоменклатуры.Наименование КАК НаименованиеХарактеристики,
    СправочникХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ДопРеквизитыХарактеристики,
    СправочникХарактеристикиНоменклатуры.Предопределенный,
    СправочникХарактеристикиНоменклатуры.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанныхХарактеристики,
    ВариантыКомплектацииНоменклатуры.Ссылка КАК СоставНабора,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК Остаток,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних_Розн.Цена, 0) КАК ЦенаРозн,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних_Закуп.Цена, 0) КАК ЦенаЗакуп
    ИЗ
    Справочник.ХарактеристикиНоменклатуры КАК СправочникХарактеристикиНоменклатуры
    {ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
    ПО (ВариантыКомплектацииНоменклатуры.Владелец = &Владелец)
    И (ВариантыКомплектацииНоменклатуры.Владелец.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор))
    И (ВариантыКомплектацииНоменклатуры.Характеристика = СправочникХарактеристикиНоменклатуры.Ссылка)}
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки
    ПО (ТоварыНаСкладахОстатки.Номенклатура = СправочникХарактеристикиНоменклатуры.Ссылка)
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ЦенаРозничная) КАК ЦеныНоменклатурыСрезПоследних_Розн
    ПО (ЦеныНоменклатурыСрезПоследних_Розн.Номенклатура = СправочникХарактеристикиНоменклатуры.Ссылка)
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ЦенаЗакупочная) КАК ЦеныНоменклатурыСрезПоследних_Закуп
    ПО (ЦеныНоменклатурыСрезПоследних_Закуп.Номенклатура = СправочникХарактеристикиНоменклатуры.Ссылка)
    --- Объединение сообщений, 7 сен 2017 ---
    Может это как раз из-за отсутствия характеристик у некоторой номенклатуры?
  7. nsk1C
    Online

    nsk1C Профессионал в 1С

    Регистрация:
    25 май 2016
    Сообщения:
    2.151
    Симпатии:
    195
    Баллы:
    104
  8. TopicStarter Overlay
    Silapil
    Offline

    Silapil Опытный в 1С

    Регистрация:
    25 авг 2017
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Ды а смысл мне свою писанину оставлять на всеобщее обозрение просто так? Другое дело если б на этом форуме помогали...
  9. nsk1C
    Online

    nsk1C Профессионал в 1С

    Регистрация:
    25 май 2016
    Сообщения:
    2.151
    Симпатии:
    195
    Баллы:
    104
    А смысл Вам помогать, если ответы после удаления всех сообщений ТС становятся непонятными, бессмысленными и пустой тратой времени для отвечающих и впоследствии ищущих ответы на такие же вопросы
  10. TopicStarter Overlay
    Silapil
    Offline

    Silapil Опытный в 1С

    Регистрация:
    25 авг 2017
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Смысл в том, что Причина это вы (помощь, вернее ее отсутствие), а Следствие это я. Сказал же, была б помощь, не удалял бы
  11. nsk1C
    Online

    nsk1C Профессионал в 1С

    Регистрация:
    25 май 2016
    Сообщения:
    2.151
    Симпатии:
    195
    Баллы:
    104
    Это не я. Я даже не успел прочесть удаленный вопрос и обсуждение

    А Причина в том, чо Вы запостили свой вопрос в несоответствующий вопросу форум,
    с которого у меня не настроены уведомления
    Последнее редактирование: 9 сен 2017
  12. TopicStarter Overlay
    Silapil
    Offline

    Silapil Опытный в 1С

    Регистрация:
    25 авг 2017
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Ды я не конкретно по вас. Я имел в виду всех жителей форума))) ну да ладно, не судьба значит