Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=1391)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ тчет, в котором будут выводи Написать отчет, в котором будут выводится остатки по всем балансовым счетатся остатки по всем балансовым счетам (из плана

Автор: Павлов Сергей 48 20.02.10, 16:55

Помогите написать процедуру! Написать отчет, в котором будут выводится остатки по всем балансовым счетам (из плана счетов), у которых есть ненулевое сальдо на заданную дату (задается в форме).

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

Процедура ПриОткрытии()
//это чтобы не вводить каждый раз даты
ВыбНачПериода = НачалоПериодаБИ();
ВыбКонПериода = КонецПериодаБИ();
КонецПроцедуры





Страниц: [1] Ответ | Уведомлять | Добавить голосование | Отправить эту тему | Печать

Автор: zetovich 20.02.10, 17:02

закуриваем 2 попиросу...открываем отчет "Оборотно сальдовая ведомость"

Автор: Павлов Сергей 48 20.02.10, 17:18

Цитата(zetovich @ 20.02.10, 19:02) *
закуриваем 2 попиросу...открываем отчет "Оборотно сальдовая ведомость"



Ага..нужно спрограммировать..так как он сейчас выводить оборот сальдо...а нужно остатки по всем балансовым счетам (из плана счетов), у которых есть ненулевое сальдо.Что добавить и что изщминить чтобы оно подходило к условию задачи?

Автор: Ardi 20.02.10, 21:53

Магические слова "Если ... Тогда ... КонецЕсли;" помогут 100%

Автор: Павлов Сергей 48 21.02.10, 18:08

Цитата(Ardi @ 20.02.10, 23:53) *
Магические слова "Если ... Тогда ... КонецЕсли;" помогут 100%

Неподскажите как его правильно записать и в какое место его вставить?!Заранеее спасибо))))

Автор: sarius 21.02.10, 19:13

Так как отбор субконто как я вижу ни к чему - то запрос нужно немного... переделать..
Например, это будет вот так выглядеть

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

Процедура ПриОткрытии()
//это чтобы не вводить каждый раз даты
НачДата = НачалоПериодаБИ();
КонДата = КонецПериодаБИ();
КонецПроцедуры

Автор: Павлов Сергей 48 21.02.10, 20:31

Цитата(sarius @ 21.02.10, 21:13) *
Так как отбор субконто как я вижу ни к чему - то запрос нужно немного... переделать..
Например, это будет вот так выглядеть
//*******************************************
Процедура Сформировать()
    Таб = СоздатьОбъект("Таблица");                 // Получаем ссылку на объект типа Таблица
    Таб.ИсходнаяТаблица("Таблица");                // Устанавливаем таблицу для вывода
    Таб.ВывестиСекцию("Шапка");                    // Выводим заголовок отчета
    
    // Готовим итоговые суммы
    ИтогСНД = 0;                                    
    ИтогСНК = 0;    
    ИтогСКД = 0;    
    ИтогСКК = 0;    
    ИтогДО  = 0;    
    ИтогКО  = 0;    
    
    Итоги = СоздатьОбъект("БухгалтерскиеИтоги");     // Получаем ссылку на бухгалтерские итоги
    Итоги.ПериодД(НачДата, КонДата);                // устанавливаем произвольный период - с НачДата по КонДата
    Счета = СоздатьОбъект("Счет");                 // получаем ссылку на список счетов
    Счета.ВыбратьСчета();                         // открываем выборку для перебора
    Пока Счета.ПолучитьСчет()=1 Цикл                 // перебираем счета
        Счет = Счета.ТекущийСчет();                 // получаем ссылку на счет в выборке
    // теперь можно отсеять ненужные нам счета
    // например, не будем проверять забалансовые счета и группы
        Если (Счет.Забалансовый = 1)ИЛИ(Счет.ЭтоГруппа()=1) Тогда
            Продолжить;
        КонецЕсли;
    // получаем остатки и обороты счета
        СНД = Итоги.СНД(Счет);
        СНК = Итоги.СНК(Счет);
        СКД = Итоги.СКД(Счет);
        СКК = Итоги.СКК(Счет);
        ДО  = Итоги.ДО(Счет);
        КО  = Итоги.КО(Счет);
        
        Если (СНД<>0)ИЛИ(СНК<>0)ИЛИ(СКД<>0)ИЛИ(СКК<>0)ИЛИ(ДО<>0)ИЛИ(КО<>0) Тогда
            Таб.ВывестиСекцию("Строка");            // выводим результат в секцию Строка
    // наращиваем итоги
            ИтогСНД = ИтогСНД +СНД;
            ИтогСНК = ИтогСНК +СНК;
            ИтогСКД = ИтогСКД +СКД;
            ИтогСКД = ИтогСКК +СКК;
            ИтогДО  = ИтогДО  +ДО;
            ИтогКО  = ИтогКО  +КО;
        КонецЕсли;
    КонецЦикла;
    
    Таб.ВывестиСекцию("Подвал");                    // Выводим итоговую секцию таблицы
    Таб.ТолькоПросмотр(1);                        // устанавливаем режим просмотра
    Таб.Опции(0,0,0,0);                            // устанавливаем опции вывода таблицы на экран
    Таб.Показать("Отчет");                        // показываем таблицу на экране с заголовком "Отчет"
КонецПроцедуры

Процедура ПриОткрытии()
//это чтобы не вводить каждый раз даты
НачДата = НачалоПериодаБИ();
КонДата = КонецПериодаБИ();
КонецПроцедуры

Огромное человеческое спасибо!!!Не подскажите как должна выглядеть таблица вывода?!

Автор: sarius 21.02.10, 20:43

Лови ссылку на отчетик
http://pro1c.org.ua/redirect.php?http://file.qip.ru/file/120524757/f88e8251/_online.html

Автор: dobraleks 21.02.10, 22:00

Цитата(Павлов Сергей 48 @ 20.02.10, 17:55) *
Помогите написать процедуру! ....

Сергей .. и не только ... Берите пример с malexmen 5 пост (http://pro1c.org.ua/index.php?showtopic=1355&st=0&p=7933&#entry7933)
Ему помогли , а в ответ он тоже посчитал нужным выложить готовый отчет, может еще кому то пригодиться..


Пи/СИ.. Пока я кушал, уже отчетик выложили. маленько опоздал.. ну ничего. другие почитают..

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua