powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Выборка из нескольких временных таблиц
8 сообщений из 8, страница 1 из 1
Выборка из нескольких временных таблиц
    #35976920
Голд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый, уважаемые братья "по перу"!

Столкнулся с проблемой выборки из нескольких временных таблиц и никак не могу разобраться и в нете инфы не могу найти.

Коротко о цели: построить учет рабочего времени пользователей 1С. Для этой цели выбираются из Журнала регистрации записи о входах-выходах пользователей, которые загоняются в две ТЗ - "ТЗВход" и "ТЗВыход" и далее нужно взять самый первый вход и самый последний выход и все это дело склеить и залить в регистр сведений для дальнейшего анализа.

Проблема возникла на этапе слияния этих самых таблиц. Вот код:

МВТ = Новый МенеджерВременныхТаблиц;

//Работаем с таблицей входов
Запрос = Новый Запрос("Выбрать * ПОМЕСТИТЬ ВТВход Из &Таб КАК ВТ1");
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.УстановитьПараметр("Таб", ТЗВход);
Запрос.Выполнить();

//Работаем с таблицей выходов
Запрос = Новый Запрос("Выбрать * ПОМЕСТИТЬ ВТВыход Из &Таб КАК ВТ2");
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.УстановитьПараметр("Таб", ТЗВыход);
Запрос.Выполнить();

мТекстЗапроса = "
|ВЫБРАТЬ
| Т1.Пользователь,
| Т1.Дата,
| Т1.Время КАК ВремяВхода,
| Т2.Время КАК ВремяВыхода
|
|ИЗ
| (ВЫБРАТЬ
| UserName КАК Пользователь,
| Date КАК Дата,
| МИНИМУМ(Time) КАК Время
|
| ИЗ ВТВход
| СГРУППИРОВАТЬ ПО UserName, Date) КАК Т1
|ЛЕВОЕ СОЕДИНЕНИЕ
| (ВЫБРАТЬ
| UserName КАК Пользователь,
| Date КАК Дата,
| МАКСИМУМ(Time) КАК Время
| ИЗ ВТВыход
| СГРУППИРОВАТЬ ПО UserName, Date) КАК Т2
|ПО
| Т1.Пользователь = Т2.Пользователь И Т1.Дата = Т2.Дата
|УПОРЯДОЧИТЬ ПО
| Т1.Дата, Т1.Пользователь";

РезЗапрос = Новый Запрос;
РезЗапрос.МенеджерВременныхТаблиц = МВТ;
РезЗапрос.Текст = мТекстЗапроса;
Результат = Запрос.Выполнить().Выгрузить();

МВТ.Закрыть();

Все бы ничего, но при выполнении последнего запроса пишет, что временная таблица уже существует, и хоть ты стреляйся.

Буду признателен за лююбую ценную информацию. Спасибо.
...
Рейтинг: 0 / 0
Выборка из нескольких временных таблиц
    #35977185
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если так?

Запрос=новый запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
.........


| Т1.Дата, Т1.Пользователь";

// на .... РезЗапрос = Новый Запрос;
// за борт на .... РезЗапрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст = мТекстЗапроса; /// переписать так
Результат = Запрос.Выполнить().Выгрузить(); // интересно почему так?


Запрос.МенеджерВременныхТаблиц.Закрыть();
...
Рейтинг: 0 / 0
Выборка из нескольких временных таблиц
    #35977191
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ну ясно
сделали неточность да еще и ошиблись ...

ВТВыход - существует уже
...
Рейтинг: 0 / 0
Выборка из нескольких временных таблиц
    #35977357
Голд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
leafа ну ясно
сделали неточность да еще и ошиблись ...

ВТВыход - существует уже

не совсем Вас понял... где уже существует?

сначала создаются две временные таблицы ВТВход и ВТВыход, которые прикручиваются к МВТ.

Затем третий запрос делает выборку из все того же МВТ.

ВТВыход фигурирует только один раз.
...
Рейтинг: 0 / 0
Выборка из нескольких временных таблиц
    #35977837
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давай тексты запросов. особенно интересно про удалить и поместить во временную таблицу
...
Рейтинг: 0 / 0
Выборка из нескольких временных таблиц
    #35978129
supervk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГолдВсе бы ничего, но при выполнении последнего запроса пишет, что временная таблица уже существует, и хоть ты стреляйся.
А почему бы не сделать всё в одном запросе?
...
Рейтинг: 0 / 0
Выборка из нескольких временных таблиц
    #35978283
serge_b77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Голд
РезЗапрос = Новый Запрос;
РезЗапрос.МенеджерВременныхТаблиц = МВТ;
РезЗапрос.Текст = мТекстЗапроса;
Результат = Запрос.Выполнить().Выгрузить();

МВТ.Закрыть();

Все бы ничего, но при выполнении последнего запроса пишет, что временная таблица уже существует, и хоть ты стреляйся.


Само собой,т.к. нужно писать:
Код: plaintext
Результат =РезЗапрос.Выполнить().Выгрузить();
Поменьше copy-paste )).
...
Рейтинг: 0 / 0
Выборка из нескольких временных таблиц
    #35982265
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну собственно serge_b77 все сказал
все проблемы в нашей работе от спешки
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Выборка из нескольких временных таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]