Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
felicita_091
8 / 8 / 2
Регистрация: 24.10.2012
Сообщений: 429
1

Макет отчета

08.05.2014, 13:50. Просмотров 1766. Ответов 24
Метки нет (Все метки)

Нужно разбить ТипАдреса на Регион и Минск
Например.. В отчете есть колонка Мин и Рег, сумма и количество...Табличное поле есть Тип адреса Минск, регионы и минский район. когда сформулирую отчет, в колонке Мин только Минский район, Минск, сумма и количество, а во втором Только регионы сумма и количество. а у меня там получается все в одном колонке Мин
Пример кода:
Кликните здесь для просмотра всего текста
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Процедура РегионыМинск ()
    
    Таб = Новый ТабличныйДокумент;
    Таб.АвтоМасштаб = Истина;
    Таб.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    //Таб.ОтображатьСетку = Ложь;
    Макет = ПолучитьМакет("СоотношениеПоБренду");
    
    СтруктураПараметровЗаголовки = Новый Структура;
    ЗаголовокМакета = Макет.ПолучитьОбласть("Заголовок");
    ЗаголовокМакета.Параметры.Заполнить(СтруктураПараметровЗаголовки);
    Таб.Вывести(ЗаголовокМакета);
 
    
    ШапкаМакета = Макет.ПолучитьОбласть("Шапка");
    Таб.Вывести(ШапкаМакета);
    
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Бренды");
    ТЗ.Колонки.Добавить("Адрес");
    ТЗ.Колонки.Добавить("Менеджер");
    ТЗ.Колонки.Добавить("ТипАдреса");
    ТЗ.Колонки.Добавить("КолВо");
    ТЗ.Колонки.Добавить("Сумма");
    ЭлементыФормы.Регионы.Значение = ТЗ;
    ЭлементыФормы.Регионы.СоздатьКолонки();
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |   ОтгрузкаТМЦ.ТМЦ,
    |   ОтгрузкаТМЦ.Регистратор,
    |   ОтгрузкаТМЦ.Количество,
    |   ОтгрузкаТМЦ.СуммаВсего
    |ИЗ
    |   РегистрНакопления.ОтгрузкаТМЦ КАК ОтгрузкаТМЦ
    |ГДЕ
    |   ОтгрузкаТМЦ.Период МЕЖДУ &ДатаНач И &ДатаКон";  
        
 
    Запрос.УстановитьПараметр("ДатаНач",(ЭлементыФормы.НачДата.Значение));           
    Запрос.УстановитьПараметр("ДатаКон",(ЭлементыФормы.КонДата.Значение));  
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();  
    
    Пока Выборка.Следующий() Цикл
        Если ТипЗнч(Выборка.Регистратор ) = Тип("ДокументСсылка.РасходнаяНакладнаяТМЦ") или ТипЗнч(Выборка.Регистратор ) = Тип("ДокументСсылка.ВозвратнаяНакладнаяТМЦ")Тогда            
            ТзСтрока = ТЗ.Добавить();
            ТзСтрока.Бренды = Выборка.ТМЦ.КлассификаторТМЦ;
            ТзСтрока.Адрес = Выборка.Регистратор.Ссылка.Адрес;
            ТзСтрока.Менеджер = Выборка.Регистратор.Ссылка.Менеджер;
            ТзСтрока.ТипАдреса = ТипАдреса(Выборка.Регистратор.Ссылка.Адрес,Выборка.Регистратор.Ссылка.Менеджер);
            ТзСтрока.КолВо = Выборка.Количество;
            ТзСтрока.Сумма = Выборка.СуммаВсего;
        Иначе
            //Сообщить(ТипЗнч(Выборка.Регистратор)) 
        КонецЕсли;
    КонецЦикла;
    
    
    Тз.Свернуть("Бренды,ТипАдреса, Адрес,Менеджер","КолВо,Сумма");
    
 
    //Вывод строки табличного документа
    Для Каждого ТзСтрока Из Тз Цикл
            СтруктураПараметровСтроки = Новый Структура;    
            СтруктураПараметровСтроки.Вставить("Бренды", ТзСтрока.Бренды);
            СтруктураПараметровСтроки.Вставить("Адр",    ТзСтрока.Адрес);
            СтруктураПараметровСтроки.Вставить("Мен",    ТзСтрока.Менеджер);
            СтруктураПараметровСтроки.Вставить("шт",     ТзСтрока.КолВо);
            СтруктураПараметровСтроки.Вставить("сумма",  ТзСтрока.Сумма);
            СтрокаМакета = Макет.ПолучитьОбласть("Строка");
            СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
            Таб.Вывести(СтрокаМакета);
    КонецЦикла;
    
                    
    Таб.Показать("Соотношение по бренду");


Кликните здесь для просмотра всего текста
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Функция ТипАдреса(Адрес, Менеджер)   
    
    Если (Найти(Врег(Адрес),"МИНСК ")) или (Найти(Врег(Адрес),"МИНСК,")) или (Найти(Врег(Адрес),"МИНСК.")) Тогда 
        
        Возврат "Минск";
    Иначе
        Если ОтношениеМенеджеров.НайтиПоЗначению(Менеджер)= Неопределено Тогда
            Возврат "Регионы";
        Иначе
            //Сообщить(Адрес);
            Возврат "Минский район";
        КонецЕсли;
        
    //Сообщить (ТзСтрока.ТипАдреса);        
    КонецЕсли;
                                           
 
КонецФункции
0
Миниатюры
Макет отчета   Макет отчета  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2014, 13:50
Ответы с готовыми решениями:

Макет отчета. Не получается Вывод данных о сумме в макет
Не могу разобраться с применением метода Присоединить к ТабДоку. В частности с выводом данных...

Как написать макет отчета
Подскажите как написать макет отчета? Необходимо чтобы при выборе даты и типа оборудования...

Прикрепить макет оформления к варианту отчета
Я создал отчёт Шахматка,в котором есть 2 варианта его оформления: СводныеПроводки и...

Вывод на макет отчета текущего пользователя
Здравствуйте. Платформа 1С: Предприятие 8.3. Управляемая форма. Подскажите в таком вопросе....

Как сделать свой макет для отчета
Имеется отчет. Данные берутся на основе запроса на скрине. Необходимо сделать шапку отчета не ту,...

24
felicita_091
8 / 8 / 2
Регистрация: 24.10.2012
Сообщений: 429
12.05.2014, 13:54  [ТС] 21
SPR1TE89, лишние столбцы я уже исправила, все хорошо..только одно не пойму, это
0
Миниатюры
Макет отчета  
SPR1TE89
21 / 21 / 3
Регистрация: 22.04.2014
Сообщений: 112
12.05.2014, 14:12 22
felicita_091, Это получается из такого кода
1C
1
2
3
4
5
6
7
8
9
10
11
        Для Каждого ТзСтрока Из Тз Цикл
            Если ТзСтрока.Бренды = Группа.Бренды Тогда
                Если ТзСтрока.ТипАдреса = "Регионы" Тогда
                    СтруктураПараметровСтроки = Новый Структура;
                    СтруктураПараметровСтроки.Вставить("Всего",  Сумма);
                    СтрокаМакета = Макет.ПолучитьОбласть("Строка|Все");
                    СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
                  Таб.Присоединить(СтрокаМакета); // Этот метод и цепляет что  - то
                 КонецЕсли;  
            КонецЕсли; 
        КонецЦикла;
У вас много циклов, где есть такой метод присоединить.
Смысл такой что он лишние строки в конец табличного документа цепляет..

Добавлено через 7 минут
И вот еще попробуйте так.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
Для Каждого ТзСтрока Из Тз Цикл
            Если ТзСтрока.Бренды = Группа.Бренды Тогда
                Если ТзСтрока.ТипАдреса = "Регионы" Тогда
                    //Сумма=Сумма + ТзСтрока.Сумма;// и вот эту сумму тогда перенесите во 2 цикл 
                    СтруктураПараметровСтроки = Новый Структура;    
                    СтруктураПараметровСтроки.Вставить("шт1",    ТзСтрока.КолВо);
                    СтруктураПараметровСтроки.Вставить("сумма1",  ТзСтрока.Сумма);
                    СтрокаМакета = Макет.ПолучитьОбласть("Строка|Рег");
                    СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
                    Таб.Присоединить(СтрокаМакета); 
                КонецЕсли;  
            КонецЕсли; 
        КонецЦикла;
Вот сюда:
1C
1
2
3
4
5
6
7
8
9
10
11
12
 Для Каждого ТзСтрока Из Тз Цикл
            Если ТзСтрока.Бренды = Группа.Бренды Тогда
                Если ТзСтрока.ТипАдреса = "Регионы" Тогда
                     Сумма=Сумма + ТзСтрока.Сумма;
                    СтруктураПараметровСтроки = Новый Структура;
                    СтруктураПараметровСтроки.Вставить("Всего",  Сумма);
                    СтрокаМакета = Макет.ПолучитьОбласть("Строка|Все");
                    СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
                    Таб.Присоединить(СтрокаМакета); 
                КонецЕсли;  
            КонецЕсли; 
        КонецЦикла;
0
felicita_091
8 / 8 / 2
Регистрация: 24.10.2012
Сообщений: 429
12.05.2014, 14:22  [ТС] 23
SPR1TE89, ничего не изменилось..все так же((
0
SPR1TE89
21 / 21 / 3
Регистрация: 22.04.2014
Сообщений: 112
12.05.2014, 14:49 24
felicita_091, Ну попробуйте убрать условие
1C
1
Если ТзСтрока.ТипАдреса = "Регионы" Тогда
Из 2 цикла ,где у вас Сумма получается.
0
felicita_091
8 / 8 / 2
Регистрация: 24.10.2012
Сообщений: 429
12.05.2014, 14:57  [ТС] 25
SPR1TE89, все равно бесполезно
0
12.05.2014, 14:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2014, 14:57

Как вывести таблицы в макет отчета через модуль объекта
Здравствуйте, есть внешний отчет, который читает информацию с документов поступления. У документа...

1C 8.1 Редактирование отчета созданного с помощью универсального отчета
Создал отчет с помощью универсального отчета, все работает, не получается сделать его "красивым"...

Макет
Попросили добавить на страницу еще 1ну копию печатоемого акта(на страница он занимает меньше...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru