|   |   | 
| 
 | Как в форму списка справочника связать с реквизитом формы документа? | ☑ | ||
|---|---|---|---|---|
| 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) ОформленияСтроки.Ячейки.Управляющая.Текст = Результат.УК; 
 и там что-то типа ОформленияСтроки.Ячейки.Управляющая.ОтображатьТекст = Истина; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |