|
Смена периода в регистрах сведений. | ☑ | ||
---|---|---|---|---|
0
KuJIT
01.08.14
✎
12:10
|
Есть регистр сведений. Есть ДАта1. Нужно вытащить самые последние регистры, если их период (дата2) больше, чем ДАта1, тогда дата2 нужно заменить на ДАта1. Как это сделать? ПРостым запросом проблема не решается?
|
|||
1
Лефмихалыч
01.08.14
✎
12:13
|
"вытащить самые последние регистры" - это что? регистрАТОРЫ?
|
|||
2
Godofsin
01.08.14
✎
12:14
|
решается, чо нет то? Получай записи, потом меняй
|
|||
3
KuJIT
01.08.14
✎
12:21
|
(1) нене, нафига мне регистраторы менять? Мне нужно запись в регистре просто поменять
|
|||
4
KuJIT
01.08.14
✎
12:21
|
(2) А как к ним обращаться? Как запросом их вытащить? Там же нет ссылок, как в доках или справочниках
|
|||
5
Один С
01.08.14
✎
12:24
|
не пойму, чо происходит? порог вхождения снизился штоле?
|
|||
6
KuJIT
01.08.14
✎
12:24
|
(3) К тому же регистратор у этого регистра не используется
|
|||
7
KuJIT
01.08.14
✎
12:25
|
(5) Ты о чем?
|
|||
8
m-serg74
01.08.14
✎
12:27
|
(7) к "дубовости вопрошающего"
|
|||
9
KuJIT
01.08.14
✎
12:30
|
Ок. Может быть я дубовый. Только эта тема не с обсуждениями дубовости автора. Лучше бы помог советом, пусть и очевидным для тебя. Или тебе формулировка вопроса не понятна? (8)
|
|||
10
Godofsin
01.08.14
✎
12:32
|
Выборка = РегистрыСведений.КурсыВалют.Выбрать('20130101',
'20131231');//, Отбор); Пока Выборка.Следующий() Цикл // изменение существующей МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи(); МенеджерЗаписи.Прочитать(); МенеджерЗаписи.Курс = 25; // МенеджерЗаписи.Записать(); // удаление существующей //Выборка.ПолучитьМенеджерЗаписи().Удалить(); КонецЦикла; |
|||
11
m-serg74
01.08.14
✎
12:32
|
(9) в (2) все популярно написали
|
|||
12
KuJIT
01.08.14
✎
12:41
|
(10) А как именно все последние вытащить можно?
|
|||
13
KuJIT
01.08.14
✎
17:04
|
Пришел к такому варианту:
ГосНомер = Перечисления.ДополнительнаяИнформацияАвтомобилей.ГосНомер; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | АвтомобилиСрезПервых.Период, | АвтомобилиСрезПервых.Автомобиль, | АвтомобилиСрезПервых.Значение |ИЗ | РегистрСведений.Автомобили.СрезПервых КАК АвтомобилиСрезПервых |ГДЕ | АвтомобилиСрезПервых.ВидЗначения = &ВидЗначения" ; Запрос.УстановитьПараметр("ВидЗначения", ГосНомер); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.Период > ЭтотОбъект.дата Тогда НаборЗаписей = РегистрыСведений.Автомобили.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Автомобиль.Установить(Выборка.Автомобиль); НаборЗаписей.Отбор.ВидЗначения.Установить(ГосНомер); НаборЗаписей.Прочитать(); Для Каждого запись из НаборЗаписей Цикл Если запись.Период = Выборка.Период Тогда запись.Период = ЭтотОбъект.дата; КонецЕсли; КонецЦикла; НаборЗаписей.Записать(); КонецЕсли; КонецЦикла; |
|||
14
Лефмихалыч
01.08.14
✎
17:08
|
не, ну логично, чо. Последние же нужны, по этому срез первых...
|
|||
15
KuJIT
01.08.14
✎
17:17
|
Не придирайся к мелочам. -_-
Очевидно же, что задача незначительно поменялась. Сути то не меняет. (14) |
|||
16
hhhh
01.08.14
✎
17:20
|
(15) вообще срез убери
|
|||
17
KuJIT
01.08.14
✎
17:26
|
Зачем? Мне нужно первые же найти. (16)
|
|||
18
hhhh
01.08.14
✎
17:32
|
(17) ну ты поменяешь первые, которые больше дата1, а окажется и вторые тоже больше дата1. Они станут первыми. То есть не решишь вопрос. В базе останутся записи больше дата1.
|
|||
19
KuJIT
01.08.14
✎
17:41
|
Мне не нужно, чтобы их не было. Задача звучит теперь так: Если нет записей в регистре на ДАта1 (но есть позже), то самую древнюю запись устанавливаем на ДАта1.
Как-то так. (18) |
|||
20
KuJIT
01.08.14
✎
17:42
|
А вообще, это не важно все. Важно то, что в названии темы.
|
|||
21
hhhh
01.08.14
✎
17:50
|
ну и что? ваш вариант не работает?
|
|||
22
KuJIT
01.08.14
✎
17:53
|
Да, вроде, работает. (21)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |