Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как при помощи запроса получить дату изменения отдельного ресурса?

Как при помощи запроса получить дату изменения отдельного ресурса?
Я
   Беата Смит
 
30.03.19 - 16:52
Задача вроде тривиальная, но что допереть сама не могу. Есть регистр сведений "Договоры", содержащий примерно десяток изменяемых ресурсов для объекта из справочника "Клиенты". Мне нужно получить историю изменений всего одного ресурса - подрядчика. Указанный ниже запрос спокойно с этим справляется, за исключением одного НО. Мне нужно вывести в мою таблицу с историей еще и дату изменения. Однако, если я напишу в запросе Выбрать Договоры.Период КАК Период, у меня в результате получаются десятки одинаковых строк, отличающихся только этими самыми полями Период. Я понимаю, почему так происходит: в те даты происходили изменения каких-то других ресурсов, а не Подрядчика. Но как тогда сделать, чтобы из сравнения строк таблицы на РАЗЛИЧНЫЕ исключить сравнения по полю Период? Или каким-то вложенным запросом к таблице, получающейся по нижеуказанному коду, прикрутить вывод Периода только для найденных ранее строк? Запрос такой сообразить не могу. Хэлп!(

ВЫБРАТЬ РАЗЛИЧНЫЕ
    Клиенты.Код КАК Код,
    Клиенты.Наименование КАК Наименование,
    Договоры.Подрядчик КАК Контрагент,
ИЗ
    Справочник.Клиенты КАК Клиенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Договоры КАК Договоры
        ПО Клиенты.Ссылка = Договоры.Клиент.Ссылка
СГРУППИРОВАТЬ ПО
    Клиенты.Код,
    Клиенты.Наименование,
    Договоры.Подрядчик
УПОРЯДОЧИТЬ ПО
    Код,
    Наименование,
    Контрагент
 
 
   vde69
 
1 - 31.03.19 - 00:16
ВЫБРАТЬ РАЗЛИЧНЫЕ 
    Клиенты.Код КАК Код, 
    Клиенты.Наименование КАК Наименование, 
    Договоры.Подрядчик КАК Контрагент, 
макс(РегистрСведений.Период) как дата
ИЗ 
    Справочник.Клиенты КАК Клиенты 
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Договоры КАК Договоры 
        ПО Клиенты.Ссылка = Договоры.Клиент.Ссылка 
СГРУППИРОВАТЬ ПО 
    Клиенты.Код, 
    Клиенты.Наименование, 
    Договоры.Подрядчик 
УПОРЯДОЧИТЬ ПО 
    Код, 
    Наименование, 
    Контрагент
   Беата Смит
 
2 - 31.03.19 - 14:36
(1) не помогает, или я совсем тупица, но ни 
max(Договоры.Период) как дата
ни 
min(Договоры.Период) как дата

эффекта не дают, все те же десятки одинаковых строк выводятся в таблицу (
   palsergeich
 
3 - 31.03.19 - 14:40
А других полей точно не?
   Беата Смит
 
4 - 31.03.19 - 14:55
(3) В запросе - нет, в регистре-то полно. Ну вот я убираю строку с Периодом из запроса, у меня выводится нормальная таблица, содержащая только историю изменения. Добавляю в запрос поле Период, хоть с макс, хоть без макс - снова десятки одинаковых строк, отличающиеся датами.
   Беата Смит
 
5 - 31.03.19 - 14:58
Регистр периодический, подчиненный регистратору, если что.
   Garykom
 
6 - 31.03.19 - 15:05
(0) Запись в РС целиком меняется. Чтобы отловить только смену Подрядчика надо правильно соединить с табличкой до/после даты, где подрядчик не равен.

+1 и -1 от даты записи делаешь и получаешь значения для даты где менялось.
Затем эти даты (только правильные) соединяешь со своей текущей.
   Garykom
 
7 - 31.03.19 - 15:19
Как не думаю но только запросами без кода слишком сложно получается, хотя кодом простейше.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.