Типа динамический список в обычных формах
Ребята, я пытаюсь сделать динамический список в обычных формах. В форму списка справочника одно поле (а конкретно Владелец) будет браться из регистра сведений, ну т.е. оно изменяемое и мне именно его и нужно отображать зрителям. Я сделала так:
Но ругается, конечно, на то, что я пытаюсь ссылке присвоить значение. Но прикол в том, что список же будет меняется данным из регистра и применять ПолучитьОбъект(), чтобы насильно "засандалить" нового владельца не очень хочется, как быть в такой ситуации? Обычные формы.
Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
ОтборВл = Новый Структура;
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
ЗначениеКолонка = ОформлениеСтроки.Ячейки.Наименование.Текст;
ОтборВл.Вставить("Скважина", Справочники.Скважина.НайтиПоНаименованию(ЗначениеКолонка));
РегВладелец = РегистрыСведений.ВладельцыСкважин.ПолучитьПоследнее(ТекущаяДата(), ОтборВл).Водозабор;
Если РегВладелец <> Справочники.Водозабор.ПустаяСсылка() Тогда
ОформлениеСтроки.Ячейки.Владелец.Значение = РегВладелец;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ПоказатьНо ругается, конечно, на то, что я пытаюсь ссылке присвоить значение. Но прикол в том, что список же будет меняется данным из регистра и применять ПолучитьОбъект(), чтобы насильно "засандалить" нового владельца не очень хочется, как быть в такой ситуации? Обычные формы.
По теме из базы знаний
Найденные решения
(1)
Совсем не айс..
1. что мешает добавить новую колонку и в нее записывать нужное значение? (будет 2 колонки, а при сильном желании, основную можно так же программно скрыть)
2. гораздо производительнее будет переписать алгоритм так, что бы в цикле запрос не фигурировал.
например:
Совсем не айс..
1. что мешает добавить новую колонку и в нее записывать нужное значение? (будет 2 колонки, а при сильном желании, основную можно так же программно скрыть)
2. гораздо производительнее будет переписать алгоритм так, что бы в цикле запрос не фигурировал.
например:
Колонки = ЭлементыФормы.ИмяЭлементаСпискаЗначений.Колонки;
Колонка = Колонки.Добавить("Водозабор", , "Водозабор")"; //Добавляем новую
Колонки.Владелец.Видимость = ложь; //скрываем старую
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать т.Скважина, т.Водозабор ИЗ РегистрыСведений.ВладельцыСкважин.СрезПоследних(,Скважина В (&МассивСкважин) И Водозабор <> Значение(Справочники.Водозабор.ПустаяСсылка)) КАК т";
//Если не предполагается что в регистр записи могут попадать будущим числом - отбор по периоду можно не ставить.
Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
МассивСкважин = новый Массив;
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
МассивСкважин.Добавить(ОформлениеСтроки.ДанныеСтроки.Ссылка);
КонецЦикла;
Запрос.УстановитьПараметр("МассивСкважин",МассивСкважин);
Результат = Выборка.Выполнить();
Если НЕ Результат.Пустой() Тогда
ТЗ = Результат.Выгрузить();
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
СтрокаВТЗ = ТЗ.Найти(ОформлениеСтроки.ДанныеСтроки.Ссылка, "Скважина");
Если СтрокаВТЗ <> Неопределено Тогда
ОформлениеСтроки.Ячейки.Владелец.УстановитьТекст(СтрокаВТЗ.Водозабор);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Совсем не айс..
1. что мешает добавить новую колонку и в нее записывать нужное значение? (будет 2 колонки, а при сильном желании, основную можно так же программно скрыть)
2. гораздо производительнее будет переписать алгоритм так, что бы в цикле запрос не фигурировал.
например:
Совсем не айс..
1. что мешает добавить новую колонку и в нее записывать нужное значение? (будет 2 колонки, а при сильном желании, основную можно так же программно скрыть)
2. гораздо производительнее будет переписать алгоритм так, что бы в цикле запрос не фигурировал.
например:
Колонки = ЭлементыФормы.ИмяЭлементаСпискаЗначений.Колонки;
Колонка = Колонки.Добавить("Водозабор", , "Водозабор")"; //Добавляем новую
Колонки.Владелец.Видимость = ложь; //скрываем старую
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать т.Скважина, т.Водозабор ИЗ РегистрыСведений.ВладельцыСкважин.СрезПоследних(,Скважина В (&МассивСкважин) И Водозабор <> Значение(Справочники.Водозабор.ПустаяСсылка)) КАК т";
//Если не предполагается что в регистр записи могут попадать будущим числом - отбор по периоду можно не ставить.
Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
МассивСкважин = новый Массив;
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
МассивСкважин.Добавить(ОформлениеСтроки.ДанныеСтроки.Ссылка);
КонецЦикла;
Запрос.УстановитьПараметр("МассивСкважин",МассивСкважин);
Результат = Выборка.Выполнить();
Если НЕ Результат.Пустой() Тогда
ТЗ = Результат.Выгрузить();
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
СтрокаВТЗ = ТЗ.Найти(ОформлениеСтроки.ДанныеСтроки.Ссылка, "Скважина");
Если СтрокаВТЗ <> Неопределено Тогда
ОформлениеСтроки.Ячейки.Владелец.УстановитьТекст(СтрокаВТЗ.Водозабор);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Показать
ОформлениеСтроки.Ячейки.Владелец.Значение = РегВладелец;
В оформлении строк нельзя менять Владельца ячейки, так как оформление строк - подчиненный строкам объект, который реализует оформление данных строк (логично следует из названия).
Все что можно менять в объекте ОформлениеСтроки - это свойства оформления - цвета, шрифты, текст и т.п.
Владельца менять нельзя, потому что оформление привязано к конкретной ячейке, нет смысла менять привязку, все оформление "поплывет".
Изначально, ОформлениеСтроки задумано как объект, в котором будут доп. свойства ячеек Табличного документа в зависимости от контекста, в котором он выводится (на экран или на принтер).
Если вы поймете такие простые вещи, у вас больше не возникнет мысли менять привязку ячеек объекта ОформлениеСтроки к ячейкам Табличного документа.
А свойство поменять можно и нужно.
Например, текст
ОформлениеСтроки.Ячейки.Владелец.УстановитьТекст(СтрокаВТЗ.Водозабор);
Или шрифт и др. свойства
В оформлении строк нельзя менять Владельца ячейки, так как оформление строк - подчиненный строкам объект, который реализует оформление данных строк (логично следует из названия).
Все что можно менять в объекте ОформлениеСтроки - это свойства оформления - цвета, шрифты, текст и т.п.
Владельца менять нельзя, потому что оформление привязано к конкретной ячейке, нет смысла менять привязку, все оформление "поплывет".
Изначально, ОформлениеСтроки задумано как объект, в котором будут доп. свойства ячеек Табличного документа в зависимости от контекста, в котором он выводится (на экран или на принтер).
Если вы поймете такие простые вещи, у вас больше не возникнет мысли менять привязку ячеек объекта ОформлениеСтроки к ячейкам Табличного документа.
А свойство поменять можно и нужно.
Например, текст
ОформлениеСтроки.Ячейки.Владелец.УстановитьТекст(СтрокаВТЗ.Водозабор);
Или шрифт и др. свойства
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот