Имя: Пароль:
1C
1С v8
Программный вывод табличного документа на страницу панели
,
0 extrim-style
 
27.10.11
16:52
8.1 подскажите код. Есть ТабДок, нужно добавить новую страницу на панель и разместить ТабДок в ПолеТабличногоДокумента по размеру страницы.
1 DrShad
 
27.10.11
16:54
а не до фига ли хочешь сразу узнать?
2 DrShad
 
27.10.11
16:54
сколько? за код
3 extrim-style
 
27.10.11
16:58
(2) думаю, это уже достаточно типовая процедура, чтобы быть бесплатной)
4 extrim-style
 
27.10.11
16:59
+(3) вот только я впервые к ней подошел
5 DrShad
 
27.10.11
17:00
(3) ну тогда удачи и СП в помощь - там все написано достаточно давно
6 Михаил Козлов
 
27.10.11
17:03
Сделайте страницу сначала невидимой.
7 extrim-style
 
28.10.11
09:38
Что-то не воткну как сделать.

НовПоле = ЭлементыФормы.Добавить(Тип("ПолеТабличногоДокумента"), "Результат"+Сч,,ЭлементыФормы.Панель1);
ЭлементыФормы.Панель1.Страницы.Добавить(, Стр.Наименование, НовПоле);

ничего не появляется
8 extrim-style
 
28.10.11
09:46
разобрался. нужно было текущую страницу установить.
9 extrim-style
 
28.10.11
10:34
Подскажите! Первую страницу я нарисовал ручками - добавил на неё поле табличного документа. Вторую - программно. Размеры Поля на второй странице устанавливаю программно. Сначала Поле на второй странице не поместилось полностью (хотя сделал по размерам Поля первой страницы) и появились полоски вертикальной и горизонтальной прокрутки. Затем я подогнал размеры, но как только исчезают полосы прокрутки, сразу справа и внизу появляются бордюры, которые больше, чем на первой странице и это заметно при переходе между страницами. В элементе Панель в СП не нашел ничего про полосы прокрутки, чтобы их отключить. Подскажите, как тут поступить? Нужен бордюр как у первой страницы.
10 Reset
 
28.10.11
10:36
(9) Тебе непременно хочется решение через опу? Делай (6)
11 GenV
 
28.10.11
10:37
(9) Привязки после размещения на форме установи правильные после добавления на страницу - тогда и не будет бордюров.
ЗЫ Заголовок у страницы сразу отображается или потом отображаешь?
(10)+1 работа с добавлением на закладки это ...
12 extrim-style
 
28.10.11
10:57
(10) у меня количество страниц заранее не известно
(11) проверил привязку Поля на первой странице. Сложная, правая граница к Панель правая, нижняя - к Панель нижняя, без сохранения пропорций, лев и верх не привязаны.

Делаю тоже самое для второй страницы программно:

НовПоле.УстановитьПривязку(ГраницаЭлементаУправления.Низ,,, ЭлементыФормы.Панель1, ГраницаЭлементаУправления.Низ);
НовПоле.УстановитьПривязку(ГраницаЭлементаУправления.Право,,, ЭлементыФормы.Панель1, ГраницаЭлементаУправления.Право);

но ничего не меняется...
13 GenV
 
28.10.11
11:01
(12) НовПоле.УстановитьПривязку(ГраницаЭлементаУправления.Низ,Панель,ГраницаЭлементаУправления.Низ, Неопределено, Неопределено);
НовПоле.УстановитьПривязку(ГраницаЭлементаУправления.Право,Панель, ГраницаЭлементаУправления.Право, Неопределено, Неопределено);
14 extrim-style
 
28.10.11
11:15
(13) чёта не получается...
Кстати, когда я смотрю в привязку Поля первой страницы, то там просто привязка к Панель, хотя имя панели у меня Панель1. Почему так? В любом случае попытался также указать вместо Панель ЭлементыФормы.Панель1 - ничего не получилось. Не знаю, что делать... А нельзя страницу скопировать просто?
15 extrim-style
 
28.10.11
11:18
+(14) и еще вопрос - программно я могу привязки посмотреть? ну чтобы скопировать их от Поля первой страницы?
16 extrim-style
 
28.10.11
11:35
А может дело в этой синей пунктирной рамочке? Я не знаю, что это за хрень, типа выравнивающей рамки, внутри которой объекты создаются? Возможно, для первой страницы я её немного увеличил. Как мне её тут увеличить программно?
17 Михаил Козлов
 
28.10.11
11:47
Может посмотреть, как генерятся страницы в документе КорректировкаЗаписейРегистровНакопления?
18 GenV
 
28.10.11
11:47
(14) Панель - означает, что ты привязываешься к границам родительского элемента в котором размещен твой элемент (т.е. если не на панели - это будет форма, если на панели - страница панели).
Скопировать нельзя. Посмотреть привязки - ПолучитьПривязки (хотя там у тебя смотреть нечего, это когда связываешь несколько элементов - тогда да, есть смысл смотреть).
(16) Пунктирная рамка влияет только на интерактивное добавление элементов - облегчает их размещение.
19 extrim-style
 
28.10.11
12:01
(17) посмотрел. ничего особенного, кроме привязок, не увидел
(18) спс за инфу

ёлы-палы, что же делать...
20 GenV
 
28.10.11
12:05
(19) Добавь сначала без привязок. Проверь что нормально отображается и остальные элементы нормально выводятся.
Еще раз: Заголовок у страницы сразу отображается или потом отображаешь?
21 Reset
 
28.10.11
12:11
(19) Особенность в том, что там оно работает ;)
22 Mort
 
28.10.11
12:14
Вот тут на страницы добавляются табличные поля с привязками.
http://infostart.ru/public/65473/
23 extrim-style
 
28.10.11
12:25
(20) видимо сразу. а какое это имеет значение?

НовСтраница = ЭлементыФормы.Панель1.Страницы.Добавить("Результат"+Сч, Стр.Наименование);
ЭлементыФормы.Панель1.ТекущаяСтраница = НовСтраница;
НовПоле = ЭлементыФормы.Добавить(Тип("ПолеТабличногоДокумента"), "Результат"+Сч,,ЭлементыФормы.Панель1);                    
НовПоле.Вывести(ТабДок);
                                       
НовПоле.Верх = ЭлементыФормы.Результат.Верх;
НовПоле.Лево = ЭлементыФормы.Результат.Лево;
НовПоле.Ширина = ЭлементыФормы.Результат.Ширина-6;
НовПоле.Высота = ЭлементыФормы.Результат.Высота-6;

НовПоле.УстановитьПривязку(ГраницаЭлементаУправления.Низ, Неопределено, Неопределено, ЭлементыФормы.Панель1, ГраницаЭлементаУправления.Низ);
НовПоле.УстановитьПривязку(ГраницаЭлементаУправления.Право, Неопределено, Неопределено, ЭлементыФормы.Панель1, ГраницаЭлементаУправления.Право);

привязки уже попробовал самые разные, результата - null

Можно отключить прокрутку у СтраницыПанели???
24 Mort
 
28.10.11
12:27
НовПоле.Верх = ЭлементыФормы.Результат.Верх;
НовПоле.Лево = ЭлементыФормы.Результат.Лево;

вот это отладчиком посмотри внимательно и подумай, почему ширина или высота не "влазят".
25 extrim-style
 
28.10.11
12:31
(24) видимо вот это ты имел ввиду?:

НовПоле.Ширина = ЭлементыФормы.Результат.Ширина-6;
НовПоле.Высота = ЭлементыФормы.Результат.Высота-6;

сам не понял, почему размеры не совпадают. Мне почему-то кажется, что это всё потому, что я на первой странице вручную растянул границы (в частности рамки), сделал бордюры поменьше. А когда добавляю программно, то элемент вписывается в эту рамку. Но (18) говорит, что рамка это только интерактив.
26 GenV
 
28.10.11
12:36
(23) Если ты по шаблону задаешь с первой страницы зачем еще уменьшать на 6? Он же и так нормальный должен быть.
ЗЫ Если меняешь видимость заголовка страниц при добавлении элементов на страницы иногда бывают глюки с их размерами.
27 extrim-style
 
28.10.11
12:42
Если я делаю размеры поля второй страницы по размеру поля первой страницы, то второе поле располагается так, как нужно, и полосы прокрутки в нужных местах. Проблема только в том, что на второй странице дополнительно появляются полосы прокрутки для страницы панели. А как их убрать я хз, т.к. в этом элементе упр. нет ничего подобного. Также привязки ставлю - результата нуль.
28 extrim-style
 
28.10.11
12:43
(26) да это я подгонял, чтобы посмотреть когда полосы прокрутки для страницы панели исчезнут.
29 Mort
 
28.10.11
12:48
(25) У тебя верхней и левой координате присваиваются координаты самой панели, а элементы на панели имеют координаты относительно панели.

Попробуй так:

НовПоле.Верх = 3;
НовПоле.Лево = 3;
НовПоле.Ширина = ЭлементыФормы.Результат.Ширина-6;
НовПоле.Высота = ЭлементыФормы.Результат.Высота-6;
30 Mort
 
28.10.11
12:50
ЭлементыФормы.Результат это что?
31 extrim-style
 
28.10.11
12:53
(30) это ПолеТабличногоДокумента, которое я расположил изначально на Панели (видимо на первой странице).
32 extrim-style
 
28.10.11
12:58
(29) Нет, я присваиваю координаты первого поля.
Вот так второе поле располагается абсолютно так, как первое, как нужно:

НовПоле.Верх = ЭлементыФормы.Результат.Верх;
НовПоле.Лево = ЭлементыФормы.Результат.Лево;
НовПоле.Ширина = ЭлементыФормы.Результат.Ширина;
НовПоле.Высота = ЭлементыФормы.Результат.Высота;

Разница лишь в том что появляются долбаные полосы прокрутки для страницы панели...
33 extrim-style
 
28.10.11
14:27
Может кто подскажет, как убрать эти полосы прокрутки?
34 Mort
 
28.10.11
14:31
(33) Экспериментируй. Попробуй разместить поле в центре панели подальше от границ. Потом изменяй размеры и пали из-за чего появляются прокрутки.
35 Mort
 
28.10.11
14:33
Еще прикол, когда добавляются страницы, если места для закладок не хватает, новая закладка может уйти вниз и область станет меньше.
36 DrShad
 
28.10.11
14:36
(33) до сих пор ищешь бесплатный пример?
37 extrim-style
 
28.10.11
14:41
(36) слушай, иди в флудь в другую тему.
38 extrim-style
 
28.10.11
14:55
(34) полосы прокрутки появляются, как только правая или нижняя граница ПоляТабличногоДокумента доходят до какого-то определенного значения. Почему-то мне кажется, что этим значением как раз является рамочка. Эта рамочка неуправляемая? Можно на неё как-то программно воздействовать?

Или может быть всё-таки как-то нужно по-другому указывать привязки?
39 Mort
 
28.10.11
15:00
До какого значения узнал? Рамочка ни при чем.
40 extrim-style
 
28.10.11
15:02
(39) ну могу узнать и что мне это дает? (на 6 единиц меньше прав и низ первой области, как видно из кода выше)
41 Mort
 
28.10.11
15:04
(40) Из кода нихрена никогда не видно, видно только из отладчика. Короче вместо двух операций дольше рассуждаешь, давно уже бы нашел.
42 extrim-style
 
28.10.11
15:09
(41) ну, знаю я это значение, и дальше что?
43 Mort
 
28.10.11
15:22
Дальше (34)
44 extrim-style
 
28.10.11
15:24
на (34) я уже ответил в (38). Что экспериментировать, если они все-равно появляются...
45 Mort
 
28.10.11
15:29
Скрин покажи
46 extrim-style
 
28.10.11
16:06
Да что там на скрин смотреть. Вот простенький пример. Всё лишнее убрал, только эта проблема - http://zalil.ru/31950818
47 GenV
 
28.10.11
16:56
48 GenV
 
28.10.11
16:59
47+ если 8.2 нет: раздвигаешь образец на всю ширину страницы, код:

   ЭлементыФормы.Панель1.ОтображениеЗакладок = ОтображениеЗакладок.СверхуСПрокруткой;
   
   НовСтраница = ЭлементыФормы.Панель1.Страницы.Добавить("Результат2");
   ЭлементыФормы.Панель1.ТекущаяСтраница = НовСтраница;
   НовПоле = ЭлементыФормы.Добавить(Тип("ПолеТабличногоДокумента"), "Результат3",,ЭлементыФормы.Панель1);
   
   ЭлементыФормы.Результат.УстановитьПривязку(ГраницаЭлементаУправления.Низ);
   ЭлементыФормы.Результат.УстановитьПривязку(ГраницаЭлементаУправления.Право);
   
   ЭлементыФормы.Результат.Ширина = ЭлементыФормы.Результат.Ширина - 12;
   ЭлементыФормы.Результат.Высота = ЭлементыФормы.Результат.Высота - 12;
   ЭлементыФормы.Результат.Лево = 6;
   ЭлементыФормы.Результат.Верх = 6;
   
   ЭлементыФормы.Результат.УстановитьПривязку(ГраницаЭлементаУправления.Низ, Панель, ГраницаЭлементаУправления.Низ);
   ЭлементыФормы.Результат.УстановитьПривязку(ГраницаЭлементаУправления.Право, Панель, ГраницаЭлементаУправления.Право);
   
   НовПоле.Верх = ЭлементыФормы.Результат.Верх;
   НовПоле.Лево = ЭлементыФормы.Результат.Лево;
   НовПоле.Ширина = ЭлементыФормы.Результат.Ширина;
   НовПоле.Высота = ЭлементыФормы.Результат.Высота;
   
   НовПоле.УстановитьПривязку(ГраницаЭлементаУправления.Низ, Панель, ГраницаЭлементаУправления.Низ);
   НовПоле.УстановитьПривязку(ГраницаЭлементаУправления.Право, Панель, ГраницаЭлементаУправления.Право);
49 Mort
 
28.10.11
17:21
ААААА !!!

Чувак, ну ты жошь.
50 Mort
 
28.10.11
17:22
(49) -> ТС
51 Mort
 
28.10.11
17:23
Ты чо сразу не сказал что у тебя изначально на панели закладки не отображаются? Ясен хер когда добавляешь страницу у тебя появляются закладки и рабочее место уменьшается.
52 Mort
 
28.10.11
17:26
Плюс рамка рисуется - минус два пикселя.
53 extrim-style
 
01.11.11
10:01
(48) ну и что тут? я всю дорогу говорил, как же мне оставить узкий бордюр, как у меня в примере (46), чтобы вторая страница была как первая. А ты взял и увеличил бордюр первой страницы, как у второй... (причем сильно увеличил, там 6 достаточно).
В моем примере остаются на первой странице узкие бордюры. Вопрос: как повторить такой же бордюр программно на второй странице?

(51) Ну и что, что рамка рисуется? Я не придал рамке значения, т.к. в моём примере на первой странице остается узкий бордюр. Почему рамка никак не влияет на ТабДок на первой странице? И тот же вопрос: как програмнно сделать такой же (узкий) бордюр, как на первой странице?
54 extrim-style
 
01.11.11
11:15
Ап
55 GenV
 
01.11.11
11:42
(53) Не тупи - после добавление страниц у каждой бордюр по краям будет 6, как 1С везде делает.
ЗЫ Тебе объяснили, что программно во всю страницу (с бордюром 0) не сделаешь. 1С специально бордюр везде оставляет. Делай интерактивно и изменяй видимость.