7.7 Нужна помощь в создании отчета

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем gnomich, 3 июн 2015.

  1. TopicStarter Overlay
    gnomich
    Offline

    gnomich

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

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

    КонецЕсли;
    Таб.ВывестиСекцию("Период");
    КонецЦикла;
    КонецЦикла;
    Таб.ВывестиСекцию("Подвал");
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать","");
    КонецПроцедуры
    подскажите как мне добавить группировку с итого по колонке "кто" Снимок1.JPG
  2. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Ребят если честно , то мне его жалко... май 2015.. человек решил поизучать 1С.. Семерку..
    Молодой человек.. задумайтесь пока не поздно..
  3. TopicStarter Overlay
    gnomich
    Offline

    gnomich

    Регистрация:
    21 май 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    это не творчество, а производственная необходимость.
  4. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Если по существу то давно не писал на семерке. Нужно сделать группировку по этому полю .
  5. TopicStarter Overlay
    gnomich
    Offline

    gnomich

    Регистрация:
    21 май 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    это я понимаю, собственно вопрос в этом и состоит, как сгрупиировать
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    В цикле где выводите в макет заполняйте ТаблицуЗначений...
    Ее результат уже можно группировать.
    В еще проще - использовать обычный запрос к документам. Там группировки есть
  7. TopicStarter Overlay
    gnomich
    Offline

    gnomich

    Регистрация:
    21 май 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    я еще не работал с таблицей значений, можно на моем примере что куда написать
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    вот через обычный запрос
    Код:
    Процедура Сформировать()
        Перем Запрос, ТекстЗапроса, Таб;
        //Создание объекта типа Запрос
        Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса =
        "//{{ЗАПРОС(Сформировать)
        |Период с ВыбНачПериода по ВыбКонПериода;
        |Стр = Документ.ПриходныйОрдер.ПринятоОт, Документ.РасходныйОрдер.Выдать;
        |ВидЗатрат = Документ.ПриходныйОрдер.Субконто1, Документ.РасходныйОрдер.Субконто1;
        |Основание = Документ.ПриходныйОрдер.Основание, Документ.РасходныйОрдер.Основание;
        |ДатаДок = Документ.РасходныйОрдер.ДатаДок, Документ.ПриходныйОрдер.ДатаДок;
        |ТекущийДокумент = Документ.ПриходныйОрдер.ТекущийДокумент, Документ.РасходныйОрдер.ТекущийДокумент;
        |Сумма = Документ.РасходныйОрдер.Сумма, Документ.ПриходныйОрдер.Сумма;
        |Функция СуммаСумма = Сумма(Сумма);
        |Группировка Стр;
        |Группировка ВидЗатрат;
        |"//}}ЗАПРОС
        ;
        // Если ошибка в запросе, то выход из процедуры
        Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
            Возврат;
        КонецЕсли;
    
        // Подготовка к заполнению выходных форм данными запроса
        Таб = СоздатьОбъект("Таблица");
        Таб.ИсходнаяТаблица("Сформировать");
        // Заполнение полей "Заголовок"
        Таб.ВывестиСекцию("Заголовок");
        Состояние("Заполнение выходной таблицы...");
        Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
        Пока Запрос.Группировка(1) = 1 Цикл
            // Заполнение полей Стр
            Таб.ВывестиСекцию("Стр");
            Пока Запрос.Группировка(2) = 1 Цикл
                // Заполнение полей ВидЗатрат
                Таб.ВывестиСекцию("ВидЗатрат");
            КонецЦикла;
        КонецЦикла;
        // Заполнение полей "Итого"
        Таб.ВывестиСекцию("Итого");
        // Вывод заполненной формы
        Таб.ТолькоПросмотр(1);
        Таб.Показать("Сформировать", "");
    КонецПроцедуры
    
  9. TopicStarter Overlay
    gnomich
    Offline

    gnomich

    Регистрация:
    21 май 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Скопируйте во внешнюю обработку...
    Запустите конструктор запросов...
    Ну и "пробежать"...
    Должен быть создан макет.. Только на форму выбор периода добавьте

Поделиться этой страницей