Имя: Пароль:
1C
1С v8
v8: Как получить срез последних в управляемой форме?
0 KizerSoze
 
15.08.12
14:53
Здравствуйте,

Хочу в управляемой форме регистра сведений добавить кнопку "История", по нажатию которой отображался срез последних. В настройках отбора я не смог найти достаточно инструментов для решения этой задачи. В модуле формы списка операцию типа "Элементы.Список.ПолучитьПоследнее()" - найти также не удалось. Уже 2 часа пытаюсь сдвинуться с мертвой точки - безрезультатно. Выполнима ли задача?
1 m-serg74
 
15.08.12
14:59
Период не в теме?
2 Mort
 
15.08.12
15:05
История это срез последних... Какой-то подвох
3 DrShad
 
15.08.12
15:06
(2) +1005000
4 m-serg74
 
15.08.12
15:06
(2) вообще то что то да
5 fisher
 
15.08.12
15:08
(2) <вытирая слезы> Скорее, анекдот!
6 Mort
 
15.08.12
15:09
(0) Автор ты бы объяснил что за регистр и что за история с ним.
7 KizerSoze
 
15.08.12
15:27
Регистр "Кадровая история сотрудников" (в конфигураторе - "Работники организаций").
Измерения - "Сотрудник" и "организация". Необходимо, вывести только последние записи.
Запрос выглядел бы приблизительно так:

   Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    МАКСИМУМ(РаботникиОрганизаций.Период) КАК Период,
       |    РаботникиОрганизаций.Сотрудник,
       |    РаботникиОрганизаций.Организация
       |ПОМЕСТИТЬ РучнойСрез
       |ИЗ
       |    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
       |ГДЕ
       |    РаботникиОрганизаций.Период <= &ТекДата
       |    И (РаботникиОрганизаций.ПериодЗавершения = &НеУказан
       |            ИЛИ РаботникиОрганизаций.ПериодЗавершения > &ТекДата)
       |
       |СГРУППИРОВАТЬ ПО
       |    РаботникиОрганизаций.Сотрудник,
       |    РаботникиОрганизаций.Организация
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    РучнойСрез.Период,
       |    РучнойСрез.Сотрудник,
       |    РучнойСрез.Организация,
       |    РаботникиОрганизаций.Должность,
       |    РаботникиОрганизаций.ПодразделениеОрганизации,
       |    РаботникиОрганизаций.ЗанимаемыхСтавок
       |ИЗ
       |    РучнойСрез КАК РучнойСрез
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
       |        ПО РучнойСрез.Период = РаботникиОрганизаций.Период
       |            И РучнойСрез.Сотрудник = РаботникиОрганизаций.Сотрудник
       |            И РучнойСрез.Организация = РаботникиОрганизаций.Организация";

   Запрос.УстановитьПараметр("НеУказан", '0001.01.01');
   Запрос.УстановитьПараметр("ТекДата", ТекущаяДата());
8 Mort
 
15.08.12
15:32
(7) Сделай форму с дин списком среза последних и открывай её по команде. И команду назови как-то нормально. Потому что "история" это обычно как раз весь периодический регистр.
9 Mort
 
15.08.12
15:37
+ Можно, конечно попытаться поизвращаться в текущей таблице.
10 KizerSoze
 
15.08.12
15:44
Уже не представляю как. Идеи генерируются все реже и реже.

Сделай форму с дин списком среза последних и открывай её по команде. И команду назови как-то нормально. Потому что "история" это обычно как раз весь периодический регистр. -
Вы имеете ввиду
1. Создание копированием управляемой формы списка - доп. формы списка, и в свойстве основного реквизита формы установить флаг "Произвольный запрос".
2. В исходную форму списка дабавляем кнопку открытия доп. формы списка.
11 Mort
 
15.08.12
15:50
(10) Срез можно и без произвольного запроса установить основной таблицей.
12 KizerSoze
 
15.08.12
15:52
Как?
Мне не удалось найти эти механизмы.
13 Лоботряс
 
15.08.12
15:54
(12)Хоть одну книжку по УФ прочитай
14 Лоботряс
 
15.08.12
15:54
Там есть этот простейший пример
15 SUA
 
15.08.12
15:55
(10)можно и так. можно и просто обработчик изменения формы (видимость колонок среза последних). да, все дело в произвольном запросе.
16 KizerSoze
 
15.08.12
16:00
Лоботряс, Вы про какую конкретно книжку говорите?
17 KizerSoze
 
15.08.12
16:07
можно и просто обработчик изменения формы (видимость колонок среза последних)

О каком обработчике идет речь?
18 misha122062
 
15.08.12
16:30
(0)Пардон.  А Вы вообще в теме что такое УФ?
И вообще...срез должен делаться НаСервере
19 misha122062
 
15.08.12
16:30
+(18)или произвольный запрос ставить
20 KizerSoze
 
15.08.12
16:42
В конечном итоге мне нужно сделать отбор в форму списка, только отбор не очень простой. Отбор записей в форме списка задается на клиенте, поэтому мне представляется вполне возможным получение среза на клиенте. Хотя,
РегистрыСведений.РаботникиОрганизаций.ПолучитьПоследнее(ТекущаяДата())
- серверная операция.

Мне нужно найти способ провести эту фильтрацию записей в форме списка, причем лучше без произвольного запроса.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.