Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для G3schaFt
1 / 1 / 0
Регистрация: 19.09.2022
Сообщений: 142
1C 8.x

Отфильтровать запрос по максимальному значению даты

16.07.2025, 12:12. Показов 1801. Ответов 8

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые.
Дано: общая форма, два динамических списка (ДС), при нажатии на строку в ДС1 (обработчик ПриАктивизацииСтроки) в ДС2 происходит отбор по значению в поле "ИмяПоляПоКоторомуОтбор" из ДС1. Теперь поместил на форму реквизит "ПоказыватьАктуальныеДанные" (булево). При создании формы на сервере значение реквизита переводится в "Истина".
В зависимости от Истина это или Ложь нужно в ДС2 показывать строки, в которых в поле "Дата" стоит максимальное значение (самая актуальная запись). Для отбора в ДС2 по значению в поле "ЭлементОбъекта" из ДС1 использую БСПшное
1C
1
2
3
4
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(ДС2,
"ИмяПоляПоКоторомуОтбор",
ЭлементОбъекта,
ВидСравненияКомпоновкиДанных.Равно);
Вот это работает, к этому вопросов нет. Думал, что как-то аналогично можно будет сделать такое:
1C
1
2
3
Если ПоказыватьАктуальныеДанные Тогда
   // делай, что хочешь
КонецЕсли;
, но "что хочешь" не получается, потому что не понимаю, как запихнуть отбор по дате. Кто-то предложил прямо в этом "Если" менять запрос ДС2, но совсем не понимаю, что именно прописать, чтобы отбор по дате учитывался или нет в зависимости от реквизита формы "ПоказыватьАктуальныеДанные"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2025, 12:12
Ответы с готовыми решениями:

Как отфильтровать выбор значения в поле ввода
Необходимо отфильтровать (вывод либо с именем Документы,либо с Справочники) в поле Количество -...

Ошибка при обращении к Отфильтрованым данным
// Запрос = Новый Запрос; // Запрос.Текст = // "ВЫБРАТЬ // | Выдача_Задания.ВЗадания.(...

Не могу отфильтровать результат запроса
Всем доброго дня! Нужна ваша помощь! Работаю в 1с 8.2. В конфигурации есть регистр Регистр1 с...

8
Эксперт 1С
2199 / 245 / 73
Регистрация: 12.11.2015
Сообщений: 1,521
16.07.2025, 13:55
можно найти данные, которые нужны (запросом) и установить отбор по ссылкам
0
 Аватар для G3schaFt
1 / 1 / 0
Регистрация: 19.09.2022
Сообщений: 142
16.07.2025, 14:05  [ТС]
slypower, здравствуйте. Не понял, каким запросом можно получить данные. Предлагаете в нужном обработчике события делать запрос к тем же данным, которые уже есть в ДС2 и как-то объединением получать нужное?
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4137 / 944 / 265
Регистрация: 22.04.2013
Сообщений: 6,587
Записей в блоге: 1
16.07.2025, 16:35
вмешаюсь
непонятно, что такое максимальные даты
но, видимо. можно сделать запрос вида
1C
1
2
3
4
5
6
7
8
9
10
выбрать
.....
где
выбор когда &показыватьактуальныеданные тогда истина иначе ложь конец
 
объединить все
выбрать
...
где
выбор когда &показыватьактуальныеданные тогда ложь иначе истина конец
один запрос Ваш, который указан
второй - Ваш новый придуманный с "максимальными" датами.

ну и в коде прописать тоже самое - установить параметр
ОбщийМодуль.ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка
0
Эксперт 1С
 Аватар для OverDozero
924 / 329 / 130
Регистрация: 07.04.2011
Сообщений: 1,750
16.07.2025, 20:32
ТС, можно сделать еще так: в ДС2 сделать колонку, в которую помещать "на каждой строке" признак реквизита "ЭтоМаксимальнаяДата".

Вот выведен ДС2.
Знач1 15.07.25
Знач1 01.07.25 Ложь
Знач1 21.07.25 Истина

Знач2 01.07.25 Ложь
Знач2 21.07.25 Истина

Где Истина и Ложь это признаки что это либо максимальная дата, либо минимальная. Промежуточный вариант Знач1 15.07.25 не заполнен, так как он "средний" между макс и мин датой. Хотя по факту там ложь.

Я бы сделал так:
Если бы мне надо было показывать и максимальные и минимальные даты по отбору, то вместо Истина и Ложь в колонке я бы писал строки "0" и "1". Чтобы однозначно идентифицировать нужную колонку

Если только максимальные даты при включенном отборе, то можно обойтись и булевой колонкой.

Ну и при включении/отключении отбора ставить отбор ДС по колонке, где значение равно "0" или "1"
0
 Аватар для G3schaFt
1 / 1 / 0
Регистрация: 19.09.2022
Сообщений: 142
17.07.2025, 02:21  [ТС]
Yulunga, под максимальными датами подразумевал, что в ДС2 есть реквизит «ДатаСобытия», где и хранится та самая дата и мне нужно либо показывать только строки с максимальной датой, либо вообще все строки изначального текста запроса ДС2. Более предметно: ДС1 - ЭлементыОбъектов (никак не связано с понятиями платформы, просто названия такие захотелись составителю ТЗ), а ДС2 - ПараметрыЭлементов. Тут сразу становится понятно, что у элемента может быть N параметров, а при нажатии на конкретный элемент в ДС1 делается отбор по нему в параметрах (ДС2). Сложность только в том, что так как параметров может быть несколько, а у них свои даты стоят. То есть мне нужно для элемента Яблоко показать не только параметр «помыт 05.07. но и «откушен 10.07», хотя в самом ДС ПараметрыЭлементов может быть «откушен» с разными датами, но последняя - 10.07, её и надо показать, если стоит галка «ПоказыватьАктуальные»

OverDozero, а вот это, мне кажется, должно помочь. Если сразу в запросе ДС2 буду определять, где именно лежит максимальная дата по конкретному элементу из ДС1, это может решить вопрос с тем, что нужно показывать строку не просто с самой максимальной датой, а с максимальной датой по каждому параметру (то, что описал абзацев выше). Спасибо, это попробую. Осталось только понять, как в запросе сравнивать имеющиеся даты. Но это, видимо, через ВременнуюТаблицу надо?
0
Эксперт 1С
 Аватар для OverDozero
924 / 329 / 130
Регистрация: 07.04.2011
Сообщений: 1,750
17.07.2025, 07:26
Цитата Сообщение от G3schaFt Посмотреть сообщение
Но это, видимо, через ВременнуюТаблицу надо?
2 времянки, 1 с максимальными датами, другая с минимальными. Через агрегатные функции "Максимум" и "Минимум"
И потом через объединение сделать внутреннее соединение с таблицей где все даты с таблицей максимальных дат, во 2 объединении делать внутреннее соединение с таблицей где все даты с таблицей минимальных дат по элементу и дате. И реквизиту отбора присваивать нужные значения.
И если нужно еще включить промежуточные даты, то еще 1 объединение с отбором не попавшими элементами ни в таблицу максимальных дат, ни таблицу минимальных дат.
0
 Аватар для G3schaFt
1 / 1 / 0
Регистрация: 19.09.2022
Сообщений: 142
17.07.2025, 07:29  [ТС]
OverDozero, спасибо. Вот вы объяснили это сейчас, и я понимаю, что это как-будто излишне сложно и надо было вообще что-то иное думать, чтобы не сталкиваться с таким вопросом в принципе
0
Эксперт 1С
 Аватар для OverDozero
924 / 329 / 130
Регистрация: 07.04.2011
Сообщений: 1,750
17.07.2025, 08:22
Примерно такой алгоритм
https://softmaker.kz/zaprosy/k... ument.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.07.2025, 08:22
Помогаю со студенческими работами здесь

Отфильтровать закрытые заказы покупателей (УТ)
Доброго времени суток! Мне в запросе по регистру накопления ЗаказыПокупателей нужно исключить из...

Отфильтровать справочник контрагентов УТ
Гуру, пожалуйста помогите новичку в 8х (но хорошо знаю 7.7) Как функцией вывести элементы...

как отфильтровать справочник в 7.7
Использую процедуру ИспользоватьСписокЭлементов. Фильтрация происходит но: в каждой группе...

Отфильтровать список отчетов в соответствии с доступными ролями
Необходимо отфильтровать список отчетов в соответствии с доступными ролями в базе Список уже...

7.7 Запрос или бухгалтерский запрос?
Добрый день. Задача такова: необходимо сформировать отчет о доходах и расходах за период с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru