Как добавить колонку в форму списка в 1с
Обновлено: 06.07.2024
в нем прописал
Список.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "itilprofИнциденты.КодЗавершения,", "itilprofИнциденты.КодЗавершения, itilprofИнциденты.ЧисловойПриоритет, itilprofИнциденты.КрайнийСрок, ");
НоваяКолонка = Элементы.Вставить("ЧисловойПриоритет", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
НоваяКолонка.ПутьКДанным = "Список.ЧисловойПриоритет";
НоваяКолонка.Заголовок = "Приоритет(Ч)";
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
НоваяКолонка = Элементы.Вставить("КрайнийСрок", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
НоваяКолонка.ПутьКДанным = "Список.КрайнийСрок";
НоваяКолонка.Заголовок = "Крайний срок";
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
Колонки появились. Но в них не отображаются значения! Отбор меж тем работает. Добавил реквизиты в расширение - не помогло. Что я делаю не так?!
(0) запрос измени в расширении - в данных динамического списка нет твоих реквизитовА что смотреть? Строки в СписокПриПолученииДанныхНаСервереПосле посмотрел, там нет этих данных :(
(4) Не, ошибся - есть там.
Строки[45].Значение.Данные.ЧисловойПриоритет 77 Число
3 варианта. А в статьях что в инете нашел все было просто, так как я и написал изначально :( Буду пробовать сейчас
(14) какие три варианта?
(10)+(12)+(14) это один код по кусочкам - просто получилось так
(0) это из БСП если не хочешь так то попробуй вызвать код из БСП
Ну и "ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СтруктураПараметров);" конечно жеМожет с компоновщиком что то сделать надо?
Коллеги! неужели никто такого не делал? Не поверю никак!
(23) похоже это не поле ввода, а что-то другое. Почему влруг поле ввода?
(28) ну а почему отбор работает если не поменял текст запроса?
может с компоновщиком динамического запроса что нибудь надо сделать?
(31) Пробовал - не помогло. И потом я подозреваю что это ограничит возможность сортировки списка.
(32) Не парь мозг СтрЗаменить. Ты все равно затащил форму в расширение, сделай все по-человечески.
Во-первых добавление (заимствование) формы в расширение может привести к некоторым нежелательным эффектам, которые могут возникнуть после обновления конфигурации. Приведем немного теории.
Платформа использует сразу три формы:
Данные формы взаимодействуют между собой и в результате такого взаимодействия получается Результирующая форма, которую видит пользователь. В ходе взаимодействия указанных форм может возникнуть нежелательная ситуация, например, мы доработали форму в расширении, потом в новом релизе добавились реквизиты и они на форме не отображаются! Более подробно тут.
Во-вторых добавление формы в расширение привело бы к автоматическому добавлению всех реквизитов этого объекта и объектов метаданных (соответствующих ссылочным типам реквизитов объекта) в данное расширение, что загромождало бы само расширение и также не желательно.
Поэтому возникла задача программного создания элемента формы для добавленного реквизита в самом расширении, этому и посвящена данная публикация."
вот поэтому я должен (ТЗ такое) добавить в расширении в форму программно.
Как добавить произвольные колонки в динамический список?
В 1С Предприятии 8.2 формы списка объектов конфигурации построены с помощью динамического списка. Например, форма списка справочника Номенклатура содержит основной реквизит типа Динамический список , отображающий основную таблицу Справочник.Номенклатура и динамический список формируется путем запроса к этой таблице.
Однако бывает необходимо добавить произвольные колонки в динамический список. Рассмотрим эту ситуацию на примере отображения актуальной цены в списке справочника Номенклатура .
Эти данные мы можем получить из таблицы регистра сведений Цены.СрезПоследних . Следовательно поле Цена из этой таблицы нам нужно добавить в динамический список Список , который является основным реквизитом формы списка номенклатуры и служит источником данных для таблицы списка.
Создадим форму списка справочника Номенклатура и откроем палитру свойств основного реквизита формы Список . Установим флаг ПроизвольныйЗапрос и в строке Настройка списка нажмем Открыть .
В поле Запрос введем следующий текст запроса:
ВЫБРАТЬ
СправочникНоменклатура.Код,
СправочникНоменклатура.Наименование,
ЦеныСрезПоследних.Цена
ИЗ
Справочник.Номенклатура КАК СправочникНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних КАК ЦеныСрезПоследних
ПО ЦеныСрезПоследних.Номенклатура = СправочникНоменклатура.Ссылка
Теперь перетащим поле Цена из окна реквизитов в окно элементов формы.
В результате мы получим список номенклатуры, выводящийся вместе с ее актуальной ценой.
Демонстрационный пример находится в каталоге 1CITS/EXE/FAQ/ПроизвольнаяКолонкаВДинамическомСписке.dt. Пример выполнен на версии платформы 8.2.9.356.
Как в списке установить нестандартную картинку строки
Для решения данной задачи существует два способа. Рассмотрим их на примере.
Создание колонки
Колонку с картинкой можно связать с колонкой данных, содержащих значение типов Число или Булево . В нашем случае требуется одну и ту же картинку выводить вместо стандартной, поэтому добавленная колонка должна содержать значение Истина для всех строк. Для динамического списка её нужно добавить в запросе.
Примечание
Для колонки данных типа Булево значения инвертируются, т. е. Истина означает индекс 0, а Ложь – индекс 1 (это реализовано для удобства отображения картинок-флажков, когда у некоторых строк картинка по некоторому условию есть, а у других её нет).
В списке реквизитов для реквизита ИндексКартинки установим флажок ИспользоватьВсегда .
В списке элементов формы добавим колонку с видом Поле картинки. Значение будет указывать индекс конкретной картинки для конкретной строки в наборе картинок.
В свойстве Данные поля выберем Список.ИндексКартинки .
Набор картинок задается в свойстве поля Картинка значений .
Созданную колонку можно поместить в произвольное место таблицы как самостоятельную или объединить с одной из колонок в группу колонок с группировкой В ячейке . Объединим поле Картинка с колонкой Код :
В результате список примет вид, как показано на рисунке:
Переопределение стандартной картинки
Данный способ более удобен, поскольку не требуется создавать дополнительное поле и группировать его с другим полем, но он менее гибок, поскольку такая картинка всегда отображается в самой левой колонке, содержащей текст. В свойствах таблицы укажем нужную картинку в свойстве Картинка строк и установим свойство Данные картинки строк . Колонку для этого свойства нужно создать так же, как и в предыдущем способе.
Я уже писал об общем принципе программного добавления элементов на управляемую форму, теперь напишу конкретно о том, как добавить колонку табличной части или таблицы значений.
Выглядит это приблизительно так:
нРеквизиты.Добавить(Новый РеквизитФормы("Тест3", Новый ОписаниеТипов("Строка"), "Объект.Тест", "Тест3", Истина)); нЭлемент = Элементы.Добавить("Тест3", Тип("ПолеФормы"), Элементы.Тест);Следующие три строки добавляют саму колонку на форму.
На этом все, надеюсь данная статья Вам помогла.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
(оценок: 13, средняя оценка: 4,46 из 5)Спасибо, за подсказку!
А как сделать эту колонку в табличной части второй по порядку?
Переместить(, , )
вот как-то так..
Элементы.Переместить(нЭлемент,Элементы.Тест,Элементы.)
помогите пожалуйста я в 1с чайник это много сказано) 1С 7.7 бух. учет (7.70.307) в реестр документов нужно добавить колонку ИНН контрагента. Что нужно написать в таблице и в модуле?
Предлагаю добавить обработчик событий ПриИзменении
Читайте также: