Имя: Пароль:
1C
1C 7.7
v7: 2 и более таблицы значений на форме обработки
0 vladko
 
14.01.18
17:12
Всем привет,

Есть несколько закладок на форме обработки, на каждой закладке есть своя таблица значений. Так вот по размеру окна расширяется только первая ТЗ. Есть ли способ сделать так, чтобы и другие тоже раздвигались по ширине?
Может как-то через formex или как?
1 mehfk
 
14.01.18
17:18
Класс Общие.Форма.Привязка
2 Злопчинский
 
14.01.18
17:34
на форме - одну ТЗ.
в зависимости от закладки - заполнять нужными значениями
3 MWWRuza
 
гуру
14.01.18
20:14
Да вообще без проблем, именно через Formex. Вот кусок кода из работающего документа:

Процедура ПривязатьТзКТабДока()
    Перем Лево,Верх,Ширина,Высота;
    РасширениеФормы.МногострочнаяЧасть.ПолучитьКоординаты(Лево,Верх,Ширина,Высота);
    РасширениеФормы.ТзОстатков.УстановитьКоординаты(Лево,Верх,Ширина,Высота);    
КонецПроцедуры

Процедура ПриИзмененииРазмераОкна(ТипСобытия,ШиринаФормы,ВысотаФормы)
    ПривязатьТзКТабДока();
КонецПроцедуры

В документе табличная часть на одной закладке, и ТзОстатков на другой. Размеры таблиц синхронизированы. Именно, как Вам надо. Не разберетесь - пишите, подробнее раскажу.
4 Владимир1С
 
15.01.18
11:14
(0) Да, Формэкс. Учтите, в обходе элементов формы ТЗ, с которой считываются размеры,должна быть первой - изменяемая платформой таблицаНаФорме. Потом все остальные, друг за дружкой. По крайней мере у меня эта особенность вылезла.
5 MWWRuza
 
гуру
15.01.18
12:23
Кстати, вариант(2) тоже очень интересный. Именно для нескольких ТЗ. Иметь одну ТЗ на форме, в отдельном слое, которую перезаполнять методом Выгрузить() при переключении закладок. Сами данные хранить в виртуальных ТЗ, которых может быть нужное количество. Ну, или если они быстро заполняются, то можно заполнять их и "на лету", при выборе нужной закладки.
Но, у меня такой способ не прокатил-бы, в моем примере на одной закладке табличная часть документа, а на второй ТЗ, которая заполняется из связанного, "служебного" документа.
6 Масянька
 
15.01.18
12:25
(0) Маленький "прикол" эски.
Далее - по пунктам выше.
7 Злопчинский
 
15.01.18
12:29
(5) но ты ж не одновременно две закладки смотришь.. ;-)
8 MWWRuza
 
гуру
15.01.18
12:53
(5) Нет конечно ;-) Либо табличную часть документа, либо таблицу остатков. Но, размеры у них одинаковые, не зависимо, растянут документ на весь экран или в окне произвольного размера.
9 Злопчинский
 
15.01.18
13:02
(8) это ты ловко извратился...
но если надо не форму дока, а форму обработки...
10 Владимир1С
 
15.01.18
16:10
Процедура ПриИзмененииРазмераОкна(ТипСобытия)
    Если ТипСобытия=1 Тогда // окно свернуто
        Возврат;
    КонецЕсли;
    
    АтрибутТаб=СоздатьОбъект("АтрибутФормы");
    АтрибутТаб.УстановитьАтрибут(Форма,"ТабЗаказов");
    
    Лево=0; Верх=0; Ширина=0; Высота=0;
    АтрибутТаб.ПолучитьКоординаты(Лево,Верх,Ширина,Высота);
    
    //Сообщить("Лево "+Лево+" Верх "+Верх+" Ширина "+Ширина+" Высота "+Высота);
    
    АтрибутТаб.УстановитьАтрибут(Форма,"ТабЗаказовПикПоинт");
    АтрибутТаб.УстановитьКоординаты(Лево,Верх,Ширина,Высота);

    АтрибутТаб.УстановитьАтрибут(Форма,"ТабЗаказовПикПоинтПредоплата");
    АтрибутТаб.УстановитьКоординаты(Лево,Верх,Ширина,Высота);

    АтрибутТаб.УстановитьАтрибут(Форма,"ТабЗаказовВнесениеПикПоинт");
    АтрибутТаб.УстановитьКоординаты(Лево,Верх,Ширина,Высота);

    АтрибутТаб.УстановитьАтрибут(Форма,"ТабЗаказовОплатаПочта");
    АтрибутТаб.УстановитьКоординаты(Лево,Верх,Ширина,Высота);
    // Б О К С Б Е Р И
    АтрибутТаб.УстановитьАтрибут(Форма,"ТабБоксБериОтгрОплтПриПолуч");
    АтрибутТаб.УстановитьКоординаты(Лево,Верх,Ширина,Высота);

    АтрибутТаб.УстановитьАтрибут(Форма,"ТабБоксБериОплатаПредоплата");
    АтрибутТаб.УстановитьКоординаты(Лево,Верх,Ширина,Высота);

    АтрибутТаб.УстановитьАтрибут(Форма,"ТабБоксБериОплатаПриПолучении");
    АтрибутТаб.УстановитьКоординаты(Лево,Верх,Ширина,Высота);
    
        // П О Н И  Э К С П Р Е С С       ПониЭкспОтгрОплтПриПолуч
    АтрибутТаб.УстановитьАтрибут(Форма,"ПониЭкспОтгрОплтПриПолуч");  
    АтрибутТаб.УстановитьКоординаты(Лево,Верх,Ширина,Высота);
    //
    АтрибутТаб.УстановитьАтрибут(Форма,"ПониЭкспОплатаПредоплата");
    АтрибутТаб.УстановитьКоординаты(Лево,Верх,Ширина,Высота);
    //
    АтрибутТаб.УстановитьАтрибут(Форма,"ПониЭкспОплатаПриПолучении"); // ПониЭкспОплатаПриПолучении
    АтрибутТаб.УстановитьКоординаты(Лево,Верх,Ширина,Высота);

    
    АтрибутТаб=0;
КонецПроцедуры // ПриИзмененииРазмераОкна()
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший