Имя: Пароль:
1C
1С v8
Каким образом получить результат из запроса и добавить определенные условия
0 Aleks_set
 
11.01.18
17:43
// Еще раз здравствуйте. Я не силен в 1с - только учусь, поэтому и нужен совет специалистов.
// Написал запрос, написал необходимое условие.
Запрос.Текст = "ВЫБРАТЬ
                    |    СкладскиеЯчейки.Ссылка КАК Ячейка,
                    |    ТоварыВЯчейкахОстатки.ВНаличииОстаток,
                    |    ТоварыВЯчейкахОстатки.Назначение
                    |ИЗ
                    |    Справочник.СкладскиеЯчейки КАК СкладскиеЯчейки
                    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВЯчейках.Остатки КАК ТоварыВЯчейкахОстатки
                    |        ПО (ТоварыВЯчейкахОстатки.Ячейка = СкладскиеЯчейки.Ссылка)
                    |
                    |УПОРЯДОЧИТЬ ПО
                    |    СкладскиеЯчейки.Ссылка УБЫВ
                    |;
                    |
                    |////////////////////////////////////////////////////////////////////////////////
                    |ВЫБРАТЬ
                    |    СкладскиеЯчейки.Ссылка КАК Ячейка,
                    |    ТоварыВЯчейкахОстатки.ВНаличииОстаток,
                    |    ТоварыВЯчейкахОстатки.Назначение,
                    |    ТоварыВЯчейкахОстатки.Номенклатура,
                    |    НоменклатураДополнительныеРеквизиты.Свойство,
                    |    НоменклатураДополнительныеРеквизиты.Значение
                    |ПОМЕСТИТЬ ВТ_Расчет
                    |ИЗ
                    |    Справочник.СкладскиеЯчейки КАК СкладскиеЯчейки
                    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВЯчейках.Остатки КАК ТоварыВЯчейкахОстатки
                    |            ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
                    |                ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
                    |                ПО Номенклатура.Ссылка = НоменклатураДополнительныеРеквизиты.Ссылка
                    |            ПО (ТоварыВЯчейкахОстатки.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка)
                    |        ПО (ТоварыВЯчейкахОстатки.Ячейка = СкладскиеЯчейки.Ссылка)
                    |ГДЕ
                    |    НоменклатураДополнительныеРеквизиты.Свойство = &Свойство
                    |;
                    |
                    |////////////////////////////////////////////////////////////////////////////////
                    |ВЫБРАТЬ
                    |    ВТ_Расчет.Ячейка КАК Ячейка,
                    |    ВТ_Расчет.ВНаличииОстаток,
                    |    ВТ_Расчет.Назначение,
                    |    ВТ_Расчет.Свойство,
                    |    ВТ_Расчет.Значение,
                    |    ЕСТЬNULL(ВТ_Расчет.ВНаличииОстаток, 0) * ЕСТЬNULL(ВЫРАЗИТЬ(ВТ_Расчет.Значение КАК ЧИСЛО(5, 3)), 0) КАК ВысотаОбщая
                    |ИЗ
                    |    ВТ_Расчет КАК ВТ_Расчет
                    |ИТОГИ
                    |    СУММА(ВысотаОбщая)
                    |ПО
                    |    Ячейка";    
    
    Запрос.УстановитьПараметр("Свойство",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВысотаМатраса(Продукция)"));
     Результат = Запрос.Выполнить().Выбрать();
     Пока Результат.Следующий() Цикл
            Если НовСтрока.Назначение = Результат.Назначение и Результат.Сумма(Высотаобщая)<2,5 тогда НовСтрока.Ячейка = Результат.Ячейка
              иначе
                если Результат.ВНаличии = NULL Тогда
                НовСтрока.Ячейка = Результат.Ячейка;                                     
        конецесли;
    //конецесли;
  КонецЦикла;
// мне нужно чтобы из 1 запроса пакета - брались пустые ячейки(если Результат.ВНаличии = NULL), а из 3 запроса(ВТ)Результат.Назначение и Результат.Сумма(Высотаобщая)<2,5
//ЧТо я делаю не так? где намудрил? Подскажите пожалуйста.
1 Мандалай
 
11.01.18
17:53
Во первых - ВыполнитьПакет, а не Выполнить. И из получившегося массива результатов ты выбираешь нужный результат и с ним работаешь (выборки и прочее).
А во-вторых, по хорошему консоль запросов тебе в помощь. Если будешь качать с its то запускать придется в толстом клиенте (там конструктор работает), если стороннюю найдешь, то можно и в тонком.
И в консолях есть кнопочка просмотра временных таблиц - вот там как раз ты и увидишь все что надо.
2 Вафель
 
11.01.18
18:00
возьми для обучения задачу по проще. это пока на много уровней выше того что ты можешь
3 Aleks_set
 
11.01.18
19:08
все тему свернул. все получилось. Спасибо Мандалай.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.