|
Как в форму списка справочника связать с реквизитом формы документа? | ☑ | ||
---|---|---|---|---|
0
AlexBor
naïve
16.06.15
✎
12:35
|
8.2 Самописная. Есть на форме реквизит УправляющаяКомпания связан с регистром Свед. УправляющиеКомпании. Запросом нахожу последнюю запись:
Запрос.Текст = "ВЫБРАТЬ | МАКСИМУМ(УправляющиеКомпании.Период) КАК Период, | МАКСИМУМ(УправляющиеКомпании.УК) КАК УК, | УправляющиеКомпании.Адрес |ИЗ | РегистрСведений.УправляющиеКомпании КАК УправляющиеКомпании |ГДЕ | УправляющиеКомпании.Адрес = &Адрес | |СГРУППИРОВАТЬ ПО | УправляющиеКомпании.Адрес | |УПОРЯДОЧИТЬ ПО | Период УБЫВ"; Запрос.УстановитьПараметр("Адрес", ЭтотОбъект.Ссылка); Результат = Запрос.Выполнить().Выбрать(); КАК мне в форму списка справочника в колонку УК получить "Результат"? |
|||
1
DmitrO
16.06.15
✎
12:41
|
прикольный запрос: собственно период может не соответствовать управляющей компании :)
|
|||
2
AlexBor
naïve
16.06.15
✎
12:43
|
(1) Сам удивляюсь прикольный работающий запрос ))))
|
|||
3
DmitrO
16.06.15
✎
12:50
|
(2)когда у адреса сначала была назначена новая компания, а с какой-то следующей даты старая (из старых, ранее заведенных), тогда действительно удивишься
|
|||
4
AlexBor
naïve
16.06.15
✎
12:56
|
(3) Ну прав ты ... я удивился .... и как сделать правильно подскажеш?
|
|||
5
DmitrO
16.06.15
✎
13:03
|
выбрать
УправляющиеКомпании.Период, УправляющиеКомпании.УК из РегистрСведений.УправляющиеКомпании.СрезПоследних(, Адрес = &Адрес) КАК УправляющиеКомпании |
|||
6
DmitrO
16.06.15
✎
13:06
|
или так:
выбрать Данные.Период, УправляющиеКомпании.УК из ( выбрать МАКСИМУМ(УправляющиеКомпании.Период) КАК Период, из РегистрСведений.УправляющиеКомпании КАК УправляющиеКомпании где УправляющиеКомпании.Адрес = &Адрес ) как Данные левое соединение РегистрСведений.УправляющиеКомпании КАК УправляющиеКомпании по УправляющиеКомпании.Адрес = &Адрес и УправляющиеКомпании.Период = Данные.Период что в общем-то одно и тоже |
|||
7
DmitrO
16.06.15
✎
13:07
|
теперь перейдем к теме ветки.
УФ или ОФ? |
|||
8
AlexBor
naïve
16.06.15
✎
13:11
|
(7) Согласен ..... тоько не большое дополнение к (5) если позволите сделал :
"ВЫБРАТЬ Первые 1 | УправляющиеКомпании.Период КАК Период, | УправляющиеКомпании.УК КАК УК, | УправляющиеКомпании.Адрес |ИЗ | РегистрСведений.УправляющиеКомпании КАК УправляющиеКомпании |ГДЕ | УправляющиеКомпании.Адрес = &Адрес | |СГРУППИРОВАТЬ ПО | УправляющиеКомпании.Адрес, | УправляющиеКомпании.Период, | УправляющиеКомпании.УК | |УПОРЯДОЧИТЬ ПО | Период УБЫВ, | УК УБЫВ"; и теперь все вроде как нормально |
|||
9
AlexBor
naïve
16.06.15
✎
13:12
|
(7) Да к теме ветке и так как реализовать?
|
|||
10
AlexBor
naïve
16.06.15
✎
13:20
|
(7) Очень благодарен что нашли ошибку в запросе а по теме ветки?
|
|||
11
Timon1405
16.06.15
✎
13:22
|
(10) пока не озвучено ОФ или УФ, дальнейший разговор бессмысленный
|
|||
12
DmitrO
16.06.15
✎
13:25
|
(10)ждем ответа на (7)
|
|||
13
AlexBor
naïve
16.06.15
✎
13:26
|
(11) да простите виноват - ОФ
|
|||
14
AlexBor
naïve
16.06.15
✎
13:26
|
(12) ОФ
|
|||
15
Timon1405
16.06.15
✎
13:31
|
(13) тогда вам по аналогии с этим Книга знаний: Вывод остатков в форме списка только вам нужно переделать запрос чтобы он получал связанные данные сразу для всех элементов. ну или используйте "при выводе строки", но тут за такое бьют)
|
|||
16
turrist
16.06.15
✎
13:33
|
Можно так:
В форму списка справочника добавить колонку ТвойРеквизит. Заполнять её в предопределённой процедуре "ПриПолученииДанных". В которой: Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл СтрокаТаблицыОформления = ТаблицаТвоегоЗапроса.Найти(ОформлениеСтроки.ДанныеСтроки.УК); Если СтрокаТаблицыОформления <> Неопределено Тогда ОформлениеСтроки.Ячейки.ТвойРеквизит.Значение = ТаблицаТвоегоЗапроса.ТвойРеквизит; Иначе ОформлениеСтроки.Ячейки.ТвойРеквизит.Значение = ""; КонецЕсли; КонецЦикла; |
|||
17
DmitrO
16.06.15
✎
13:38
|
1 вариант:
использовать событие ПриВыводеСтроки вычисляя УК собственно таким же запросом, и использовать результат для оформления ячеек в табличном поле списка. Недостаток в том что много мелких запросов. 2 вариант: использовать событие ПриПолученииДанных при этом сначала придется собрать массив адресов, потом получить запросом таблицу (Адрес,Период,УК) по ним (запрос будет несколько сложнее), и опять же расставить оформление ячеек. Так эффективнее, но коду еще больше. 3 вариант: а можно написать управляемую форму, включить итоги по этому РС, и написать произвольный запрос в динамическом списке, так в модуле формы коду вообще не будет, и будет максимально эффективно. Обычное приложение вполне нормально показывает и работает с управляемыми формами. |
|||
18
AlexBor
naïve
16.06.15
✎
13:40
|
Я понял Спасибо все отвечавшим особенно благодарен DmitrO
|
|||
19
AlexBor
naïve
16.06.15
✎
20:27
|
(17) Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформленияСтроки, ДанныеСтроки)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ Первые 1 | УправляющиеКомпании.Период КАК Период, | УправляющиеКомпании.УК КАК УК, | УправляющиеКомпании.Адрес |ИЗ | РегистрСведений.УправляющиеКомпании.СрезПоследних(, Адрес = &Адрес) КАК УправляющиеКомпании |ГДЕ | УправляющиеКомпании.Адрес = &Адрес | |СГРУППИРОВАТЬ ПО | УправляющиеКомпании.Адрес, | УправляющиеКомпании.Период, | УправляющиеКомпании.УК | |УПОРЯДОЧИТЬ ПО | Период УБЫВ, | УК УБЫВ"; // Запрос.УстановитьПараметр("Адрес", ДанныеСтроки.Ссылка); Результат = Запрос.Выполнить().Выбрать(); ОформленияСтроки.Ячейки.Управляющая.Значение = ДАнныеСтроки.Ссылка.Результат.УК; КонецПроцедуры Выдает ошибку что не правильно? |
|||
20
hhhh
16.06.15
✎
20:34
|
Результат вроде отдельно ссылка отдельно. А пишешь прикольно: Ссылка.Результат.
|
|||
21
AlexBor
naïve
16.06.15
✎
20:38
|
(20) Сделал вот так: ОформленияСтроки.Ячейки.Управляющая.Значение = Результат.УК;
Получилось но обрезает до 10 символов где можно исправить? |
|||
22
hhhh
16.06.15
✎
20:49
|
(21) ОформленияСтроки.Ячейки.Управляющая.Текст = Результат.УК;
и там что-то типа ОформленияСтроки.Ячейки.Управляющая.ОтображатьТекст = Истина; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |