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

Помогите с запросом пожалуйсто

Автор mauar, 21 июн 2011, 23:26

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

mauar

Есть запрос:


   
    ТабличнаяЧасть.Очистить();   
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    ПлановыеНачисленияРаботниковСрезПоследних.ФизЛицо,
    |    ПлановыеНачисленияРаботниковСрезПоследних.ВидРасчета,
    |    ПлановыеНачисленияРаботниковСрезПоследних.Показатель1,
    |    ПлановыеНачисленияРаботниковСрезПоследних.Ведомость КАК Ведомость,
    |    ПлановыеНачисленияРаботниковСрезПоследних.Действие КАК Действие,
    |    ПлановыеНачисленияРаботниковСрезПоследних.Период,
    |    ПлановыеНачисленияРаботниковСрезПоследних.ЦФО
    |ИЗ
    |    РегистрСведений.ПлановыеНачисленияРаботников.СрезПоследних КАК ПлановыеНачисленияРаботниковСрезПоследних
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОтработанноеВремяСводный КАК ОтработанноеВремяРабочее
    |        ПО ПлановыеНачисленияРаботниковСрезПоследних.ФизЛицо = ОтработанноеВремяРабочее.ФИЗЛицо
    |            И (ОтработанноеВремяРабочее.ВидУчетаРабВремени.РабочееВремя)
    |            И (НАЧАЛОПЕРИОДА(ОтработанноеВремяРабочее.Период, МЕСЯЦ) = НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ))
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОтработанноеВремяСводный КАК ОтработанноеВремяОтпуск
    |        ПО ПлановыеНачисленияРаботниковСрезПоследних.ФизЛицо = ОтработанноеВремяОтпуск.ФИЗЛицо
    |            И (ОтработанноеВремяОтпуск.ВидУчетаРабВремени = ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ОсновнойОтпуск))
    |            И (НАЧАЛОПЕРИОДА(ОтработанноеВремяОтпуск.Период, МЕСЯЦ) = НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ))
    |
    |СГРУППИРОВАТЬ ПО
    |    ПлановыеНачисленияРаботниковСрезПоследних.ФизЛицо,
    |    ПлановыеНачисленияРаботниковСрезПоследних.ВидРасчета,
    |    ПлановыеНачисленияРаботниковСрезПоследних.Показатель1,
    |    ПлановыеНачисленияРаботниковСрезПоследних.Ведомость,
    |    ПлановыеНачисленияРаботниковСрезПоследних.Действие,
    |    ПлановыеНачисленияРаботниковСрезПоследних.Период;
   
    Запрос.УстановитьПараметр("Период", ПериодРегистрации);
    Выборка = Запрос.Выполнить().Выбрать();





Получаем дынне так:

Пока Выборка.Следующий() Цикл                       
                    Заполнение=ТабличнаяЧасть.Добавить();
Заполнение.Колонка1     = Выборка.Период;
Заполнение.Колонка2     = Выборка.Период; // вот тут проблема


КонецЦикла;




По нему выводится таблица, заполняется так:

-------------------------------
| Дата начала| Дата окончания |
-------------------------------
| Дата1      | Дата2          |
-------------------------------
| Дата2      | Дата3          |
-------------------------------
| Дата3      | Дата3+1        |
-------------------------------



надо в правую колонку вывести данные из левой колонки только сместить
её, сделать так чтобы в правую колонку записалась дата из следующей строки левой колонке
Должно в итоге выглядеть так:

-------------------------------
| Дата начала| Дата окончания |
-------------------------------
| 01.01.2011 |  18.01.2011    |
-------------------------------
| 18.01.2011 |  21.01.2011    |
-------------------------------
| 21.01.2011 |  22.01.2011    |
-------------------------------

Шурыгин Иван Сергеевич

элементарно Ватсон:

ПерваяСтрока = Истина;
ПерваяДата = Дата(1,1,1);
Пока Выборка.Следующий() Цикл
Если ПерваяСтрока Тогда
НовСтр = ТаблицаПериодов.Добавить();
НовСтр.Период1 = Выборка.Период1;
ПерваяДата = Выборка.Период2;
НовСтр.Период2 = Выборка.Период2;
ПерваяСтрока = Ложь;
Иначе
НовСтр = ТаблицаПериодов.Добавить();
НовСтр.Период1 = ПерваяДата;
НовСтр.Период2 = Выборка.Период2;
КонецЕсли;
КонецЦикла;
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================

Теги:

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

Рейтинг@Mail.ru

Поиск