Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 00:59

Соединение таблиц

Автор Ekaterina20, 08 дек 2015, 13:48

0 Пользователей и 1 гость просматривают эту тему.

Ekaterina20

Ребят, нужно добиться такого вида отчета.

Есть регистр Связь и от Контрагентов приходят предложения по услугам связи в виде таблицы,которая загружается в 1с, как бы мне получить такой вид отчета?

Ekaterina20

Имею отчет в котором выводится две таблицы друг под другом, а мне нужно получить так,чтобы вторая таблица выводилась по горизонтали правее. Кто подскажет как получить. Прочитала про Присоеденить() ничего не понятно.

cska-fanat-kz

ну так если через Присоединить() и делается........

Другой вариант получить запрос уже нужного вида.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Ekaterina20

В том то и дело,не могу понять куда какие области назначать и как правильно присоеденить.
Добавлено: 09 дек 2015, 12:32


Цитата: Ekaterina20 от 09 дек 2015, 09:36
В том то и дело,не могу понять куда какие области назначать и как правильно присоеденить.

Нужно выделенную часть таблицы, вывести в правой части таблица. Кто подскажет как делать?

vitasw

Зачем? в чем смысл? Как определить позицию, с которой нужно выводить "справа"? По-моему вы занимаетесь ерундой, если речь идет об экономии бумаги, то это решается настройками принтера.

Ekaterina20

У меня есть документ в котором есть несколько таблиц, при выводи в отчет, они выходят друг под другом, а мне нужно чтобы вторая таблица выводилась справа.

vitasw

Если нужно - решайте через Присоеденить()

Ekaterina20

Как обозначить секцию? Куда правильно писать код? Объясните,пожалуйста.
Макет = ОтчетОбъект.ПолучитьМакет("Отчет1");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Факт.НомерСтроки,
| Факт.НомерВызываемогоАбонента,
| Факт.КодФакт,
| Факт.ДлительностьЗвонка,
| Факт.Стоимость,
| План.Направление,
| План.Стоимость КАК СтоимостьМинута,
| План.КодПлан,
| План.Стоимость * Факт.ДлительностьЗвонка КАК СуммаЗвонковОтКонтрагента
|ИЗ
| (ВЫБРАТЬ
| R_Связь.НомерСтроки КАК НомерСтроки,
| R_Связь.НомерВызываемогоАбонента КАК НомерВызываемогоАбонента,
| ПОДСТРОКА(R_Связь.НомерВызываемогоАбонента.Наименование, 1, 4) КАК КодФакт,
| R_Связь.ДлительностьЗвонка КАК ДлительностьЗвонка,
| R_Связь.Стоимость КАК Стоимость
| ИЗ
| РегистрСведений.R_Связь КАК R_Связь
| ГДЕ
| R_Связь.Регистратор.Дата МЕЖДУ &ДатаН И &ДатаК) КАК Факт
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ПредложениеКонтрагентаУслуга.Направление КАК Направление,
| ПредложениеКонтрагентаУслуга.Стоимость КАК Стоимость,
| ПОДСТРОКА(ПредложениеКонтрагентаУслуга.Направление, 1, 4) КАК КодПлан
| ИЗ
| Документ.ПредложениеКонтрагента.Услуга КАК ПредложениеКонтрагентаУслуга) КАК План
| ПО Факт.КодФакт = План.КодПлан";

Запрос.УстановитьПараметр("ДатаК", КонецДня(ДатаК));
Запрос.УстановитьПараметр("ДатаН", НачалоДня(ДатаН));

Результат = Запрос.Выполнить();


ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();

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

vitasw

Вы привели вывод одной таблицы, где вторая?

Ekaterina20

Где я должна ее вывести? Внизу она выводится по циклу.

Если я начинаю правильно понимать,то я должна создать область и туда вывести таблицу?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск