|
Расшифровка на пересечении измерений СКД | ☑ | ||
---|---|---|---|---|
0
AllJoke
14.04.15
✎
17:50
|
Доброго дня всем.
Есть обработка. В ней есть ТабличныйДокумент. С помощью СКД вывожу в него результат. Теперь касаемо расшифровок - на пересечении стрки и столбца мне нужно делать отбор по этим измерениям в РегистреСведений. Вообще не могу сообразить куда копать. В гугле есть методы расшифровок, но не по моему методу. Прикладываю скрин - https://www.dropbox.com/s/qvjt6euxdrgx3cl/Скриншот%202015-04-14%2017.49.20.png?dl=0 |
|||
1
Defender aka LINN
14.04.15
✎
17:54
|
"на пересечении стрки и столбца мне нужно делать отбор по этим измерениям в РегистреСведений"
http://liza.leland.ru/wp-content/uploads/2014/05/ШТА-300x200.jpeg |
|||
2
AllJoke
14.04.15
✎
18:01
|
Пытаюсь объяснить более подробно. Есть два справочника - Сотрудники, Подразделения. Есть также РС - СотрПодразделенияРаботают. Делаю СКД на их основе. В строках - Сотрудники, в столбцах - Подразделения. На пересечении - ячейка краситься, если есть запись в РС по сотруднику и подразделению. Так вот, при двойном клике мыши на эту красную ячейку мне нужно установить отбор в РС (например он у меня выведен также на форме внизу, как ДинамическийСписок). Вот не могу понять как правильно расшифровку сделать по этой ячейке.
|
|||
3
Nuobu
14.04.15
✎
18:30
|
(2) Вот так вот:
Поля=Данные.Элементы.Получить(Расшифровка).ПолучитьПоля(); ПолеОтбора=Поля.Найти("ПолеОтбора") |
|||
4
Nuobu
14.04.15
✎
18:31
|
(3) Эти строки вставляешь в процедуру "ОбработкаРасшифровки()"
И добавляешь строку: СтандартнаяОбработка = Ложь; |
|||
5
AllJoke
15.04.15
✎
09:59
|
Забыл отметить - это всё я делаю в обработке. Там ДанныеРасшифровки в проц.ОбработкаРасшифровки() нет, пришлось делать реквизит формы и тип значения - Произвольный. Формы управляемые.
|
|||
6
AllJoke
15.04.15
✎
09:59
|
(4) ПолеОтбора = Тип(Неопределено)
|
|||
7
AllJoke
15.04.15
✎
10:25
|
Nuobu - тебе огромное спасибо за наводку. Посомтрел в типовой БП 3.0, я не верно указал параметр расшифровки.
|
|||
8
Crush
15.04.15
✎
10:25
|
В макете добавь поля расшифровки
|
|||
9
AllJoke
15.04.15
✎
10:31
|
(8) уже сотворил. А у меня теперь такой вопрос - в ячейке, которую я кликаю два раза, мне выдает ИдентификаторРасшифровкиКомпоновкиДанных, по совету "Nuobu" я получаю нужные мне данные, а вот как получить значение самой ячейки?
|
|||
10
fisher
15.04.15
✎
10:38
|
(9) Значение ресурса? Только из текста ячейки. В данных расшифровки его нет.
|
|||
11
AllJoke
15.04.15
✎
10:39
|
(10) текст ячейки, я так понимаю, получаю только на сервере?
|
|||
12
fisher
15.04.15
✎
10:42
|
(11) На клиенте.
|
|||
13
AllJoke
15.04.15
✎
10:46
|
Теперь уперся в отбор по РегиструСведений. Нужно отобрать записи по двум измерениям, хотя в Сп пишет структура может содержать только один элемент. На скорую руку не подскажете?
РегистрыСведений.МойРегистр.Выбрать(СтруктураОтбора) - здесь в СтруктуреОтбора два элемента (Измер1, Измер2). Ругается - Недопустимое значение параметра (параметр номер '1'). |
|||
14
fisher
15.04.15
✎
10:48
|
(13) Не. На скорую не подскажу. И в СП лень лезть. Я давно забыл, как выбирать данные методами менеджеров объектов. И тебе советую :)
|
|||
15
AllJoke
15.04.15
✎
10:49
|
(14) Спасибо, учту. Тогда - запрос?
|
|||
16
George Wheels
15.04.15
✎
10:58
|
(13) СтруктураОтбора = Новый Структура("Отбор", Новый Структура("Измер1"...
|
|||
17
fisher
15.04.15
✎
10:59
|
(15) Да. Запросом универсальнее. Сегодня требуется простое обращение к РС, а завтра потребуется допилить или захочется одновременно получать сопутствующие данные без лишних обращений к БД - и всё равно придется переделывать на запрос.
Чтобы быстрее клепать запросы можно использовать шаблоны. |
|||
18
George Wheels
15.04.15
✎
11:01
|
(16) + поторопился.
А РС периодический? |
|||
19
AllJoke
15.04.15
✎
11:02
|
(18) нет.
|
|||
20
AllJoke
15.04.15
✎
11:05
|
(17) Тут ты прав. Но если же мне нужно просто получить выборку лишь для того, чтобы удалить либо добавить запись....пользоваться запросом каждый раз ради этого не есть хорошо, чисто моё мнение.
|
|||
21
George Wheels
15.04.15
✎
11:10
|
ЭлементОтбора = ДинСписок.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Измер1"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение = ТвойСотрудник; |
|||
22
George Wheels
15.04.15
✎
11:11
|
(21) + и ещё один элемент Измер2
|
|||
23
fisher
15.04.15
✎
11:15
|
(21) Выдыхай. ДенисаЧ накличешь. Причем тут компоновка и динамический список?
Отбор там просто третьим параметром идти должен (первые два - период). И ключ структуры отбора содержать имя измерения. |
|||
24
fisher
15.04.15
✎
11:20
|
(20) Объективно - запрос ничем не хуже. Кода больше - это да.
Но моё чувство прекрасного это не смущает. Проще стучаться в базу однотипно, чем использовать оба подхода без какой-либо практической пользы. |
|||
25
George Wheels
15.04.15
✎
11:20
|
(23) Тогда произвольный запрос в динамическом списке:
ВЫБРАТЬ ... ГДЕ РС.Измер1 = &Сотрудник И РС.Измер2 = &Подразделение при клике ДинСписок.Параметры.УстановитьЗначениеПараметра("Сотрудник", ВыбранныйСотрудник); ДинСписок.Параметры.УстановитьЗначениеПараметра("Подразделение", ВыбранноеПодразделение); |
|||
26
AllJoke
15.04.15
✎
11:21
|
Хорошо, хорошо. С регситром понятно. А вот как решить задачу обновлнеия ТАбДока на клиенте, елси этот ТабДок с вязана с СКД? Причем по условию, обращаться к серверу нельзя. Тобишь удалил я запись в оегистре и в моей шахматке должна ячейка стать серой, что означает - записи там нет.
|
|||
27
fisher
15.04.15
✎
11:23
|
(26) Ту ячейку, по которой клацал? Ну, это просто. Ты же на клиенте можешь получить у поля формы текущую область. И делай с ней что хочешь.
|
|||
28
AllJoke
15.04.15
✎
11:25
|
(27) тут немного не так. Подробнее: есть список Регистра внизу, там я удаляю запись, вот после этих мани пуляций шахматка должна перестроиться. Причем без вызова сервера.
|
|||
29
fisher
15.04.15
✎
11:28
|
(28) Человечески ПЕРЕСТРОИТЬ на клиенте не получится. Но можно работать на уровне прямого доступа к областям. Вот и думай.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |