powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Как запросом выбрать самую последнюю запись регистра
27 сообщений из 27, показаны все 2 страниц
Как запросом выбрать самую последнюю запись регистра
    #36142452
Albert777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такой вопрос! Есть запрос:
ВЫБРАТЬ
Абоненты.ЛицевойСчет КАК ЛС,
Абоненты.Наименование КАК ФИО,
ИспользованиеУслугСрезПоследних.Тариф
ИЗ
Справочник.Абоненты КАК Абоненты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИспользованиеУслуг.СрезПоследних КАК ИспользованиеУслугСрезПоследних
ПО (ИспользованиеУслугСрезПоследних.Абонент = Абоненты.Ссылка)
ГДЕ
Абоненты.ПометкаУдаления = ЛОЖЬ
И Абоненты.ЭтоГруппа = ЛОЖЬ
И Абоненты.Ссылка = &Абонент

в результат запроса выводится 2 строки, т.к. в регистре сведений "ИспользованиеУслуг" 2 записи для данного абонента(Пусть будет "Петров"). А как сделать, чтобы бралась только одна самая последняя запись???
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #36142809
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавить Абоненты.период
Сортировать по нему и брать только первый элемент.
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #36143204
TopManager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Коллеги!

В запросе есть конструкция ВЫБРАТЬ ПЕРВЫЕ 1, используя ее и не используя виртуальную таблицу (СрезПоследних), а взяв настоящую (РегистрСведений.ИспользованиеУслуг), отсортировав по периоду в обратном порядке - вы достигните цели!

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

Код: plaintext
отсортировав по периоду в обратном порядке - вы достигните цели

а что виртуальная таблица делает? я просто староват у меня память плохая
объясните кто знает как оно работает?
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #36143440
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ВЫБРАТЬ
Абоненты.ЛицевойСчет КАК ЛС,
Абоненты.Наименование КАК ФИО,
ИспользованиеУслугСрезПоследних.Тариф
ИЗ
Справочник.Абоненты КАК Абоненты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИспользованиеУслуг.СрезПоследних КАК ИспользованиеУслугСрезПоследних
ПО (ИспользованиеУслугСрезПоследних.Абонент = Абоненты.Ссылка)
ГДЕ
Абоненты.ПометкаУдаления = ЛОЖЬ
И Абоненты.ЭтоГруппа = ЛОЖЬ
И Абоненты.Ссылка = &Абонент

Код: plaintext
Абоненты.Ссылка = &Абонент
Код: plaintext
Справочник.Абоненты КАК Абоненты

з.ы.
что бы я так жил ... как он тратит машинные ресурсы ...
а почему не напрямую из регистра?
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #36143460
Albert777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавил период и отсортировал, получилось:
ВЫБРАТЬ
Абоненты.ЛицевойСчет КАК ЛС,
Абоненты.Наименование КАК ФИО,
ЗапросТариф.Тариф КАК Тариф
ИЗ
Справочник.Абоненты КАК Абоненты
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
ИспользованиеУслугСрезПоследних.Тариф КАК Тариф,
ИспользованиеУслугСрезПоследних.Абонент КАК Абонент,
ИспользованиеУслугСрезПоследних.Период КАК Период,
ИспользованиеУслугСрезПоследних.Абонент.Ссылка КАК АбонентСсылка
ИЗ
РегистрСведений.ИспользованиеУслуг.СрезПоследних КАК ИспользованиеУслугСрезПоследних
//ГДЕ
// ИспользованиеУслугСрезПоследних.Абонент = &абонент

УПОРЯДОЧИТЬ ПО
Период УБЫВ) КАК ЗапросТариф
ПО Абоненты.Ссылка = ЗапросТариф.Абонент.Ссылка
ГДЕ
Абоненты.ПометкаУдаления = ЛОЖЬ
И Абоненты.ЭтоГруппа = ЛОЖЬ
// ИспользованиеУслугСрезПоследних.Абонент = &абонент

В итоге, если закоментировать строки с условием во вложенном запросе, тогда в результат запроса выводятся ЛС, ФИО нормально, а вот тариф везде пустой. Но если для конкретного абонента, то тариф выводится нормально. Не пойму в чем дело!
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #36143476
Albert777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
leaf,На прямую из регистра не получится, потому что есть абоненты, у которых тариф не проставлен, их тоже надо выбрать.
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #36143490
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
leaf,На прямую из регистра не получится, потому что есть абоненты, у которых тариф не проставлен, их тоже надо выбрать

а если запрос пустой - у вас есть ссылка ) вы же условие жесткое ставите на справочник?
ладно растите дальше ...

а ничего не выводится потому :

Код: plaintext
ВЫБРАТЬ ПЕРВЫЕ  1 
и
Код: plaintext
ЗапросТариф.Абонент = &абонент
разберитесь что такое виртуальная таблица и с чем ее едят - потом прийдете
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #36143499
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точнее ...
Код: plaintext
а вот тариф везде пустой
вы плохо смотрите
должен быть один не пустой абонент
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #36143552
Albert777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну да точно, один абонент не пустой))
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #36143672
Albert777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все, понял свою ощибку. Все спасибо!
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #36144931
Тариф, как я понимаю, является в данный момент измерением регистра? Если так, то, сделайте его ресурсом и в СрезеПоследних будет именно последнее значение тарифа. А то, что записи двоят при текущем положении дел, объясняется особенностью работы СрезаПоследних, т.к. он выбирает последние значения по всем наборам измерений
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #36144937
неточность. по всем уникальным наборам измерений
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как запросом выбрать самую последнюю запись регистра
    #38577204
Apt Dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Не пинайте сильно, но я так и не понял, как сделать такой запрос ???
помогите примером.
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38577660
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apt Dima,

СрезПоследних выдаст последнюю запись периодического регистра сведений
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38580933
Apt Dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Владимир Лазурко
СрезПоследних выдаст последнюю запись периодического регистра сведений[/quot]

СрезПоследних выдает последние уникальные записи, мне нужно просто последнюю запись из регистра РегистрСведений.ЗаказНаряды, чтобы вывести в таблицу текущие СтатусРаботы по всем документам ЗаказНаряд.

РегистрСведений.ЗаказНаряды двигаются и другими документами.

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

такой запрос не работает ((
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38580987
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apt Dima[quot Владимир Лазурко
СрезПоследних выдаст последнюю запись периодического регистра сведений

СрезПоследних выдает последние уникальные записи, мне нужно просто последнюю запись из регистра РегистрСведений.ЗаказНаряды, чтобы вывести в таблицу текущие СтатусРаботы по всем документам ЗаказНаряд.

РегистрСведений.ЗаказНаряды двигаются и другими документами.

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

такой запрос не работает (([/quot]

ежу понятно что оно работать не будет... ибо вы берете только 1 запись из всего среза
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38580993
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apt Dima,

Запрос.Текст = "ВЫБРАТЬ
| ДокЗаказНаряд.Дата КАК Дата,
| ДокЗаказНаряд.Ссылка КАК ЗаказНаряд,
| РегЗаказНаряд.СтатусРаботы КАК СтатусРаботы
|ИЗ
| Документ.ЗаказНаряд КАК ДокЗаказНаряд
|
|ЛЕВОЕ СОЕДИНЕНИЕ
|(ВЫБРАТЬ
| ЗН.ЗаказНаряд КАК ЗаказНаряд,
| ЗН.СтатусРаботы
|ИЗ
| РегистрСведений.ЗаказНаряды.СрезПоследних(, ЗаказНаряд = ДокЗаказНаряд.Ссылка) КАК ЗН)
|КАК РегЗаказНаряд
|ПО
| ДокЗаказНаряд.Ссылка = РегЗаказНаряд.ЗаказНаряд
|";

Зачем получать дату и ссылку в результатах запроса? Получайте сразу необходимое представление документа и статуса работы.
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38581000
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>РегистрСведений.ЗаказНаряды.СрезПоследних(, ЗаказНаряд = ДокЗаказНаряд.Ссылка)

и это будет работать? да еще в подзапросе?
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38581014
Apt Dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AHDPApt Dima,


| РегистрСведений.ЗаказНаряды.СрезПоследних(, ЗаказНаряд = ДокЗаказНаряд.Ссылка) КАК ЗН)


Зачем получать дату и ссылку в результатах запроса? Получайте сразу необходимое представление документа и статуса работы.

Такая штука не работает, это же не параметр запроса.
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38581076
Apt Dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Последний выдох ГПЖ]Apt Dimaпропущено...


ежу понятно что оно работать не будет... ибо вы берете только 1 запись из всего среза

Может вы предположите, то что будет работать ???
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38581090
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Левое соединение правильное.
2. соединить с всеми записями регистра сведений.
3. Выбрать по документам минимальную запись по периоду.
4. Получить значение из регистра сведений по этой минимальной дате.

Все.
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38581191
Apt Dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист 1с1. Левое соединение правильное.
2. соединить с всеми записями регистра сведений.
3. Выбрать по документам минимальную запись по периоду.
4. Получить значение из регистра сведений по этой минимальной дате.

Все.

вроде как то так получилось....

Запрос.Текст = "
|ВЫБРАТЬ
...
| ДокЗаказНаряд.Дата КАК Дата,
| ДокЗаказНаряд.Ссылка КАК ЗаказНаряд,
| РегЗаказНаряд.СтатусРаботы КАК СтатусРаботы,
| РегЗаказНаряд.Реализация КАК Реализация
|ИЗ
| Документ.ЗаказНаряд КАК ДокЗаказНаряд
|
|ЛЕВОЕ СОЕДИНЕНИЕ
|
|(ВЫБРАТЬ
| ЗНСрезПоследних.ЗаказНаряд КАК ЗаказНаряд,
| ЗНСрезПоследних.СтатусРаботы КАК СтатусРаботы,
| ЗНСрезПоследних.Реализация КАК Реализация
| ИЗ
| РегистрСведений.ЗаказНаряды.СрезПоследних() КАК ЗНСрезПоследних
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| МАКСИМУМ(ЗН.Период) КАК Период,
| ЗН.ЗаказНаряд КАК ЗаказНаряд
| ИЗ
| РегистрСведений.ЗаказНаряды.СрезПоследних() КАК ЗН
|
| СГРУППИРОВАТЬ ПО
| ЗН.ЗаказНаряд) КАК ПоследняяЗаписьЗН
| ПО (ПоследняяЗаписьЗН.ЗаказНаряд = ЗНСрезПоследних.ЗаказНаряд)
| И (ПоследняяЗаписьЗН.Период = ЗНСрезПоследних.Период)) КАК РегЗаказНаряд
|ПО ДокЗаказНаряд.Ссылка = РегЗаказНаряд.ЗаказНаряд
|";
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38581257
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вариация на тему "срез последних на каждую дату"
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38581303
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apt Dima, если вы уже сами пишете как вам выбирать последние записи из регистра, не используйте виртуальную таблицу среза последних. Быстрее работать будет.
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38581518
Apt Dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapeckerApt Dima, если вы уже сами пишете как вам выбирать последние записи из регистра, не используйте виртуальную таблицу среза последних. Быстрее работать будет.

Ну да, вы правы!
...
Рейтинг: 0 / 0
Как запросом выбрать самую последнюю запись регистра
    #38582756
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последний выдох ГПЖ>РегистрСведений.ЗаказНаряды.СрезПоследних(, ЗаказНаряд = ДокЗаказНаряд.Ссылка)

и это будет работать? да еще в подзапросе?
К сожалению нет, но очень бы хотелось работоспособности такой штуки в подзапросе.
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / [игнор отключен] [закрыт для гостей] / Как запросом выбрать самую последнюю запись регистра
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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