Имя: Пароль:
1C
1С v8
Местонахождение ОС до перемещения и после
0 LexLip
 
04.04.12
16:28
При проведении документа ПеремещениеОС создается запись периодического РС МестонахождениеОСБухгалтерскийУчет. Никак не соображу как запросом получить местонахождение до перемещения чтобы в отчете получить строку вида ДокументПермещения|ОтКого|Кому. С полем Кому все понятно - СрезПоследних, а вот с полем ОтКого затык. Помогите советом, пожалуйста.
1 PR
 
04.04.12
16:31
Срез последних на границу документа исключая
2 LexLip
 
04.04.12
16:40
простите за мою тупость.. а как эту границу задать?
3 КМ155
 
04.04.12
16:41
(0)
ВЫБРАТЬ
   МестонахождениеОССрезПоследних.Регистратор КАК Регистратор,
   МестонахождениеОССрезПоследних.Местонахождение КАК Местонахождение
ПОМЕСТИТЬ Текущее
ИЗ
   РегистрСведений.МестонахождениеОС.СрезПоследних(, ОсновноеСредство = &ОсновноеСредство) КАК МестонахождениеОССрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
   МестонахождениеОС.Регистратор,
   МестонахождениеОС.Местонахождение,
   МестонахождениеОС.Период КАК Период
ИЗ
   РегистрСведений.МестонахождениеОС КАК МестонахождениеОС
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Текущее КАК Текущее
       ПО МестонахождениеОС.Регистратор <> Текущее.Регистратор
ГДЕ
   МестонахождениеОС.ОсновноеСредство = &ОсновноеСредство

УПОРЯДОЧИТЬ ПО
   Период
4 LexLip
 
04.04.12
16:43
Огромное Вам спасибо!
5 КМ155
 
04.04.12
16:46
(4) хотя вот так куртуазнее:
ВЫБРАТЬ
   МестонахождениеОССрезПоследних.Регистратор КАК Регистратор,
   МестонахождениеОССрезПоследних.Местонахождение КАК Местонахождение,
   МестонахождениеОССрезПоследних.ОсновноеСредство
ПОМЕСТИТЬ Текущее
ИЗ
   РегистрСведений.МестонахождениеОС.СрезПоследних(, ОсновноеСредство = &ОсновноеСредство) КАК МестонахождениеОССрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
   МестонахождениеОС.Регистратор,
   МестонахождениеОС.Местонахождение,
   МестонахождениеОС.Период КАК Период,
   МестонахождениеОС.ОсновноеСредство
ПОМЕСТИТЬ Старое
ИЗ
   РегистрСведений.МестонахождениеОС КАК МестонахождениеОС
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Текущее КАК Текущее
       ПО МестонахождениеОС.Регистратор <> Текущее.Регистратор
ГДЕ
   МестонахождениеОС.ОсновноеСредство = &ОсновноеСредство

УПОРЯДОЧИТЬ ПО
   Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Текущее.ОсновноеСредство,
   Текущее.Местонахождение КАК Текущее,
   ЕСТЬNULL(Старое.Местонахождение, "Не было переменщений") КАК Старое
ИЗ
   Текущее КАК Текущее
       ЛЕВОЕ СОЕДИНЕНИЕ Старое КАК Старое
       ПО Текущее.ОсновноеСредство = Старое.ОсновноеСредство
6 Tata001
 
04.04.12
16:55
(5)а если перемещений много было ???
7 КМ155
 
04.04.12
16:57
(6) то что случится с кодом ?
8 Tata001
 
04.04.12
17:03
(7) если были такие перемещения Иванов,Петров,Сидоров,Козин
то должно в итоге вытащится 3 строки.
====================
ВЫБРАТЬ ПЕРВЫЕ 1
   МестонахождениеОС.Регистратор,
   МестонахождениеОС.Местонахождение,
   МестонахождениеОС.Период КАК Период,
   МестонахождениеОС.ОсновноеСредство
ПОМЕСТИТЬ Старое
ИЗ
   РегистрСведений.МестонахождениеОС КАК МестонахождениеОС
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Текущее КАК Текущее
       ПО МестонахождениеОС.Регистратор <> Текущее.Регистратор
ГДЕ
   МестонахождениеОС.ОсновноеСредство = &ОсновноеСредство

УПОРЯДОЧИТЬ ПО
   Период
;

=============
что-то как-то не кашерно
9 КМ155
 
04.04.12
17:08
(8)[то должно в итоге вытащится 3 строки. ]
с какого бодуна
ТС нужно текущее и предыдущее состояние
10 LexLip
 
04.04.12
17:14
(9) все отлично заработало. Спасибо Вам еще раз!