Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0
Помогите написать процедуру! Написать отчет, в котором будут выводится остатки по всем балансовым счетам (из плана счетов), у которых есть ненулевое сальдо на заданную дату (задается в форме).
Процедура Сформировать() Таб = СоздатьОбъект("Таблица");//будем все выводить в таблицу Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,,,, 1,, "С"); //выполняем запрос Таб.ВывестиСекцию("Шапка"); //выводим заголовок таблицы Таб.Опции(0,0,Таб.ВысотаТаблицы(),0); Ит.ВыбратьСчета(); //открываем выборку по счетам Пока Ит.ПолучитьСчет() = 1 Цикл сч=Ит.Счет;//получили номер счета //получаем итоги по каждому счету СНД=Ит.СНД(); СНК=Ит.СНК(); СКД=Ит.СКД(); СКК=Ит.СКК(); До=Ит.ДО(); КО=Ит.КО(); Таб.ВывестиСекцию("Счет");//выводим итоги в таблицу КонецЦикла; //а вот здесь, когда выборка не открыта (или уже закрыта) //можно получить отоги сразу по всем счетам. СНД=Ит.СНД(); СНК=Ит.СНК(); СКД=Ит.СКД(); СКК=Ит.СКК(); До=Ит.ДО(); КО=Ит.КО(); Таб.ВывестиСекцию("Подвал"); Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать",""); КонецПроцедуры
Процедура ПриОткрытии() //это чтобы не вводить каждый раз даты ВыбНачПериода = НачалоПериодаБИ(); ВыбКонПериода = КонецПериодаБИ(); КонецПроцедуры
Страниц: [1] Ответ | Уведомлять | Добавить голосование | Отправить эту тему | Печать
Ага..нужно спрограммировать..так как он сейчас выводить оборот сальдо...а нужно остатки по всем балансовым счетам (из плана счетов), у которых есть ненулевое сальдо.Что добавить и что изщминить чтобы оно подходило к условию задачи?
Итоги = СоздатьОбъект("БухгалтерскиеИтоги"); // Получаем ссылку на бухгалтерские итоги Итоги.ПериодД(НачДата, КонДата); // устанавливаем произвольный период - с НачДата по КонДата Счета = СоздатьОбъект("Счет"); // получаем ссылку на список счетов Счета.ВыбратьСчета(); // открываем выборку для перебора Пока Счета.ПолучитьСчет()=1 Цикл // перебираем счета Счет = Счета.ТекущийСчет(); // получаем ссылку на счет в выборке // теперь можно отсеять ненужные нам счета // например, не будем проверять забалансовые счета и группы Если (Счет.Забалансовый = 1)ИЛИ(Счет.ЭтоГруппа()=1) Тогда Продолжить; КонецЕсли; // получаем остатки и обороты счета СНД = Итоги.СНД(Счет); СНК = Итоги.СНК(Счет); СКД = Итоги.СКД(Счет); СКК = Итоги.СКК(Счет); ДО = Итоги.ДО(Счет); КО = Итоги.КО(Счет);
Если (СНД<>0)ИЛИ(СНК<>0)ИЛИ(СКД<>0)ИЛИ(СКК<>0)ИЛИ(ДО<>0)ИЛИ(КО<>0) Тогда Таб.ВывестиСекцию("Строка"); // выводим результат в секцию Строка // наращиваем итоги ИтогСНД = ИтогСНД +СНД; ИтогСНК = ИтогСНК +СНК; ИтогСКД = ИтогСКД +СКД; ИтогСКД = ИтогСКК +СКК; ИтогДО = ИтогДО +ДО; ИтогКО = ИтогКО +КО; КонецЕсли; КонецЦикла;
Таб.ВывестиСекцию("Подвал"); // Выводим итоговую секцию таблицы Таб.ТолькоПросмотр(1); // устанавливаем режим просмотра Таб.Опции(0,0,0,0); // устанавливаем опции вывода таблицы на экран Таб.Показать("Отчет"); // показываем таблицу на экране с заголовком "Отчет" КонецПроцедуры
Процедура ПриОткрытии() //это чтобы не вводить каждый раз даты НачДата = НачалоПериодаБИ(); КонДата = КонецПериодаБИ(); КонецПроцедуры
Итоги = СоздатьОбъект("БухгалтерскиеИтоги"); // Получаем ссылку на бухгалтерские итоги Итоги.ПериодД(НачДата, КонДата); // устанавливаем произвольный период - с НачДата по КонДата Счета = СоздатьОбъект("Счет"); // получаем ссылку на список счетов Счета.ВыбратьСчета(); // открываем выборку для перебора Пока Счета.ПолучитьСчет()=1 Цикл // перебираем счета Счет = Счета.ТекущийСчет(); // получаем ссылку на счет в выборке // теперь можно отсеять ненужные нам счета // например, не будем проверять забалансовые счета и группы Если (Счет.Забалансовый = 1)ИЛИ(Счет.ЭтоГруппа()=1) Тогда Продолжить; КонецЕсли; // получаем остатки и обороты счета СНД = Итоги.СНД(Счет); СНК = Итоги.СНК(Счет); СКД = Итоги.СКД(Счет); СКК = Итоги.СКК(Счет); ДО = Итоги.ДО(Счет); КО = Итоги.КО(Счет);
Если (СНД<>0)ИЛИ(СНК<>0)ИЛИ(СКД<>0)ИЛИ(СКК<>0)ИЛИ(ДО<>0)ИЛИ(КО<>0) Тогда Таб.ВывестиСекцию("Строка"); // выводим результат в секцию Строка // наращиваем итоги ИтогСНД = ИтогСНД +СНД; ИтогСНК = ИтогСНК +СНК; ИтогСКД = ИтогСКД +СКД; ИтогСКД = ИтогСКК +СКК; ИтогДО = ИтогДО +ДО; ИтогКО = ИтогКО +КО; КонецЕсли; КонецЦикла;
Таб.ВывестиСекцию("Подвал"); // Выводим итоговую секцию таблицы Таб.ТолькоПросмотр(1); // устанавливаем режим просмотра Таб.Опции(0,0,0,0); // устанавливаем опции вывода таблицы на экран Таб.Показать("Отчет"); // показываем таблицу на экране с заголовком "Отчет" КонецПроцедуры
Процедура ПриОткрытии() //это чтобы не вводить каждый раз даты НачДата = НачалоПериодаБИ(); КонДата = КонецПериодаБИ(); КонецПроцедуры
Огромное человеческое спасибо!!!Не подскажите как должна выглядеть таблица вывода?!
Группа: Местный
Сообщений: 70
Спасибо сказали: 17 раз
Рейтинг: 0
Цитата(Павлов Сергей 48 @ 20.02.10, 17:55)
Помогите написать процедуру! ....
Сергей .. и не только ... Берите пример с malexmen 5 пост (http://pro1c.org.ua/index.php?showtopic=1355&st=0&p=7933&#entry7933) Ему помогли , а в ответ он тоже посчитал нужным выложить готовый отчет, может еще кому то пригодиться..
Пи/СИ.. Пока я кушал, уже отчетик выложили. маленько опоздал.. ну ничего. другие почитают..
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!