8.х программно изменить положение колонки. УФ

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Николаич87, 15 июл 2015.

  1. TopicStarter Overlay
    Николаич87
    Offline

    Николаич87 Опытный в 1С

    Регистрация:
    1 апр 2015
    Сообщения:
    122
    Симпатии:
    4
    Баллы:
    29
    приветствую. программно добавляю колонку в таб. поле, связываю с реквизитом.
    вопрос - как поместить созданную колонку между заданными колонками? по умолчанию - она добавляется в конец
  2. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    КоллекцияКолонокТаблицыЗначений.Вставить (ValueTableColumnCollection.Insert)
    КоллекцияКолонокТаблицыЗначений (ValueTableColumnCollection)
    Вставить (Insert)
    Синтаксис:

    Вставить(<Индекс>, <Имя>, <Тип>, <Заголовок>, <Ширина>)
    Параметры:

    <Индекс> (обязательный)

    Тип: Число.
    Индекс вставляемой колонки.
    <Имя> (необязательный)

    Тип: Строка.
    Имя колонки.
    Значение по умолчанию: Пустая строка.
    <Тип> (необязательный)

    Тип: ОписаниеТипов.
    Объект, описывающий допустимые типы значений для колонки. Если параметр не указан, в колонке можно будет хранить значение любого типа.
    <Заголовок> (необязательный)

    Тип: Строка.
    Заголовок колонки таблицы значений. Используется при визуальном отображении таблицы значений.
    Значение по умолчанию: Пустая строка.
    <Ширина> (необязательный)

    Тип: Число.
    Ширина колонки в символах. Используется при визуальном отображении таблицы значений.
    Значение по умолчанию: 0.
    Возвращаемое значение:

    Тип: КолонкаТаблицыЗначений.
    Вставленная колонка.
    Описание:

    Вставляет колонку на указанную позицию в таблицу значений.
    Доступность:

    Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
    Пример:

    // см. пример метода Добавить.
  3. TopicStarter Overlay
    Николаич87
    Offline

    Николаич87 Опытный в 1С

    Регистрация:
    1 апр 2015
    Сообщения:
    122
    Симпатии:
    4
    Баллы:
    29
    это для обычных форм
  4. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Эм... если вы программно генерите реквизит формы с типом ТаблицаЗначений и программно размещаете этот реквизит на форме, значит... можно добиться вывода колонки в определенном порядке, не?
  5. djyarilo
    Offline

    djyarilo Опытный в 1С

    Регистрация:
    18 апр 2011
    Сообщения:
    435
    Симпатии:
    0
    Баллы:
    26
    А не проще Добавить вашу колонку на форму, разместить ее где нужно, а уже ее Видимость делать истина или ложь?Ручками на форме добавляете колонку, а кодом регулируете видимость
    --- Объединение сообщений, 27 июл 2015 ---
    Так же в УФ, есть динамический запрос. В процедуре при создании на сервере, вы можете написать свой запрос, там вы сможете добавить колонку как вам нужно и даже сделаете запросом заполнение этой колонки.
  6. TopicStarter Overlay
    Николаич87
    Offline

    Николаич87 Опытный в 1С

    Регистрация:
    1 апр 2015
    Сообщения:
    122
    Симпатии:
    4
    Баллы:
    29
    подробнее - у ТЧ док-та есть ТабПоле на форме. Программно создаю реквизит формы для ТЧ, затем элемент управления в ТабПоле, связываю их. Все получается, но колонка добавляется последней. Все ради того, чтобы при обновлении можно было смело заменять форму
    Делать для этого дин. запрос - не вариант конечно :)
  7. djyarilo
    Offline

    djyarilo Опытный в 1С

    Регистрация:
    18 апр 2011
    Сообщения:
    435
    Симпатии:
    0
    Баллы:
    26
    Если вы при обновлении форму заменяете, то код который в модуле прописан тоже заменяется. Колонка всегда добавляется в конец, так как ей присваивается новый индекс ТЧ. Единственное что можно, перебором колонок менять попробовать менять индекс, но вряд ли это получится.
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Вместо Элементы.Добавить(), использовать Элементы.Вставить(....Элемент), где элемент - указанный элемент формы, после которого будет произведена вставка элемента. Если элемент не указан, то вставка производится в конец.
    Николаич87 нравится это.
  9. TopicStarter Overlay
    Николаич87
    Offline

    Николаич87 Опытный в 1С

    Регистрация:
    1 апр 2015
    Сообщения:
    122
    Симпатии:
    4
    Баллы:
    29
    Спасибо!

Поделиться этой страницей