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

Подскажите с отчетом

Автор лось911, 23 апр 2011, 19:37

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

лось911

Доброго времени суток!
Помогите пожалуйста начинающему)
Дали отчет,который выводит план выпуска товара на месяц.
Попросили дописать выпуск товара
подскажи кто чем может)
1с 7.7. самописная

план по регистру План
выпуск по регистру ВыпускПродукции


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

            КонецЦикла;
           
    КонецЦикла;
    // Заполнение полей "Итого"
    Таб.ВывестиСекцию("Итого");
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры

prog1c7.7

а попробуй так же конструктором  :D   понемногу дойдешь

Теги:

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

Рейтинг@Mail.ru

Поиск