8.х Визуальное оформление - ширина колонки.

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем CSCO12103692, 1 авг 2012.

  1. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Заглянувшим - доброго времени суток!

    Прямо неудобно с такой мелочью обращаться, но никак не пойму в чем дело. Проблема в ширине колонок в созданном табличном поле.
    Тестирую во внешней обработке.

    Код:
    ... ля ля ля, запрос выдающий в итоге табличку varTZQuery
    
    MiddleVT = New ValueTable;
    MiddleVT.Columns.Insert(0,"Number",,"Index",3);
    MiddleVT.Columns.Insert(1,"Title",,"Title",36);
    MiddleVT.Columns.Insert(2,"Barcode",,"Barcode",15);
    MiddleVT.Columns.Insert(3,"Price",,"Price",15);
    MiddleVT=varTZQuery;
    
    elfTB = MiddleVT;
    Controls.elfTB.CreateColumns();
    То есть результат запроса копируется в промежуточную таблицу значений(MiddleVT), для придания ему более приличного вида, а затем выгружается в табличное поле (elfTB) уже для просмотра. И все бы хорошо, информация из запроса отображается, но на точно заданные мной размеры колонок (3, 36, 15, 15) 1С просто глубоко чихала.

    Почему так происходит? Ведь по логике когда создаются колонки, то и размеры должены быть взяты... или нет?

    Ох, интерфейс к пользователю в 1с вообще для меня самое мутное место :((

    1С 8.2.15.301
  2. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Так, кажется дошло.
    Насоздавать колонок то я насоздавал, да только при копировании в нее другой таблицы все это съезжает
    Код:
    MiddleVT=varTZQuery;
    То есть промежуточной не придать нужные размеры колонок.

    Тогда не понятно как в уже созданной (запросом) таблице поменять текущие значения ширины колонок.. и вообще возможно ли это.
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а что мешает задать ширину колонок прямо в табличном поле?
  4. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Вообще была мысль, в зависимости от ситуации, в одном поле разные данные показывать, поэтому хотелось бы избежать жесткого прописывания и все создавать программно. Насколько это возможно конечно.
  5. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    При "=" он помещает в промежуточную таблицу (где у вас настроены колонки) таблицу запроса, а там у вас оформления нет.

    Как вариант решения, можно воспользоваться методом ТЗ "ЗагрузитьКолонку" в цикле по колонкам результата запроса
  6. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Короче понятно.
    Нужно получать колонку по индексу а там уже можно менять ее заголовок, имя, тип значения или ширину.
    Например:

    Код:
    Column = varTZQuery.Columns.Get(1);
    Column.Width = 7;
    
    В общем сразу над табличкой выдаваемой запросом можно производить эти манипуляции.

    зы
    Вопрос закрыт
  7. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    так пропишите программно ширину колонки
  8. AlexeyKh
    Offline

    AlexeyKh Опытный в 1С

    Регистрация:
    27 июл 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Наверно имели ввиду после
    Controls.elfTB.CreateColumns();

    Controls.elfTB.Колонки[0].ИзменениеРазмера=ИзменениеРазмераКолонки.Изменять;
    Controls.elfTB.Колонки[0].Ширина = 3;


    Controls.elfTB.Колонки[1].ИзменениеРазмера=ИзменениеРазмераКолонки.Изменять;
    Controls.elfTB.Колонки[1].Ширина = 36;


    Controls.elfTB.Колонки[2].ИзменениеРазмера=ИзменениеРазмераКолонки.Изменять;
    Controls.elfTB.Колонки[2].Ширина = 15;


    и т.д.
    только размеры надо переподобрать, так как то что задаете в ширине колонок отличается от зармера при создании колонки.
  9. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Про изменение размера не знал. Я нуб^^

    Спасибо, тоже попробую
Похожие темы
  1. НатахаБ
    Ответов:
    4
    Просмотров:
    1.577
  2. RRa
    Ответов:
    1
    Просмотров:
    1.277
Загрузка...

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