Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отбор по товару
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Mikle13
Здраствуйте! Подскажите пожалуста как мне добавить отбор по группе товаров щоб в таблице увидеть только те товари которые есть в группе и которые были выписаны в Расходной Накладной?

Вот код:

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб, ОтборСубконто1;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Контрагент = Документ.РасходнаяНакладная.Контрагент;
    |Наименование = Документ.РасходнаяНакладная.ТМЦ.Наименование;
    |Кво = Документ.РасходнаяНакладная.Кво;
    |ЦенаБезНДС = Документ.РасходнаяНакладная.ЦенаБезНДС;
    |Функция КвоСумма = Сумма(Кво);
    |Функция ЦенаБезНДССумма = Сумма(ЦенаБезНДС);
    |Группировка Контрагент упорядочить по Контрагент.Наименование;
    |Группировка Наименование без упорядочивания;
    |"//}}ЗАПРОС
;
    
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
            Таб.ВывестиСекцию("Контрагент");
        Пока Запрос.Группировка(2) = 1 Цикл
            // Заполнение полей Наименование
            Таб.ВывестиСекцию("Наименование");
        КонецЦикла;
    КонецЦикла;
    // Заполнение полей "Итого"
    Таб.ВывестиСекцию("Итого");
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры
Процедура ПриВыбореСубконто1()
    Если ПустоеЗначение(Субконто1) = 0 Тогда
        ОтборСубконто1 = 1;
    Иначе
        ОтборСубконто1 = 0;
    КонецЕсли;
КонецПроцедуры



 ! 

Правила п.2,12
 
MATEVI

 ! 

Последнее предупреждение! Ознакомьтесь с правилами.
Потом будете искать свои темы в корзине
 
mister-x
Цитата(Mikle13 @ 31.10.12, 11:43) необходимо зарегистрироваться для просмотра ссылки
отбор по группе товаров

питання якесь туманне. ІМХО. Тому уточняю: де вам потрібно реалізувати такий відбір - у Процедура ПриВыбореСубконто1() чи у запиті в Процедура Сформировать()? Якщо у запиті, то там є така конструкція як Условие + можна зробити групування по документу. Рекомендую переправити 2-ге групування наступним чином:
"//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Контрагент = Документ.РасходнаяНакладная.Контрагент;
    |Док = Документ.РасходнаяНакладная.ТекущийДокумент;
    |Наименование = Документ.РасходнаяНакладная.ТМЦ.Наименование;
    |Кво = Документ.РасходнаяНакладная.Кво;
    |ЦенаБезНДС = Документ.РасходнаяНакладная.ЦенаБезНДС;
    |Функция КвоСумма = Сумма(Кво);
    |Функция ЦенаБезНДССумма = Сумма(ЦенаБезНДС);
    |Группировка Контрагент упорядочить по Контрагент.Наименование;
    |Группировка Док  упорядочить по Док.ДатаДок;
    |"//}}ЗАПРОС

Для перевірки входження товару в групу в Условие є наступна конструкція В, для прикладу (псевдокод):
| Условие ВыбТМЦ в ГруппаТМЦ;
Mikle13
Процедура ПриВыбореСубконто1() мені потрібно
alex040269
тобто 2 умви - належить до групи та існує РН з цим товаром у табличній частині?
Mikle13
так!
alex040269
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Контрагент = Документ.РасходнаяНакладная.Контрагент;
    |Док = Документ.РасходнаяНакладная.ТекущийДокумент;
    |Наименование = Документ.РасходнаяНакладная.ТМЦ.Наименование;
    |Кво = Документ.РасходнаяНакладная.Кво;
    |ЦенаБезНДС = Документ.РасходнаяНакладная.ЦенаБезНДС;
    |ТМЦ = Документ.РасходнаяНакладная.ТМЦ;
    |Функция КвоСумма = Сумма(Кво);
    |Функция ЦенаБезНДССумма = Сумма(ЦенаБезНДС);
    |Группировка Контрагент упорядочить по Контрагент.Наименование;
    |Группировка Док упорядочить по Док.ДатаДок;
    |Условие(ТМЦ В ТМЦГруппа);
    |"//}}ЗАПРОС
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.