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

как вытащить данные

Автор sali, Сегодня в 13:43

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

sali

мне нужно в одну колонку вытащить данные номенклатуры и ее характеристику(отдельный спр) если такая имеется . допустим у товара 2 х-ка, значит должно быть 3 строки:
товар
товар + 1 х-ка
товар + 2 х-ка

я делаю в консоли запросов и консоли скд, через объединение - выводились 3 строки. делаю в конфе - выводиться две строки с владельцем (основной номенклатурой) без х-ка
пробовал в скд через отдельный набор данных , та же фигня
что за фигня?

sali

и без объединения , просто выбирал 2 спр и устанавливал связи

antoneus

И тут мы все такие поняли, как именно ты делаешь это "в конфе".

sali

antoneus, перевожу запрос туда
        ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СправочникНоменклатура.Ссылка КАК номенклатура,
    ИСТИНА КАК выбран,
    NULL КАК Характеристика
{ВЫБРАТЬ
    номенклатура.*,
    выбран,
    Характеристика}
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
ГДЕ
    НЕ СправочникНоменклатура.ПометкаУдаления
    И НЕ СправочникНоменклатура.ЭтоГруппа
    и СправочникНоменклатура.ссылка = &ссылка
{ГДЕ
    СправочникНоменклатура.Ссылка.* КАК Номенклатура}

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

ВЫБРАТЬ
    ХарактеристикиНоменклатуры.Ссылка,
    ИСТИНА,
    ХарактеристикиНоменклатуры.Владелец.Наименование + ", " + ХарактеристикиНоменклатуры.Наименование
ИЗ
    Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры

sali

у меня это выходит так , с таким запросом в скд
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СправочникНоменклатура.Ссылка КАК номенклатура,
ИСТИНА КАК выбран,
NULL КАК Характеристика
{ВЫБРАТЬ
номенклатура.*,
выбран,
Характеристика}
ИЗ
Справочник.Номенклатура КАК СправочникНоменклатура
ГДЕ
НЕ СправочникНоменклатура.ПометкаУдаления
И НЕ СправочникНоменклатура.ЭтоГруппа
{ГДЕ
СправочникНоменклатура.Ссылка.* КАК Номенклатура}

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

ВЫБРАТЬ
ХарактеристикиНоменклатуры.Владелец,
ИСТИНА,
ХарактеристикиНоменклатуры.Ссылка
ИЗ
Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
{ГДЕ
ХарактеристикиНоменклатуры.Владелец.* КАК Номенклатура}

antoneus

На скрине что? ТЗ на форме?

sali

ДА
колонки - номенклатура, характеристика , еи ,артикул создаются программно

antoneus

Как заполняется? Тип, наименование колонки совпадают?

sali

да. х-ка тупо пустое, наименование копировал и подставлял везде
    ИмяМакета = ПолучитьИмяМакета();
   
    СхемаКомпоновкиДанных = Обработки.ЭДОН_РабочееМесто.ПолучитьМакет(ИмяМакета);
   
    УстановитьЗначениеПараметраСКД(КомпоновщикНастроек, "Организация", Справочники["Организации"].ОрганизацияПоУмолчанию());
   
    // Компоновка макета компоновки данных.
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(),,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
   
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
   
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    Если Режим = "Контрагенты" Тогда
        ТаблицаРезультат = Контрагенты.Выгрузить();
    Иначе
        ТаблицаРезультат = Товары.Выгрузить();
    КонецЕсли;
   
    ПроцессорВывода.УстановитьОбъект(ТаблицаРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);   

    Если Режим = "Контрагенты" Тогда
        Контрагенты.Загрузить(ТаблицаРезультат);
    Иначе     
        Товары.Загрузить(ТаблицаРезультат);
    КонецЕсли;   
   

antoneus

А так?

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

ТаблицаРезультат = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

Если Режим = "Контрагенты" Тогда
    Контрагенты.Загрузить(ТаблицаРезультат);
Иначе     
    Товары.Загрузить(ТаблицаРезультат);
КонецЕсли;

Теги:

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

Рейтинг@Mail.ru

Поиск