Имя: Пароль:
1C
1С v8
Вложенный запрос
,
0 Seriy
 
27.10.11
14:41
Есть документ Док1 с реквизитами шапки: Сотрудник, ДатаНачала, Сумма
Есть периодический регистр сведений РаботникиОрганизаций с измерением: Сотрудник, с ресурсами: Должность, Подразделение.

Запросом нужно получить такую таблицу
Док1_Сотрудник | Док1_ДатаНачала | Должность (на дату начала в этой же строке)

Помогите написать запрос. Только левым соединением тут, как я понимаю, не обойтись
1 Seriy
 
27.10.11
14:43
ВЫБРАТЬ
Док1.Сотрудник,
Док1.ДатаНачала,
РаботникиОрганизаций.Должность
ИЗ Документ.Док1 КАК Док1
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(??? Дата ???, Сотрудник = ???Сотрудник) КАК РаботникиОрганизаций
2 Error pro
 
27.10.11
14:45
ВЫБРАТЬ
Док1.Сотрудник,
Док1.ДатаНачала,
РаботникиОрганизаций.Должность
ИЗ Документ.Док1 КАК Док1
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(??? Дата ???, Сотрудник = ???Сотрудник) КАК РаботникиОрганизаций
ПО Док1.Сотрудник = РаботникиОрганизаций.Сотрудник
3 Seriy
 
27.10.11
14:48
(2) ПО Док1.Сотрудник = РаботникиОрганизаций.Сотрудник
- это понятно

Но как сделать , чтоб работало? Ведь дату среза регистра надо менять в каждой строчке
4 Error pro
 
27.10.11
14:49
(3) У тебя реквизиты шапки, какие строчки?
5 Ненавижу 1С
 
гуру
27.10.11
14:49
6 Seriy
 
27.10.11
14:51
(4) по каждой строке запроса ! лучше б дельный совет дал, а не знаешь - зачем отвечать? )
7 Seriy
 
27.10.11
14:51
(5) спасибо, щас посомтрю
8 Axel2009
 
27.10.11
15:00
а что за дата начала??
9 Seriy
 
27.10.11
15:17
(8) все, уже сделал как в (5), спасибо =))
ДатаНачала - это реквизит шапки документа
10 Axel2009
 
27.10.11
15:20
должность на дату начала - срезпервых если что.
11 ДемонМаксвелла
 
27.10.11
15:38
(10) не вводи людей в заблуждение, должность на любую дату это срез последних
12 ДемонМаксвелла
 
27.10.11
15:40
вот запрос, измени под себя

ВЫБРАТЬ
   РаботникиОрганизацийСрезПоследних.Период,
   РаботникиОрганизацийСрезПоследних.Сотрудник,
   РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок,
   РаботникиОрганизацийСрезПоследних.Организация,
   РаботникиОрганизацийСрезПоследних.Должность
ПОМЕСТИТЬ Данные
ИЗ
   РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаНач, ) КАК РаботникиОрганизацийСрезПоследних

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(РаботникиОрганизаций.Период, ДЕНЬ),
   РаботникиОрганизаций.Сотрудник,
   РаботникиОрганизаций.ЗанимаемыхСтавок,
   РаботникиОрганизаций.Организация,
   РаботникиОрганизаций.Должность
ИЗ
   РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
   РаботникиОрганизаций.Период > &ДатаНач
   И РаботникиОрганизаций.Период <= &ДатаКон
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК Период
ПОМЕСТИТЬ Дни
ИЗ
   РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
   РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНач И &ДатаКон
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Дни.Период,
   Данные.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
   Данные.Организация,
   Данные.Должность,
   Данные.Период КАК ПериодИзменения,
   Данные.Сотрудник
ПОМЕСТИТЬ ТаблицаСДублями
ИЗ
   Дни КАК Дни
       ЛЕВОЕ СОЕДИНЕНИЕ Данные КАК Данные
       ПО Дни.Период >= Данные.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТаблицаСДублями.Организация,
   ТаблицаСДублями.Сотрудник,
   ТаблицаСДублями.Период,
   МАКСИМУМ(ТаблицаСДублями.ПериодИзменения) КАК ПериодИзменения
ПОМЕСТИТЬ ТаблицаСгруппированная
ИЗ
   ТаблицаСДублями КАК ТаблицаСДублями

СГРУППИРОВАТЬ ПО
   ТаблицаСДублями.Организация,
   ТаблицаСДублями.Сотрудник,
   ТаблицаСДублями.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТаблицаСгруппированная.Организация,
   ТаблицаСгруппированная.Сотрудник,
   ТаблицаСгруппированная.Период,
   ТаблицаСДублями.Должность
ИЗ
   ТаблицаСгруппированная КАК ТаблицаСгруппированная
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаСДублями КАК ТаблицаСДублями
       ПО ТаблицаСгруппированная.Организация = ТаблицаСДублями.Организация
           И ТаблицаСгруппированная.Сотрудник = ТаблицаСДублями.Сотрудник
           И ТаблицаСгруппированная.Период = ТаблицаСДублями.Период
           И ТаблицаСгруппированная.ПериодИзменения = ТаблицаСДублями.ПериодИзменения

СГРУППИРОВАТЬ ПО
   ТаблицаСгруппированная.Организация,
   ТаблицаСгруппированная.Сотрудник,
   ТаблицаСгруппированная.Период,
   ТаблицаСДублями.Должность
AdBlock убивает бесплатный контент. 1Сергей