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

Автор Тема: Преобразование плоской таблицы в запросе  (Прочитано 5496 раз)

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

Оффлайн goldy

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-10-31
  • Сайт: 
  • Профессия: Программист 8.1
Данные в таблице (получаю из периодического независ. регистра сведений):
период           раздел(изм)       категория(измерение) вид операции(рекв.)    срок
02.10.11           1                                              а               добавление      06.10.11 
03.10.11           1                                              а               удаление          07.10.11 
04.10.11           1                                              а               добавление      08.10.11
05.10.11           1                                              а               удаление          08.10.11 
06.10.11           2                                              б               добавление      10.10.11 
07.10.11           2                                              б               добавление      10.10.11 
08.10.11           2                                              б               удаление          10.10.11 


Как в запросе преобразовать данные  в таблицу, в которой по каждому разделу+категории будет разбиваться по видам операции даты (период и срок) :

В результате нужна  такая таблица
              добавление                     |        удаление           |
1а          |  02.10.11|  06.10.11      |  03.10.11  | 07.10.11  |
1а          |  04.10.11|  08.10.11      |  05.10.11  | 08.10.11  |
2б          |  06.10.11|  10.10.11      |  08.10.11  | 10.10.11  |
2б          |  07.10.11|  10.10.11      |                 |                |



Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Раздел и категорию сцепляй в запросе, добавление и удаление делается через выбор когда. Только вот как сцепить период и срок не знаю. Попробовал щас, получается типа этого
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
              | Т.Период,
              | Т.Раздел,
              | Т.Категория,
              | Т.ВидОперации,
              | Т.Срок
              |ПОМЕСТИТЬ Врем
              |ИЗ
              | &Таб КАК Т
              |;
              |
              |////////////////////////////////////////////////////////////////////////////////
              |ВЫБРАТЬ
              | (ВЫРАЗИТЬ(Врем.Раздел КАК СТРОКА(1))) + (ВЫРАЗИТЬ(Врем.Категория КАК СТРОКА(1))) КАК РазделКатегория,
              | ВЫБОР
              | КОГДА (ВЫРАЗИТЬ(Врем.ВидОперации КАК СТРОКА(20))) = ""Добавление""
              | ТОГДА Врем.Срок
              | КОНЕЦ КАК Добавление,
              | ВЫБОР
              | КОГДА (ВЫРАЗИТЬ(Врем.ВидОперации КАК СТРОКА(20))) = ""Удаление""
              | ТОГДА Врем.Срок
              | КОНЕЦ КАК Удаление
              |ИЗ
              | Врем КАК Врем";
Запрос.УстановитьПараметр("Таб", ТабличноеПоле1);
Запрос.Выполнить().Выгрузить().ВыбратьСтроку();
Ну вид операции у меня строка, там сам подставишь перечисление твое. Ограничения на строки идет, потому что у меня на форме типы этих колонок строка неогр. длины.

Оффлайн goldy

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-10-31
  • Сайт: 
  • Профессия: Программист 8.1
Тогда получится примерно такая структура:
1а          |  02.10.11|  06.10.11      |                 |                      |
1а          |               |                     |  03.10.11  | 07.10.11         |
1а          |  04.10.11|  08.10.11      |                 |                       |
1а          |               |                     |  05.10.11  | 08.10.11         |

А как потом это сгруппировать, чтобы получилась такая таблица?
1а          |  02.10.11|  06.10.11      |  03.10.11  | 07.10.11  |
1а          |  04.10.11|  08.10.11      |  05.10.11  | 08.10.11  |

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
В запросе есть группировка, только вот думаю она не подойдет. Попробуй выгрузить результат в ТЗ и свернуть.

Оффлайн goldy

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-10-31
  • Сайт: 
  • Профессия: Программист 8.1
При использовании функции Свернуть() нужный результат не достигается.

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
При использовании функции Свернуть() нужный результат не достигается.
Сворачивай по всем трем колонкам, без суммируемых

Оффлайн goldy

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

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Какие еще пустые даты? Данные в таблице какие? Даты со временем?

Оффлайн goldy

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-10-31
  • Сайт: 
  • Профессия: Программист 8.1
Да, даты со временем.

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Если время разное, то сворачиваться не будут. Как вариант привести все даты к началу дня. Ну и убрать пустые даты.


Теги:
 

Получить номер недели в месяце в запросе [номер недели]

Автор MuI_I_IkaРаздел Алгоритмы

Ответов: 0
Просмотров: 4148
Последний ответ 15 Июл 2015, 18:24
от MuI_I_Ika
РС "СостояниеОСОрганизаций" в запросе

Автор ILLUMIРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1119
Последний ответ 07 Янв 2015, 05:33
от ILLUMI
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2122
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Поле не найдено" в запросе, но оно есть.

Автор ferrari314Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2679
Последний ответ 27 Окт 2015, 10:29
от vitasw
Временная таблица во вложенном запросе+Группировка VS Таблица значений + Свернуть

Автор TsaigerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 587
Последний ответ 14 Июл 2017, 23:10
от Tsaiger

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
154 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
oleg-x
44 Сообщений
andron81_81
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal