Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1С Программирование и поддержка (1C)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Tapas77789



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

Всего записей: 70 | Зарегистр. 26-05-2008 | Отправлено: 12:17 29-02-2016 | Исправлено: Tapas77789, 12:43 29-02-2016
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1С Программирование и поддержка (1C)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru