А как можно реализовать отображение характеристик номенклатуры в списке? У каждой номенклатуры может быть несколько характеристик.. Вот думаю, что нужно отображать в списке каждую характеристику одного и того-же товара новой строкой... Как быть?
Хочу так:
Помогите пожалуйста дополнить мой код:
ВЫБРАТЬ РАЗЛИЧНЫЕ
СпрНоменклатура.Ссылка КАК Ссылка,
СпрНоменклатура.Код КАК Код,
СпрНоменклатура.Наименование КАК Наименование,
СпрНоменклатура.Артикул КАК Артикул,
СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
СпрНоменклатура.Родитель,
ВЫБОР
КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
ТОГДА4 + ВЫБОР
КОГДА СпрНоменклатура.ПометкаУдаления
ТОГДА1ИНАЧЕ0
КОНЕЦ + ВЫБОР
КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
ТОГДА0ИНАЧЕ2
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА СпрНоменклатура.ПометкаУдаления
ТОГДА1ИНАЧЕ0
КОНЕЦ + ВЫБОР
КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
ТОГДА0ИНАЧЕ2
КОНЕЦ
КОНЕЦ КАК ИндексКартинки,
ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК Остаток,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних_Розн.Цена, 0) КАК ЦенаРозн,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних_Закуп.Цена, 0) КАК ЦенаЗакуп
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки
ПО (ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ЦенаЗакупочная) КАК ЦеныНоменклатурыСрезПоследних_ЗакупПО (ЦеныНоменклатурыСрезПоследних_Закуп.Номенклатура = СпрНоменклатура.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ЦенаРозничная) КАК ЦеныНоменклатурыСрезПоследних_РознПО (ЦеныНоменклатурыСрезПоследних_Розн.Номенклатура = СпрНоменклатура.Ссылка)
ГДЕ
НЕ СпрНоменклатура.ЭтоГруппа
{ГДЕ
(СпрНоменклатура.Ссылка В
(ВЫБРАТЬ
Сегменты.Номенклатура
ИЗ
РегистрСведений.НоменклатураСегмента КАК Сегменты
ГДЕ
Сегменты.Сегмент = &СегментНоменклатуры))}
И попутный вопрос, код вроде верный, но почему пишет ошибку - "Обнаружено дублирование ключевых значений в колонке ссылка"?? в "Дополнительно" - "Выборка записей" стоит галка "Без повторяющихся"...
Живет на форуме
Группа: Местный
Сообщений: 2920
Из: Київ, Україна
Спасибо сказали: 1239 раз
Рейтинг: 1345.6
Bulzavr @ Вчера, 20:36
, "Без повторяющихся" означает отсутствие записей с одинаковыми значениями по всем полям. Вам же надо обеспечить уникальность записей по полю "ссылка".
Допрацьовую: - "Бухгалтерія для України 2.1"; - "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".
Ветеран
Группа: Местный
Сообщений: 859
Из: Місто щасливих людей
Спасибо сказали: 335 раз
Рейтинг: 261
Bulzavr @ Сегодня, 10:04
, Не так то что , данный запрос может вам задвоить строки и у вас одинаковая ссылка может встречаться в двух строках - пример: один и тот же товар есть на разных складах - вот вам и две строки, соответственно "дублирование ключевого значения".
Такое сообщение возникает когда в динамическом списке установлена основная таблица - если её убрать то сообщения не будет, но тогда вам ручками надо будет реализовать все стандартные кнопки командной панели: Создать, Изменить, Копировать и т.д.
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Ветеран
Группа: Местный
Сообщений: 859
Из: Місто щасливих людей
Спасибо сказали: 335 раз
Рейтинг: 261
Bulzavr @ Сегодня, 11:23
, Насколько знаю нет, может кто-то что-то предложит другое. Я когда-то писал свои обработчики в такой ситуации, не то чтобы аж очень много кода и что-то сложное, но жаба душит учитывая то, что знаешь что кнопки стандартные и могли бы без этого обойтись
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Живет на форуме
Группа: Местный
Сообщений: 2752
Из: Проскуров
Спасибо сказали: 709 раз
Рейтинг: 688.5
Цитата(Bernet @ 06.09.17, 10:06)
данный запрос может вам задвоить строки и у вас одинаковая ссылка может встречаться в двух строках - пример: один и тот же товар есть на разных складах - вот вам и две строки, соответственно "дублирование ключевого значения".
Ветеран
Группа: Местный
Сообщений: 859
Из: Місто щасливих людей
Спасибо сказали: 335 раз
Рейтинг: 261
sava1 @ Сегодня, 11:48
, Вывод оттуда, что у человека в запросе левым соединением к справочнику Номенклатура подсоединяются остатки, связь только по номенклатуре, соответственно если есть товар на нескольких складах - столько строк и получим.
То что выдаст такое сообщение - проверено на практике, если эта динамический список откуда потом мы хотим открывать/создавать/копировать элементы основной таблицы, то ключевое поле должно быть без дубля. Т.е. если в списке будет две строки он матюкнется что есть две строки и нифига в динамический список не выведет. В виду этого, я убирал основную таблицу и реализовывал Создание/Изменение/Копирование нужных мне элементов
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Ветеран
Группа: Местный
Сообщений: 859
Из: Місто щасливих людей
Спасибо сказали: 335 раз
Рейтинг: 261
sava1 @ Сегодня, 11:57
, Пардон, не увидел что Склад в выборку не попадает.
Но сути не меняет: раз выдает такое сообщение значит есть две строки с одинаковой ссылкой, а в таком случае либо делать так чтобы эта ссылка была одна, либо так как писал я - реализовывать командную панель самостоятельно
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Так как решить-то? Чесслово не понимаю, почему сделали так, как есть изначально.. Ведь неудобно же!
У меня например есть на складе 10 карандашей. 5 синих и 5 красных. Как в списке номенклатуры смотреть остаток, если отображаетс "карандаш: 10шт"? Прайс смотреть не вариант каждый раз. Нужно видеть оставшиеся цвета в списке номенклатуры..
Про1С-ник
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0
Цитата(Bulzavr @ 06.09.17, 18:03)
Как вообще люди живут с этим?
Используют характеристики. Как правило в типовых торговых конфигурациях есть функционал который позволяет видеть остатки по характеристикам, в подборе, или отдельном поле, при нажатии на номенклатуру.
Личные бесплатные консультации не даю, для этого есть форум!
Я использую характеристики и у меня голая типовая УТ11, в которой не видно характеристик в списке номенклатуры ни в каких окнах. Чтобы посмотреть остаток по характеристикам, приходится формировать прайс-лист! Или я чурка?
Я понимаю, что один и тот же товар с разными характеристиками будет давать одинаковые ссылки. Но ведь должен же быть способ решения этой проблемы? Может не динамический список, а статичный сделать?
Сделал динамический список справочника характеристик. Почти получилось.. Стал отображать и характеристики и владельца. Помогите вот с чем:
1. Отображается далеко не вся номенклатура. Только часть. Если лазить по иерархии, то натыкаюсь на ошибку:
{ОбщийМодуль.ОбщегоНазначения.Модуль(94)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(3, 2)}: Поле не найдено "Родитель"
<<?>>Родитель КАК Родитель
2. Как сгруппировать таким образом, чтобы Наименование характеристики было вложено во владельца одной строкой?
ВЫБРАТЬ
СправочникХарактеристикиНоменклатуры.Ссылка,
СправочникХарактеристикиНоменклатуры.ПометкаУдаления,
СправочникХарактеристикиНоменклатуры.Владелец КАК Родитель,
СправочникХарактеристикиНоменклатуры.Наименование КАК НаименованиеХарактеристики,
СправочникХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ДопРеквизитыХарактеристики,
СправочникХарактеристикиНоменклатуры.Предопределенный,
СправочникХарактеристикиНоменклатуры.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанныхХарактеристики,
ВариантыКомплектацииНоменклатуры.Ссылка КАК СоставНабора,
ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК Остаток,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних_Розн.Цена, 0) КАК ЦенаРозн,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних_Закуп.Цена, 0) КАК ЦенаЗакуп
ИЗ
Справочник.ХарактеристикиНоменклатуры КАК СправочникХарактеристикиНоменклатуры
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
ПО (ВариантыКомплектацииНоменклатуры.Владелец = &Владелец)И (ВариантыКомплектацииНоменклатуры.Владелец.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор))
И (ВариантыКомплектацииНоменклатуры.Характеристика = СправочникХарактеристикиНоменклатуры.Ссылка)}
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки
ПО (ТоварыНаСкладахОстатки.Номенклатура = СправочникХарактеристикиНоменклатуры.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ЦенаРозничная) КАК ЦеныНоменклатурыСрезПоследних_РознПО (ЦеныНоменклатурыСрезПоследних_Розн.Номенклатура = СправочникХарактеристикиНоменклатуры.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ЦенаЗакупочная) КАК ЦеныНоменклатурыСрезПоследних_ЗакупПО (ЦеныНоменклатурыСрезПоследних_Закуп.Номенклатура = СправочникХарактеристикиНоменклатуры.Ссылка)
Может это как раз из-за отсутствия характеристик у некоторой номенклатуры?
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!