7.7 Запрос по субконто в ТиСе

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

  1. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте!

    Конфа Тис 9.2

    Хочу сделать отчет по доп затратам через документ ПоступлениеПрочее

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

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

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Где именно не выводит? В процедуре сформировать у вас вообще отсутствует цикл по документам.....
  3. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    отчет построен так чтобы выводилось 2 таблицы-

    в 1 таблице выводятся все субконто за период
    во 2 таблице, по клику на выбранное субконто в 1й таблице, должны выводиться данные только с этим субконто по датам
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
  5. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    вотъ

    Вложения:

    • усо.ert
      Размер файла:
      53 КБ
      Просмотров:
      9
  6. Бухгалтерский угодник
    Offline

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

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

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    супер! вы лучший, а я двоечник)
  8. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Да ладно....
    Только поправьте еще процедуру ОбработкаЯчейкиТаблицы. А то у вас документы не открываются на просмотр.
  9. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    блин да точно, подскажите что поправить плиз
  10. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    
    Процедура ОбработкаЯчейкиТаблицы(Значение,ФлагСтандОбраб,Сформировать,Адрес)
    ФлагСтандОбраб=0;
    Если ТипЗначения(Значение)=12 Тогда
    ОткрытьФорму(Значение);
    Иначе
    Товарпоклиентам(значение);
    КонецЕсли;                                                                   
    КонецПроцедуры
    
    

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