Имя: Пароль:
1C
1С v8
v8: Срез последних в периодическом регистре сведений.
0 Анцеранана
 
21.06.12
10:22
Не могу получить последнего менеджера по договорам контрагента ООО "Мегофон"...

Изначальный текст запроса такой:

ВЫБРАТЬ
   ИзмененияМенеджераКонтрагентаСрезПоследних.Период,
   ИзмененияМенеджераКонтрагентаСрезПоследних.Менеджер,
   ИзмененияМенеджераКонтрагентаСрезПоследних.КонтрагентДоговор

ИЗ
   РегистрСведений.ИзмененияМенеджераКонтрагента.СрезПоследних(&КонецПериода, КонтрагентДоговор.Владелец = &Контрагент) КАК ИзмененияМенеджераКонтрагентаСрезПоследних


Дано: Договор находится в измерении( не ресурсе) КонтрагентДоговор независимого периодического регисра сведений...
Выводит мне всех менеджеров по договорам данного контрагента, а мне нужно только последнего...

Другой вариант  того же запроса - тот же результат:

ВЫБРАТЬ РАЗЛИЧНЫЕ
   Договоры.Ссылка
ПОМЕСТИТЬ Договоры
ИЗ
   Справочник.Договоры КАК Договоры
ГДЕ
   Договоры.Владелец = &Контрагент
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Договоры.Ссылка,
   Ответственые.Менеджер,
   Ответственые.Период
ИЗ
   Договоры КАК Договоры
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Ответственые КАК Ответственые
       ПО Договоры.Ссылка = Ответственые.КонтрагентДоговор


Хелп!)
1 Realist_x1
 
21.06.12
10:24
Менеджер это ресурс или измерение таки ?
2 unregistered
 
21.06.12
10:29
(0) Поздравляю! Ваш запрос работает правильно.
В чем вопрос?
3 Reset
 
21.06.12
10:32
Максимум по периоду он хочет, вероятно
4 Анцеранана
 
21.06.12
10:38
(0) я в курсе
(1) менеджер это измерение (!!!), там блин вообще ресурсов нет в этом регистре и сделать ничего нельзя((
(3)максимум по договору,по периоду, да
5 Анцеранана
 
21.06.12
10:39
(2) Сейчас по одному какому-либо договору выводятся несколько менеджеров..Это не правильно)
6 unregistered
 
21.06.12
10:40
(4) Сортируйте по периоду по убыванию и ВЫБРАТЬ ПЕРВЫЕ 1.
7 unregistered
 
21.06.12
10:42
(5) Что значит "неправильно"?
Если один договор может вести только один менеджер, значит надо менеджера перенести из измерения в ресурс.
8 Reset
 
21.06.12
10:42
(4) Так примерно можно
ВЫБРАТЬ первые 1
   ИзмененияМенеджераКонтрагентаСрезПоследних.Период,
   ИзмененияМенеджераКонтрагентаСрезПоследних.Менеджер,
   ИзмененияМенеджераКонтрагентаСрезПоследних.КонтрагентДоговор

ИЗ
   РегистрСведений.ИзмененияМенеджераКонтрагента.СрезПоследних(&КонецПериода, КонтрагентДоговор.Владелец = &Контрагент) КАК ИзмененияМенеджераКонтрагентаСрезПоследних
Упорядочить по Период убыв
9 Reset
 
21.06.12
10:43
(6) не видел, сорри
10 Анцеранана
 
21.06.12
10:47
(8)проверял уже, Не катит, результат запроса возвращает тогда одну строку по одному из договоров по всему Контрагенту а мне нужно ПО КАЖДОМУ договору контрагента по 1-й строке
(7) Так и нужно сделать по уму, но невозможно, обновлять гиганстсую базу и прочие технические моменты, а руководитель в отпуске, порежет на мелкие кусочки когда вернется, поэтому давайцте считать что таки Измерение, а не ресурс- как есть.
11 Анцеранана
 
21.06.12
10:52
(8) то есть в исходном примере:

Договор 1  Иванов 10.03.08
Договор 1  Петров 10.04.09
Договор 2  Сидоров 10.01.09

в вашем варианте получилось:
Договор 1  Петров 10.04.09

а мне надо:
Договор 1  Петров 10.04.09
Договор 2  Сидоров 10.01.09
12 Reset
 
21.06.12
10:54
тогда группировать по Менеджер, с МАКСИМУМ по период
13 Анцеранана
 
21.06.12
11:02
(12)  дык только по менеджеру группировать не получится ... если сделать вот так...

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

СГРУППИРОВАТЬ ПО
   ИзмененияМенеджераКонтрагентаСрезПоследних.Менеджер,
   ИзмененияМенеджераКонтрагентаСрезПоследних.КонтрагентДоговор
;

то результат получается как в (0) , попадают все...
14 Reset
 
21.06.12
11:13
Вот так попробуй

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

СГРУППИРОВАТЬ ПО
   ИзмененияМенеджераКонтрагентаСрезПоследних.Менеджер;
   
ВЫБРАТЬ
   ИзмененияМенеджераКонтрагентаСрезПоследних.Период КАК Период,
   ИзмененияМенеджераКонтрагентаСрезПоследних.Менеджер,
   ИзмененияМенеджераКонтрагентаСрезПоследних.КонтрагентДоговор
ИЗ
Менеджеры
   Левое соединение
   РегистрСведений.ИзмененияМенеджераКонтрагента.СрезПоследних(&КонецПериода, КонтрагентДоговор.Владелец = &Контрагент) КАК СрезПоследних
   по Менеджеры.Период=СрезПоследних.Период И Менеджеры.Менеджер=СрезПоследних.Менеджер
15 Reset
 
21.06.12
11:14
во втором пакете вместо ИзмененияМенеджераКонтрагентаСрезПоследних везде "СрезПоследних" только
16 Reset
 
21.06.12
11:17
Не, опять фигня по моему
17 Reset
 
21.06.12
11:21
Вот так вроде должнго показать последнего по каждому договору (если это надо, я уже запутался)

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

СГРУППИРОВАТЬ ПО
   ИзмененияМенеджераКонтрагентаСрезПоследних.КонтрагентДоговор;
   
ВЫБРАТЬ
   СрезПоследних.Период КАК Период,
   СрезПоследних.Менеджер,
   СрезПоследних.КонтрагентДоговор
ИЗ
ПоследниеДоговоры
   Левое соединение
   РегистрСведений.ИзмененияМенеджераКонтрагента.СрезПоследних(&КонецПериода, КонтрагентДоговор.Владелец = &Контрагент) КАК СрезПоследних
   по ПоследниеДоговоры.Период=СрезПоследних.Период И ПоследниеДоговоры.КонтрагентДоговор=СрезПоследних.КонтрагентДоговор
18 Анцеранана
 
21.06.12
11:52
Вообщем немного не так сделал, но близко к этому, спасибо Reset идея с максимумом по периоду походу правильная...

PS Ругаю дебилоидов, которые криво спроектированли регистр. Менеджер - это однозначно ресурс должен был быть...
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn