Имя: Пароль:
1C
 
Как получить последнее значение из периодич регистра сведений по измерению?
,
0 AlexBor
 
naïve
26.01.15
13:34
ЕСТЬ РС Исполнители:  Измерения - Документ, Ресурсы - Исполнитель.
Требуется по измерению - Документ вытащить последнего исполнителя. Помогите как сделать?
1 Defender aka LINN
 
26.01.15
13:37
Позвать программиста, поставить задачу, заплатить денег, получить результат.
Именно в таком порядке.
2 AlexBor
 
naïve
26.01.15
13:38
(1) Ответ не правильный
3 kosts
 
26.01.15
13:38
(0) Запросом еще можно
4 Defender aka LINN
 
26.01.15
13:39
(2) А ты попробуй.
Как ни крути, а программист нужен.
5 Cube
 
26.01.15
13:39
(0) Виртуальная таблица "СрезПоследних".
6 Рэйв
 
26.01.15
13:40
(5)Сейчас будет вопрос- что это и с чем едят.
7 AlexBor
 
naïve
26.01.15
13:40
(4) Ответ не правильный
8 AlexBor
 
naïve
26.01.15
13:40
(6)  см п. 6
9 Mankubus
 
26.01.15
13:40
РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
ПолучитьПоследнее (GetLast)
Синтаксис:

ПолучитьПоследнее(<КонецПериода>, <Отбор>)
СП
10 Cube
 
26.01.15
13:40
(2) (7) Ну, если ты знаешь правильный ответ, чё пришел тогда? :)
11 Рэйв
 
26.01.15
13:40
(8)Чего?....
12 Cube
 
26.01.15
13:41
(9) Ну, ты сейчас научишь... Пусть запросом делает. Не надо тут пережитками клюшек махать...
13 kosts
 
26.01.15
13:46
Вот набросал, только типы на свои замени

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

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
ПоследнееФио = Неопределено;
Пока Выборка.Следующий() Цикл
    ПоследнееФио = Выборка.Фамилия;
КонецЦикла;
14 JeHer
 
26.01.15
13:46
(12) Да пусть сначала помашет, а то судя по (6), ТСу надо "сразу да положь".
15 kosts
 
26.01.15
13:48
(13) Еще я условие на Ссылку забыл. Добавь.
16 AlexBor
 
naïve
26.01.15
13:49
(15) Большое вам спасибо  ...счас попробую
17 Cube
 
27.01.15
04:40
(13) Мать моя женщина... Это ещё хуже, чем пережитки клюшек из (9)...
Читаем (5) и дедаем так:

Запрос = Новый Запрос("ВЫБРАТЬ
                        |    ФИОФизЛицСрезПоследних.Фамилия,
                        |    ФИОФизЛицСрезПоследних.Имя,
                        |    ФИОФизЛицСрезПоследних.Отчество
                        |ИЗ
                        |    РегистрСведений.ФИОФизЛиц.СрезПоследних(&Период, ФизЛицо = &ФизЛицо) КАК ФИОФизЛицСрезПоследних");
Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("ФизЛицо", ФизЛицо);
Выборка = Запрос.Выполнить().Выбрать();
ПоследнееФИО = ?(Выборка.Следующий(), Выборка.Фамилия, "");
18 Escander
 
27.01.15
04:55
сегодня не пятница?
19 Cube
 
27.01.15
05:01
(18) Не, пятница вчера была :)
20 kosts
 
27.01.15
06:08
(17) Не соответствует поставленной задаче.
21 Cube
 
27.01.15
06:27
(20) Обоснуешь?
22 kosts
 
27.01.15
06:29
(21) "вытащить последнего исполнителя"
23 Cube
 
27.01.15
06:35
(22) То есть, запрос из (17) получает не последнее ФИО на указанную дату по-твоему?

За-то запрос из (13) получает всё как надо, да? А ничего, что ты берешь первую запись, а не последнюю?
24 DrZombi
 
гуру
27.01.15
06:40
(1) Это дорого. В проспекте у 1С, же писано "Даже бухгалтер это сможет сделать" :)
25 kosts
 
27.01.15
06:42
(23) В (17) получает на текущую дату, а задача стояла последнее.
В (13) последнее возвратит, а не первое (если отбор по ссылке добавить).
26 Cube
 
27.01.15
06:50
(25) Ты что реально не догоняешь? Или прикалываешься?
27 Trance_1C
 
27.01.15
06:52
РС = РегистрыСведений.Исполнители.СрезПоследних(МояДата,Новый Структура("Документ",СсылкаНаМойДокумент));
28 kosts
 
27.01.15
06:53
(26) Не догоняю, в том, что мне не понятно, что тебе не нравиться...
29 Trance_1C
 
27.01.15
06:56
+(27) вместо СрезПоследних() используй ПолучитьПоследнее()
30 Cube
 
27.01.15
07:01
(28) С таким стажем... Позор.

Давай разжую.

В запрос (17) я добавил параметр с датой для того, что это правильно. Но ты можешь этот параметр удалить из запроса и тогда вернет последнюю запись, даже, если эта запись ошибочно занесена на 3015 год, ты её получишь. И не важно, что не она тебе была нужна, ты ведь задачу поставил - надо делать как написано.

Твой запрос (13) вернет в первой записи первую запись по дате. Ты отсортировал не по убыванию потому что. Иди учи мат часть.
И ещё - ты не используешь виртуальную таблицу СрезПоследних, следовательно, считываешь с БД всю таблицу и потом накладываешь на неё отборы и сортировки. Это быдлокод и на больших объемах будет жутко тормозить.

Иди потестируй сначала, потом пиши всякую чушь.

Вопросы есть?
31 chelentano
 
27.01.15
07:03
(30) он потом в выборке получает последнее ФИО :)
32 kosts
 
27.01.15
07:03
(30) Ляг полежи, и начни утро с другой ноги...
33 Cube
 
27.01.15
07:05
(31) А, точняк, он ещё и в выборке набыдлокодил - пробегает всю выборку, чтобы до последней записи дойти. До такого маразма я ещё не дожил...
34 kosts
 
27.01.15
07:06
(30) Я дал ТСу рабочий (может быть и не совсем оптимальный код), что бы начать диалог, поставить на путь истинный, а не сделать за него его работу в то время, когда у ТСа род занятий Programist и стаж 6 лет...
35 Cube
 
27.01.15
07:06
(32) Что я сказал не так? Ты с чем-то не согласен? Конструктивные возражения есть?
36 chelentano
 
27.01.15
07:07
(34) зачем учить плохому?
37 Cube
 
27.01.15
07:08
(34) У тебя тоже стаж 6 лет, но ты от ТС не далеко ушел, судя по сему...
Ты даешь ТС правильный быдлокод и надеешься, что он его перепишет? Наивный.
38 kosts
 
27.01.15
07:09
(37) Мне мало дела, что он у себя напишет. А если скопирует базу не сломает. Зато все будут знать какой он специалист.
39 Cube
 
27.01.15
07:11
(38) Пока мы только знаем, какой ты специалист...
Не позорься лучше.
40 kosts
 
27.01.15
07:11
(36) Что бы знать как правильно, надо уметь отличать правильное от не правильного, т.е. не правильное тоже надо знать.
41 Escander
 
27.01.15
07:16
(24) в проспекте не написано "Даже каждый бухгалтер сможет это сделать"
42 kosts
 
27.01.15
07:20
(39) Какой ты скучный. Веселее надо быть. ТС хорошую тему создал, веселую.
43 KnyaZZZi
 
27.01.15
07:49
В руководстве пользователя написано, что программисты нинужны
44 MiniMuk
 
27.01.15
08:42
(43) не нужны пока бух не кричит, тут все неправлиьно поправьте все
Закон Брукера: Даже маленькая практика стоит большой теории.