Вход | Регистрация

1С:Предприятие ::

Метки:

отчет о движении денежных средств

Я
   Kill - John
 
08.04.04 - 06:05
Перем Счет;

//*******************************************

Процедура ПриВыбореСчета()
   Счет = еСчет.ПолучитьЗначение(еСчет.ТекущаяСтрока());
КонецПроцедуры

Процедура Сформировать()
                                    
    ТаблСубк = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Мой)

    |Период с Дата1 по Дата2;
    |Движ = Операция.Субконто.ДвиженияДенежныхСредств;
    |Сч =  Операция.Счет;
    |Сум = Операция.Сумма;
    |Док = Операция.ТекущийДокумент;
    |Условие (Лев(Сч,2) = Счет);
    |Группировка Движ;
    |Группировка Док;
    |Функция Сум2 = Сумма(Сум/2);<<-- почему то сумма в 2 раза больше получается, приходится делить на 2
    |Функция СумСНД = СНД(Сум);
    |Функция СумСКД = СКД(Сум);
    //}}ЗАПРОС";

    
    Если ТаблСубк.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    
    ТаблСубк.Выгрузить(ТТ,0,0);
    ВрТабл = СоздатьОбъект("ТаблицаЗначений");
    ТаблСубк.Выгрузить(ВрТабл,0,0);
//    Возврат;

    
    Т = СоздатьОбъект("Таблица");
    Т.ИсходнаяТаблица("Таблица");

    Т.ВывестиСекцию("Заголовок");
    Т.ВывестиСекцию("ОстНач");
    ВрТабл.ВыбратьСтроки();
    Пока ВрТабл.ПолучитьСтроку() = 1 Цикл
        Если ПустоеЗначение(ВрТабл.Док) = 1 Тогда
            Т.ВывестиСекцию("Табл");
        Иначе
            Если ПечДок = 1 Тогда
                Т.ВывестиСекцию("Док");
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Т.ВывестиСекцию("ОстКон");

    Т.ТолькоПросмотр(1);
    Т.Показать("Движение денежных средств");
КонецПроцедуры

Процедура ПриОткрытии()
    еСчет.ДобавитьЗначение("50");
    еСчет.ДобавитьЗначение("51");
    еСчет.ТекущаяСтрока(1);   
    ПриВыбореСчета();
КонецПроцедуры            

Может есть какие предложения как сделать по другому.
 
  Рекламное место пустует
   427
 
1 - 08.04.04 - 06:11
Использовать БИ.... и все взлетит ....
   Kill - John
 
2 - 08.04.04 - 06:38
Как через БИ получить документы?
   427
 
3 - 08.04.04 - 07:09
Би.Операция.Документ
   Поп Гапон
4 - 08.04.04 - 08:06
(0) А зачем по другому?
Сумма у тебя двоится потому что ты используешь
|Сч =  Операция.Счет; - и ты перебираешь каждую проводку 2 раза

Используй Сч = Операция.Дебет.Счет или Сч = Операция.Кредит.Счет.


Условие (Лев(Сч,2) = Счет); - сильно тормозит работу запроса.
Для оптимизации запроса должно быть примерно так:

Условие (Сч в СписСч);

или

Условие (Сч = счКонкретныйСчет);

Подробнее про оптимизацию есть на диске ИТС.


Список тем форума
  Рекламное место пустует
Прочитай, хотя бы, Митичкина "Разработка в системе 1С:Предприятие 8". Волшебник
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует