Назначение выборки лишь одного значения из таблицы периодов

Добрый день!
Задача состоит в следующем: создать фильтр (подобие фильтра по ответственным в модуле Задачи), для отображения определенных данных за определенный период, например за "Май 2012". В итоге наткнулся на два момента: во-первых, какой смысл в сервисе sq_Period выбора TOP 1 значений? Где это используется? Каковы последствия, если исправить на выборку всех значений? И второе, на данный момент в таблице tbl_Period хранятся записи с января 2008 по декабрь 2012. Что будет 1 января 2013? Система сгенерирует новые записи периодов, или это нужно делать пользователю самому?

Нравится

8 комментариев

"Constantine" написал: Что будет 1 января 2013?

Создайте новые записи в справочнике Периоды, никакой магии тут не будет :)
"Constantine" написал:во-первых, какой смысл в сервисе sq_Period выбора TOP 1 значений?

Смысл в том что это лукапное поле.

"АльфаКрыса" написал:

Создайте новые записи в справочнике Периоды, никакой магии тут не будет :)


То, что магии не будет, это понятно. Да и в принципе скриптом добавить значений в таблицу тоже не проблема.. ИМХО, не совсем удобно пальчиками набирать новые периоды по истечении "коробочных". Автоматизация этого процесса, думаю, не влечет за собой особых трудностей, странно, что это не реализовано в стандартной конфигурации
"АльфаКрыса" написал:

Смысл в том что это лукапное поле.


Возможно я что-то не так понял, но в системе куча справочников, на основе которых реализованы лукапные поля, и при этом там нет никаких ТОР 1. Этим то и вызван вопрос, возможно в этом загодочном ТОРе скрыт более "глубокий смысл"?)

Откровенно говоря, нигде в TS не видел, что бы использовался этот справочник, я его использовал в своих целях, и очень доволен. У меня сложилось впечатление, что он остался как приданое от прошлых версий :). Поэтому никто и не заморачивался написанием SQL запроса / процедуры для его заполнения.

Добрый день, Константин.
Справочник периодов заполняется при формировании сборки конфигурации. Но в данное время не используется более, АльфаКрыса в этом прав.

В запросах если select TOP равен значению -1 будет происходить выборка всех значений без ограничения.
В случае с TOP = 1 выборка будет ограничиваться начальной настройкой = 40 записей. Задается в окне запуска клиента, в дополнительных настройках, параметр Dataset Fetch Record Count.

Павел, не очень уверен в вашем утверждении

"Фильковский Павел" написал:В случае с TOP = 1 выборка будет ограничиваться начальной настройкой = 40 записей. Задается в окне запуска клиента, в дополнительных настройках, параметр Dataset Fetch Record Count.

скорее выборка будет ограничиваться одним значением, а вот если бы в sq_ стояло TOP = 40 было бы 40 записей.

The TOP clause is used to specify the number of records to return.
The TOP clause can be very useful on large tables with thousands of records. Returning a large number of records can impact on performance.
Note: Not all database systems support the TOP clause.
SQL Server Syntax
SELECT TOP number|percent column_name(s)
FROM table_name

Скорее всего, когда делали справочник периодов, просто забыли написать "-" что бы получилось TOP = -1

Да, Вы правы. Проанализировал конфигурации, в других сборках есть -1.

На заметку: в случае, если sq_ сервис участвует в выборке данных для построения реестра записей окна, параметр TOP берется из системной настройки Dataset Fetch Record Count. Если мы к этому же сервису обращаемся внутри конфигурации как к экземпляру объекта - учитывается заданный в нем параметр TOP. В предпросмотре через TSAdmin параметр TOP игнорируется.

"АльфаКрыса" написал:

Скорее всего, когда делали справочник периодов, просто забыли написать "-" что бы получилось TOP = -1


вполне вероятно :) Поправил sq_Period, никакого "краха империи" не наблюдается

"Фильковский Павел" написал:На заметку: в случае, если sq_ сервис участвует в выборке данных для построения реестра записей окна, параметр TOP берется из системной настройки Dataset Fetch Record Count. Если мы к этому же сервису обращаемся внутри конфигурации как к экземпляру объекта - учитывается заданный в нем параметр TOP. В предпросмотре через TSAdmin параметр TOP игнорируется.

Спасибо, будем знать.
Фишка в том, что если использовать данный спраочник как выпадающий, и в нем будет стоять TOP 1, то в выпадающем справочнике будет видна всего одна запись, даже если в установках конфигурации 40 записей.
Ну в общем не суть.
Спасибо еще раз за комментарий.

Показать все комментарии