Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Дек 2017, 21:02
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: ПрисоединитьСекцию()  (Прочитано 5968 раз)

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

Оффлайн cokoc

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-23
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день уважаемые форумчане.  Столкнулся с небольшой проблемой, может кто сталкивался уже и подскажет что делать.

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

Код программы

	Запрос=СоздатьОбъект("ODBCRecordSet");	
ТЗ="
|select
| ДокШ.iddoc [Док $Документ.РеализацияМаршрутныйЛист]
| from
| $Документ.РеализацияМаршрутныйЛист as ДокШ (nolock)                   
| inner join _1SJourn as Жур (nolock) on Жур.IDDOC=ДокШ.IDDOC
| where
| Жур.Date_Time_IdDoc BETWEEN :НачДата AND :КонДата~
| AND Жур.Closed&1 = 1
| AND $ДокШ.Контрагент = $ПустойИД
|";

тби=СоздатьОбъект("ТаблицаЗначений");
Запрос.УстановитьТекстовыйПараметр("НачДата",НачДата);
Запрос.УстановитьТекстовыйПараметр("КонДата",КонДата);
тби = Запрос.ВыполнитьИнструкцию(ТЗ); 

Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформ2");
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);

тби.ВыбратьСтроки();
Пока тби.ПолучитьСтроку() = 1 Цикл
пДок = тби.Док;
пТранспорт = пДок.Транспорт;
таб.ВывестиСекцию("строка|Время");
таб.ПрисоединитьСекцию("строка|Данные");      
КонецЦикла;   
Таб.ТолькоПросмотр(1);
Таб.Показать("Отчет по транспорту");

на данном этапе отчет формируется вот так:



необходимо сделать что-то типа такого:



шаблон:



подскажите в каком направлении двигаться?


Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Например сравнивать в цикле текущее ВремяПод с временем из предыдущей итерации. Если совпадает то присоединить секцию, иначе выводить новую. Перед этим конечно отсортировать ТБИ по времени.
Кнопочка Спасибо - слева!

Оффлайн cokoc

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-23
  • Сайт: 
  • Профессия: Ученик 1С
Можете помочь кодом?, не совсем понимаю ка кэто реализовать...

Оффлайн cokoc

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-23
  • Сайт: 
  • Профессия: Ученик 1С
ап

Оффлайн cokoc

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-23
  • Сайт: 
  • Профессия: Ученик 1С
закрывайте тему, сам все сделал.

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
сделал сам - поделись решеним с другими
Кнопочка Спасибо - слева!

Оффлайн cokoc

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-23
  • Сайт: 
  • Профессия: Ученик 1С
Ничего интересного. Переделал запрос и добавил группировку.

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

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

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Шапка|Вертикаль1");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(1, 0, Таб.ВысотаТаблицы(), 0); 

Пока Запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("Горизонталь|Вертикаль1");
Пока Запрос.Группировка(2) = 1 Цикл
Таб.ПрисоединитьСекцию("Горизонталь|Вертикаль2");  
КонецЦикла;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Движение транспорта", "");
КонецПроцедуры

Процедура ПриОткрытии()
ВыбНачПериода = РабочаяДата();
ВыбКонПериода = РабочаяДата();
КонецПроцедуры


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
180 Сообщений
ilyay ilyay
69 Сообщений
alex0402
54 Сообщений
oleg-x
48 Сообщений
AIFrame
46 Сообщений
andron81_81
44 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 270
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal