|
Как при помощи запроса получить дату изменения отдельного ресурса? | ☑ | ||
---|---|---|---|---|
0
Беата Смит
30.03.19
✎
16:52
|
Задача вроде тривиальная, но что допереть сама не могу. Есть регистр сведений "Договоры", содержащий примерно десяток изменяемых ресурсов для объекта из справочника "Клиенты". Мне нужно получить историю изменений всего одного ресурса - подрядчика. Указанный ниже запрос спокойно с этим справляется, за исключением одного НО. Мне нужно вывести в мою таблицу с историей еще и дату изменения. Однако, если я напишу в запросе Выбрать Договоры.Период КАК Период, у меня в результате получаются десятки одинаковых строк, отличающихся только этими самыми полями Период. Я понимаю, почему так происходит: в те даты происходили изменения каких-то других ресурсов, а не Подрядчика. Но как тогда сделать, чтобы из сравнения строк таблицы на РАЗЛИЧНЫЕ исключить сравнения по полю Период? Или каким-то вложенным запросом к таблице, получающейся по нижеуказанному коду, прикрутить вывод Периода только для найденных ранее строк? Запрос такой сообразить не могу. Хэлп!(
ВЫБРАТЬ РАЗЛИЧНЫЕ Клиенты.Код КАК Код, Клиенты.Наименование КАК Наименование, Договоры.Подрядчик КАК Контрагент, ИЗ Справочник.Клиенты КАК Клиенты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Договоры КАК Договоры ПО Клиенты.Ссылка = Договоры.Клиент.Ссылка СГРУППИРОВАТЬ ПО Клиенты.Код, Клиенты.Наименование, Договоры.Подрядчик УПОРЯДОЧИТЬ ПО Код, Наименование, Контрагент |
|||
1
vde69
31.03.19
✎
00:16
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
Клиенты.Код КАК Код, Клиенты.Наименование КАК Наименование, Договоры.Подрядчик КАК Контрагент, макс(РегистрСведений.Период) как дата ИЗ Справочник.Клиенты КАК Клиенты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Договоры КАК Договоры ПО Клиенты.Ссылка = Договоры.Клиент.Ссылка СГРУППИРОВАТЬ ПО Клиенты.Код, Клиенты.Наименование, Договоры.Подрядчик УПОРЯДОЧИТЬ ПО Код, Наименование, Контрагент |
|||
2
Беата Смит
31.03.19
✎
14:36
|
(1) не помогает, или я совсем тупица, но ни
max(Договоры.Период) как дата ни min(Договоры.Период) как дата эффекта не дают, все те же десятки одинаковых строк выводятся в таблицу ( |
|||
3
palsergeich
31.03.19
✎
14:40
|
А других полей точно не?
|
|||
4
Беата Смит
31.03.19
✎
14:55
|
(3) В запросе - нет, в регистре-то полно. Ну вот я убираю строку с Периодом из запроса, у меня выводится нормальная таблица, содержащая только историю изменения. Добавляю в запрос поле Период, хоть с макс, хоть без макс - снова десятки одинаковых строк, отличающиеся датами.
|
|||
5
Беата Смит
31.03.19
✎
14:58
|
Регистр периодический, подчиненный регистратору, если что.
|
|||
6
Garykom
гуру
31.03.19
✎
15:05
|
(0) Запись в РС целиком меняется. Чтобы отловить только смену Подрядчика надо правильно соединить с табличкой до/после даты, где подрядчик не равен.
+1 и -1 от даты записи делаешь и получаешь значения для даты где менялось. Затем эти даты (только правильные) соединяешь со своей текущей. |
|||
7
Garykom
гуру
31.03.19
✎
15:19
|
Как не думаю но только запросами без кода слишком сложно получается, хотя кодом простейше.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |