Имя: Пароль:
1C
1C 7.7
v7: помогите разобраться начинающему программисту
🠗 (Волшебник 23.01.2021 23:01)
0 byshchenko
 
23.01.21
20:45
Доброго времени суток, помогите разобраться начинающему программисту.
Суть проблемы такова ,сделал отчет для ПУБ Украина ,не могу в нем вывести сумму с разбивкой по периодам вправо.

Функция УстДоступность()
   Форма.фДокументы.Видимость(фКлиенты);
    Форма.фМесяц.Видимость(фКлиенты);
    Форма.фНеделя.Видимость(фКлиенты);
   Форма.фДень.Видимость(фКлиенты);
   Форма.фДетали.Видимость(фКлиенты);
КонецФункции
//*******************************************
// Процедура генерации запроса Сформировать.

Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;
  
  
  
   //Создание объекта типа Запрос

    

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

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



//Таб.ВывестиСекцию("Итого");
//  
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры

Процедура ПриОткрытии()
   ВыбФирма=Константа.БазФирма;
КонецПроцедуры
1 Ёпрст
 
23.01.21
20:56
(0) Ключевое слово ВСЕ в группировке запроса.
А так, проще скачать класс.ИтогиПоГруппировкам и оно само умеет вправо
Или ознакомиться с ИндексированнойТаблицей и в ней делать разворот.
А штатно, или выгружать в ТЗ и там колдовать, или использовать 2 запроса
2 Cthulhu
 
23.01.21
21:12
(1) не учи начинающего плохому...
(0) НЕ НАЧИНАЙ С СЕМЕРКИ!!! ИДИ В ВОСЬМЕРКУ!!!!!11111адинадинадинадинадин
3 byshchenko
 
23.01.21
21:13
Буду пробовать штатно  выгружать в ТЗ и там колдовать ,если кто может накидайте пример выгрузки моего запроса в таблицу значений.
4 byshchenko
 
23.01.21
21:14
Надо с этим справится )))а потом восьмерка
5 Исновая
 
23.01.21
22:48
(3) запрос.выгрузить(ТЗ)..НЕ блаоодари
6 Волшебник
 
23.01.21
23:01
Тема не отражает суть сообщения.

И да, зачем начинающему семёрка? Учи восьмёрку
7 byshchenko
 
23.01.21
23:12
Мне надо доделать отчет принципиально т к никак не выходит
8 Злопчинский
 
23.01.21
23:17
на парь голову. решается в несколько операторов
http://catalog.mista.ru/public/14794/

в запрос добавить в начало после задания периода отчета
Без итогов;

выгрузить запрос плоской таблицей без итогов в ТЗ, тз подсунуть в ссылку.
наслаждаться
9 Злопчинский
 
23.01.21
23:17
(7) стукайся срочно в скайп Zlopun
10 MWWRuza
 
гуру
23.01.21
23:46
(9) ОФФ... Вот тебе не спится :-)
11 Злопчинский
 
24.01.21
00:55
сабж по (0) - решено
12 byshchenko
 
24.01.21
01:19
Спасибо Вам огромное
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.