Имя: Пароль:
1C
1С v8
РС запрос определить "ДатаПо"
0 spiller26
 
29.05.13
09:44
Есть РС самописный
"_ИсторияМенеджеров" (переодический - в пределах дня)
Измерения - "Контрагент" (Спр.Контрагенты)
Ресурс - "Менеджер" (Спр.Пользователи)

В него записывается с какого момента времени у "Контрагента" меняется "Менеджер"

Записи в РС:
01.01.2013  - ООО"РК" - Пупкин П.П.
02.05.2013  - ООО"РК" - Иванов И.И.
04.05.2013  - ООО"РК" - Сидоров С.С.
09.05.2013  - ООО"РК" - Пупкин П.П.

Не могу в запросе вытащить даты прекращения действия "Менеджера" для "Контрагента", т.е. нужна примерно такая таблица на выходе (ДатаН, ДатаК):
------------------------------------------------
ДатаС          ДатаПо     Контрагент  Менеджер
------------------------------------------------
01.01.2013  - 02.05.2013 - ООО"РК" - Пупкин П.П.
02.05.2013  - 04.05.2013 - ООО"РК" - Иванов И.И.
04.05.2013  - 09.05.2013 - ООО"РК" - Сидоров С.С.
09.05.2013  -  ДатаК     - ООО"РК" - Пупкин П.П.

Помогите, голова кипит уже!
1 Defender aka LINN
 
29.05.13
09:49
соедини регистр с ним же
2 spiller26
 
29.05.13
09:52
(1) соединить по какому условию?
3 Defender aka LINN
 
29.05.13
09:58
4 эцп
 
29.05.13
11:09
(2)

ВЫБРАТЬ
   ВТA.Контрагент КАК Контрагент,
   ВТA.Менеджер КАК Менеджер,
   ВТA.Дата КАК ДатаС,
   ДОБАВИТЬКДАТЕ(МИНИМУМ(ЕСТЬNULL(ВТБ.Дата, ДОБАВИТЬКДАТЕ(&КонецПериода, СЕКУНДА, 1))), ДЕНЬ, -1) КАК ДатаПо
ИЗ
   ВТМояТаблица КАК ВТA
       ЛЕВОЕ СОЕДИНЕНИЕ ВТМояТаблица КАК ВТБ
       ПО ВТA.Контрагент = ВТБ.Контрагент
           И ВТA.Менеджер = ВТБ.Менеджер
           И ВТA.Дата < ВТБ.Дата

СГРУППИРОВАТЬ ПО
   ВТA.Проект,
   ВТA.Удостоверение,
   ВТA.Дата
5 эцп
 
29.05.13
11:11
СГРУППИРОВАТЬ ПО
   ВТA.Контрагент,
   ВТA.Менеджер,
   ВТA.Дата
6 spiller26
 
29.05.13
11:13
(4) какие данные в  "ВТМояТаблица" и "ВТА"?
7 spiller26
 
29.05.13
11:22
(6) разобрался где что
8 spiller26
 
29.05.13
11:25
(4) Жесть конечно, просто минусовать дату :)
9 spiller26
 
29.05.13
11:30
(4,5)
ВЫБРАТЬ
   ВТA.Контрагент КАК Контрагент,
   ВТA.Менеджер КАК Менеджер,
   ВТA.Дата КАК ДатаС,
   ДОБАВИТЬКДАТЕ(МИНИМУМ(ЕСТЬNULL(ВТБ.Дата, ДОБАВИТЬКДАТЕ(&КонецПериода, СЕКУНДА, 1))), ДЕНЬ, -1) КАК ДатаПо
ИЗ
   ВТМояТаблица КАК ВТA
       ЛЕВОЕ СОЕДИНЕНИЕ ВТМояТаблица КАК ВТБ
       ПО ВТA.Контрагент = ВТБ.Контрагент
          // И ВТA.Менеджер = ВТБ.Менеджер
           И ВТA.Дата < ВТБ.Дата

СГРУППИРОВАТЬ ПО
   ВТA.Контрагент,
   ВТA.Менеджер,
   ВТA.Дата

Убрать нужно // И ВТA.Менеджер = ВТБ.Менеджер
т.к. Менеджеры разные всё прошло
10 spiller26
 
29.05.13
11:33
ВСЕМ ПО ПРЯНИКУ. БЛАГОДАРЮ!!!