Параметры виртуальной таблицы #807897


#0 by NikolayNiko
Здравствуйте! Пожалуйста подскажите, как в параметрах виртуальной таблицы периодического регистра сведений установить отбор так, чтобы получать только последнюю запись по одному конкретному измерению. Всего измерений 4. Один ресурс. Ресурс не заполнен.
#1 by Волшебник
Вы как пробовали?
#2 by NikolayNiko
Не знаю даже как попробовать
#3 by Волшебник
Не стесняйтесь.
#4 by Египтянин
надо попробовать с прочтения книжки ну, или вон хотя бы Митичкина почитай.
#5 by mistеr
Виртуальная таблица СрезПоследних возвращает записи сразу по всем измерениям. Если нужно только по одному, то кроме задания параметров ВТ, нужно дополнительно упорядочить по периоду (по убыванию) и взять ПЕРВЫЕ 1.
#6 by Vladal
так уже брать и не виртуальную а обычную. озвучь задачу полностью. Может там срез последних на каждую дату, или статус договора на момент времени и т.д. И т.п. Не стесняйся, здесь как у доктора — чем четче анамнеза, тем точней диагноз.
#7 by Волшебник
Дык я сразу спросил в и Чувствую себя доктором
#8 by Cyberhawk
"установить отбор так, чтобы получать только последнюю запись по одному конкретному измерению" // Покажи несколько последних записей таблицы и что должно быть на выходе
#9 by Sasha_H
зачем упорядычивать по периода когда ты используешь СрезПоследних?
#10 by NikolayNiko
Если конкретнее, то в периодическом регистре сведений есть измерения: Организация, контрагент, договор; и одно измерение: Аннулировано. Измерение в регистре вообще не заполняется. Мне нужно получить последнюю запись по договору. Вот ломаю голову по незнанию, как же получается эта последняя запись, когда делаешь запрос с помощью конструктора. Да знаю, что надо читать и учиться или вызывать программиста, но надо сделать самому и сегодня же.
#11 by NikolayNiko
И один Ресурс*
#12 by МимохожийОднако
Табличку с примерными данными покажи
#13 by NikolayNiko
Период Регистратор НомерСтроки Организация Контрагент Договор Аннулирвоано
#14 by МимохожийОднако
Теперь покажи запрос, которым пытался получить хоть что-то
#15 by NikolayNiko
Ведь можно как-то просто в параметрах вирт таблицы указать измерение по которому должен идти поиск последнего. Именно не по всем измерениям, а по одному только. Как это описать, мне только это нужно. Нигде не могу найти
#16 by МимохожийОднако
Есть обработка "Консоль запросов". На ней потренируйся.
#17 by h-sp
можете не искать, нет такой возможности.
#18 by jsmith82
Аннулировано надо делать измерением, а не ресурсом и указывать в отборе НЕ Аннулировано
#19 by jsmith82
Ой, чё это я, не то погнал
#20 by AlvlSpb
Автору надо получить последнюю запись по конкретному договору? ВЫБРАТЬ ПЕРВЫЕ 1 // поля выбора Или У меня послепраздничный синдром и я не понял задачи?
#21 by Antony8x
совершенно верно пишите, автор в написал
#22 by Рэйв
Для того чтобы по одному измерению срез последних дало его только одно и надо поставить в Выбрать. Сколько измерений будет выбрано - столько вариантов разреза и получишь.
#23 by youalex
Срез последних всегда получает все возможные комбинации измерений, и состав полей выборки (секция ВЫБРАТЬ) тут не играет.
#24 by NikolayNiko
Нет, не по конкретному документу, а по всем. Например если есть две записи с одним договором, то взять последний. То есть как сказал , не возможно?
#25 by NikolayNiko
Как тогда? Группировать по договору и брать максимальное?
#26 by МимохожийОднако
Тебе нужен листочек бумажки,если нет экселя. Выпиши в него табличку с данными и подумай. Пока каша в голове - программу не составишь.
#27 by Salimbek
Надо что-то типа такого: (Выбрать Макс(Период) КАК МПериод, Договор КАК МДоговор ИЗ РегистрСведений.ТвойРегистр ГДЕ Договор=&Договор) Как Выборка ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТвойРегистр КАК Данные ПО МПериод=Данные.Период И МДоговор=Данные.Договор
#28 by youalex
У тебя в регистре измерения Организация, контрагент, договор. Условие "Договор = &Договор" в параметрах среза фильтрует по договору, это то что тебе и нужно. Контрагент - это скорее всего справочник Контрагенты, который является владельцем спр. Договоры, т.е. Контрагент = Договор.Владелец. Остается Организация - если у тебя в регистре по выбранному договору одна организация, то будет одна строка, если две - то две строки, т.е. будут выбираться все комбинации с учетом условия Договор = &Договор. Более правильным будет указать в условиях все измерения, т.е. ИЗ РегистрСведений.НашРегистр.СрезПоследних(, Договор = &Договор И Контрагент = &Контрагент И Организация = &Организация) ) В параметры запроса пихаешь Договор (он у тебя уже есть), Контрагент (Договор.Владелец) и Организацию (нужно понять откуда ее взять, если она в регистре не заполнена, то просто Справочники.Организация.ПустаяСсылка)
#29 by DrZombi
Все и сразу, и желательно без знаний, феерично :)
#30 by DrZombi
Последний куда, вы нарисуйте, на бумаге, что бы "мы" поняли :)
#31 by DrZombi
Молодец, ты уже близок к решению, вскоре за СП сядешь и напишешь запрос ;)
#32 by Salimbek
А, да, в первой выборке надо группировку по Договор
#33 by NikolayNiko
и По моему что-то не то. ГДЕ Договор=&Договор. Если правильно понимаю будет браться только определенный договор, а мне как я уже писал нужны все. Вот: Структура регистра: Период|Регистратор|Номер|Организация|Контрагент|Договор|Условия|Аннулировано Например: 01.01.16|Регистр1|Номер|Орг1|Контр1|Договор1|Усл1|Ложь 01.02.16|Регистр1|Номер|Орг1|Контр1|Договор1|Усл2|Ложь 01.02.16|Регистр1|Номер|Орг1|Контр1|Договор2|Усл3|Ложь 01.03.16|Регистр1|Номер|Орг1|Контр1|Договор2|Усл4|Ложь Из этого хочу получить: 01.02.16|Регистр1|Номер|Орг1|Контр1|Договор1|Усл2|Ложь 01.03.16|Регистр1|Номер|Орг1|Контр1|Договор2|Усл4|Ложь
#34 by NikolayNiko
Создаю вложенный запрос. Беру два поля, Договор и период. Группирую договора по МаксПериоду. Хорошо, но как в основном запросе обратиться к полю условие если я его не выбирал во вложенном запросе. А если я его выбираю во вложенном - тогда оно попадает в группировку и результат уже не тот. Что за ... ?! Где лыжи не едут?!
#35 by Михаил Козлов
Если правильно понял: - выгрузить во временную таблицу договор и МАКС(Период) из таблицы регистра; - соединить таблицу регистра с временной таблицей по договору и периоду. Поле Условие получите из таблицы регистра, если соединение по договору и периоду дает единственную запись в таблице регистра.
#36 by Сти
Будет множить записи, если на один договор с тем же самым периодом будут записи для других организаций и контрагентом. Вообще можно сделать с помощью скореллированного запроса: [1C]ВЫБРАТЬ     РегистрСрезПоследних.ДоговорКонтрагента ИЗ     СамыйОфигенныйРегистрКАК РегистрСрезПоследних ГДЕ     (РегистрСрезПоследних.Организация, РегистрСрезПоследних.Контрагент) В             (ВЫБРАТЬ ПЕРВЫЕ 1                 ВспомогательныйСрез.Организация,                 ВспомогательныйСрез.Контрагент             ИЗ                 СамыйОфигенныйРегистрКАК ВспомогательныйСрез             ГДЕ                 ВспомогательныйСрез.ДоговорКонтрагента = РегистрСрезПоследних.ДоговорКонтрагента                 И ВспомогательныйСрез.Период В                     (ВЫБРАТЬ                         МАКСИМУМ(ЕщеОдинСрез.Период)                     ИЗ                         СамыйОфигенныйРегистрКАК ЕщеОдинСрез                     ГДЕ                         ЕщеОдинСрез.Организация = ВспомогательныйСрез.Организация                         И ЕщеОдинСрез.Контрагент = ВспомогательныйСрез.Контрагент                         И ЕщеОдинСрез.ДоговорКонтрагента = ВспомогательныйСрез.ДоговорКонтрагента))[1C] Множить записи не будет, тут проблема только одна - если по всем трем измерениям есть записи с одинаковым периодом, то выберет какую-то одну из этих трех, но какую - один SQL знает. С двумя измерениями было бы проще, используя "упорядочить по Период Убыв" во вложенном, но, увы - условие на соответствие списка списку не дает сортировать.
#37 by Сти
Блин, пробелы съелись. И отредактировать нельзя...
#38 by Михаил Козлов
Конфа не озвучена, но в типовых у договора 1 владелец (Контрагент) и 1 организация. Срез последних, мне кажется, вообще ни при чем.
#39 by Сти
Да это понятно, но каких только чудес не встречалось в дописках-переделках. И 20 измерений в регистре накопления, а ведь это больше миллиона итогов. И периодический регистр сведений с одним из измерений в виде строки ТЧ документа (видимо, чтобы номенклатуру можно было повторить в доке, что было в нем абсолютно противопоказано). И...
#40 by NikolayNiko
Спасибо! Так и сделал. Все окей! Тоже большое списибо. Конфа не типовая, но описанных сюрпризов теоретически быть не должно. Да и вообще спасибо всем кто откликнулся!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С