С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/30: Рейтинг темы: голосов - 30, средняя оценка - 4.73
shum_ont
61 / 60 / 17
Регистрация: 17.02.2011
Сообщений: 161
1

Как получить срез последних в непериодическом регистре?

14.06.2013, 11:03. Просмотров 6136. Ответов 12
Метки нет (Все метки)

как получить срез последних в непериодическом регистре?? если там есть ресурс с типом дата.
можно покодить но хотелось бы это решить через язык запросов.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2013, 11:03
Ответы с готовыми решениями:

Срез последних
Нужно получить колонку с актуальными ценами. В запросе делаю вложенный запрос,...

Срез последних цен
Добрый день! Делаю отчёт по продажам продукции. Не получается сделать срез...

Как обратиться к справочнику в регистре сведений?
Доброго времени суток, форумчане. В общем, есть регистр сведений...

Как реализовать начисление в регистре расчета?
Задача: начислить абонентам абонентскую плату за месяц: существует 2 тарифа:...

Как сделать так, чтобы документ проводился в регистре
При заполнении книги учётов доходов и расходов. Некоторые данные не попадают в...

12
Fenomen
899 / 876 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
14.06.2013, 12:08 2
Цитата Сообщение от shum_ont Посмотреть сообщение
как получить срез последних в непериодическом регистре??
А непериодического регистра нет среза последних! По конкретному набору измерений может быть задано только одно значение ресурса, так что просто обращайтесь запросом к основной таблице регистра.
1
Joker_vad
Эксперт 1С
471 / 409 / 92
Регистрация: 26.09.2012
Сообщений: 1,826
14.06.2013, 12:56 3
запросом сортируешь по дате в направлении по убыванию и получаешь первый элемент)
1
shum_ont
61 / 60 / 17
Регистрация: 17.02.2011
Сообщений: 161
14.06.2013, 13:01  [ТС] 4
Цитата Сообщение от Joker_vad Посмотреть сообщение
запросом сортируешь по дате в направлении по убыванию и получаешь первый элемент)
мне нужно не один элемент а последний в разрезе измерений
н-р

измерение ресурс
товар дата

2 20.12.13
2 21.12.13
3 19.12.13

мне нужно получить товар 2 на 21.12.13 и товар 3 на 19.12.13
0
Fenomen
899 / 876 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
14.06.2013, 13:05 5
Цитата Сообщение от shum_ont Посмотреть сообщение
2 20.12.13
2 21.12.13
Такого быть не может! Система не даст Вам создать две записи с одним измерением!
1
shum_ont
61 / 60 / 17
Регистрация: 17.02.2011
Сообщений: 161
14.06.2013, 13:10  [ТС] 6
....да действительно неправильно описал задачу
измерение измерение ресурс
организация товар дата

а 1 20.12.13
а 2 21.12.13
б 3 19.12.13

последний товар по организации а и б число организаций и количество товара неизвесно
0
Fenomen
899 / 876 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
14.06.2013, 13:16 7
1C
1
2
3
4
5
6
7
8
Выбрать 
    Организация,
    Товар,
    Максимум(Дата)
Из РегистрыСведений.ВашРегистр
Сгруппировать по
   Организация,
   Товар
Как то так, синтаксис может быть не на 100% верен. Используйте конструктор запросов.
1
shum_ont
61 / 60 / 17
Регистрация: 17.02.2011
Сообщений: 161
14.06.2013, 13:18  [ТС] 8
а 1 20.12.13
а 2 21.12.13
б 3 19.12.13


это будет результат запроса
0
Fenomen
899 / 876 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
14.06.2013, 13:26 9
Пардон, не то написал. Сейчас подумаю, исправлю.

Добавлено через 7 минут
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ВЫБРАТЬ
    РегистрСведений1.Измерение1 КАК Измерение1,
    МАКСИМУМ(РегистрСведений1.Ресурс1) КАК Ресурс1
ПОМЕСТИТЬ ВТМаксДаты
ИЗ
    РегистрСведений.РегистрСведений1 КАК РегистрСведений1
 
СГРУППИРОВАТЬ ПО
    РегистрСведений1.Измерение1
 
ИНДЕКСИРОВАТЬ ПО
    Измерение1,
    Ресурс1
;
 
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТМаксДаты.Измерение1,
    РегистрСведений1.Измерение2,
    ВТМаксДаты.Ресурс1
ИЗ
    ВТМаксДаты КАК ВТМаксДаты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегистрСведений1 КАК РегистрСведений1
        ПО ВТМаксДаты.Измерение1 = РегистрСведений1.Измерение1
            И ВТМаксДаты.Ресурс1 = РегистрСведений1.Ресурс1
1
shum_ont
61 / 60 / 17
Регистрация: 17.02.2011
Сообщений: 161
14.06.2013, 13:31  [ТС] 10
эврика это работает спосибо
0
иванчик_
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 1
13.08.2015, 08:35 11
привет, нашел твоё решение для непериодических регистров (http://www.cyberforum.ru/1c/thread901517.html#post4719704)
и у меня похожая нестандартная задача с которой не могу найти правильной решение.

имеется НЕпериодический регистр сведений "НахождениеТранспорта",у которого
измерения: "Марка", "Период",
и ресурс "МестоГород".

И следующие данные такие.
Например:
Жигули / 10.05.2014 /Москва
Нива /15.05.2014/ Питер
Жигули /19.05.2014/ Ростов
Жигули /22.05.2014 / Москва
Нива/ 23.05.2014 / Москва

Нужен только запрос (например пакетный/вложенный), результат запроса: Марка на заданную дату &Дата.
к примеру, на 18.05.2014:
Жигули -Москва
Нива - Питер

Добавлено через 8 минут
Fenomen, предыдущее сообщение тебе предназначалось, просто по запарке не указал твой ник
0
Neiroromantik
0 / 0 / 0
Регистрация: 01.08.2015
Сообщений: 16
19.08.2015, 06:51 12
Именно СрезПоследних Вы не получите, но можно попробовать сделать группировку и применить к дате группировочную функцию Максимум.
0
alex_4x
2 / 2 / 0
Регистрация: 12.08.2015
Сообщений: 10
24.08.2015, 13:00 13
Для непериодического регистра среза последних нет.
Но это не беда. Для любого типа данных можно получить последнее значение (и для справочника и для документа и для регистра сведений)

Продемонстрирую на регистре Курсы валют (да, он периодический, но это свойство использовать просто не будем, просто в этом регистре есть дата и измерения, ими и воспользуемся)

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
ВЫБРАТЬ ПЕРВЫЕ 1
    КурсыВалют.Период КАК Период,
    КурсыВалют.Валюта,
    КурсыВалют.Курс,
    КурсыВалют.Кратность
ИЗ
    РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
    КурсыВалют.Валюта = &Валюта
    И КурсыВалют.Период <= &КрайняяДата
 
УПОРЯДОЧИТЬ ПО
    Период УБЫВ
Сдесь явно указываем, что нас интересует значение ДО даты указанной в параметре КрайняяДата.
Упорядочить ставим в УБЫВАНИЕ, и берем первое значение и только 1. (ВЫБРАТЬ ПЕРВЫЕ 1)
Аналогично действовать можно если дата не в измерении регистра, а например дата документа, который указан в измерении. Ну или дата в справочнике.

Например найдем последнюю цену в проведенном документе поступления товара для указанного товара.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ВЫБРАТЬ ПЕРВЫЕ 1
    ВЫБОР
        КОГДА (ПоступлениеТоваровУслугТовары.Количество * ПоступлениеТоваровУслугТовары.Коэффициент) > 0
            ТОГДА ПоступлениеТоваровУслугТовары.Сумма / (ПоступлениеТоваровУслугТовары.Количество * ПоступлениеТоваровУслугТовары.Коэффициент)
        ИНАЧЕ 0
    КОНЕЦ КАК Цена
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ГДЕ
    ПоступлениеТоваровУслугТовары.Номенклатура = &Номенклатура
    И ПоступлениеТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
    И ПоступлениеТоваровУслугТовары.Ссылка.Дата <= &КрайняяДата
 
УПОРЯДОЧИТЬ ПО
    ПоступлениеТоваровУслугТовары.Ссылка.Дата УБЫВ
Этот запрос можно и как подзапрос внутри другого запроса использовать, возвращает он одно значение или пустой набор, если ни одного проведенного документа поступления до указанной даты с указанной номенклатурой нет.
0
24.08.2015, 13:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2015, 13:00

Как задать единственность записи на период в регистре сведений?
опять про баранов:) имеется некое измекрение с некоей периодичностью, причем...

Как при удалении документа сделать движения в регистре цен
Народ, подскажите как при удалении документа, который осуществляет движения в...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru