Имя: Пароль:
1C
1C 7.7
v7: Таблица значений не соответствует размерам формы при открытии
0 Ефремов
 
15.07.14
08:02
Здравствуйте.

1с7.7

Разрабатываю форму документа. Табличная часть документа не совпадает с отображаемой на форме. Поэтому вместо стандартной таблицы документа использую ТаблицуЗначений. Столкнулся с проблемой: при выводе формы, ТаблицаЗначений не соответствует размеру формы. Если немного изменить размер формы, то таблица сразу же принимает необходимый размер.
В свойствах формы признак "Изменять размер" установлен. ТаблицаЗначений на форме только одна. Да и вообще на форме кроме текста и ТаблицыЗначений ничего больше нет.
Вроде мелочь, но пользователю отдавать стыдоба.
Может кто сталкивался с аналогичной проблемой, поделитесь решением, пожалуйста. Использовать внешние компоненты не желательно.

Ефремов.
1 Мигало
 
15.07.14
08:04
Картинку покажи "Табличная часть документа не совпадает с отображаемой на форме"
2 Ефремов
 
15.07.14
08:07
Не знаю как прикрепить картинку.
3 Ефремов
 
15.07.14
08:09
4 Мигало
 
15.07.14
08:11
А как форма выглядит в конфигураторе ?
5 Ефремов
 
15.07.14
08:14
6 DrZombi
 
гуру
15.07.14
08:15
(3) У тебя сколько ТЗ на форме расположено?

Если больше Одной, то все нормально :)
Используй ВК Формекс и программно расширяй другие ТЗ по основной ТЗ (та которая расширяется на вкладках), либо бери границы самой формы.

Предопределенная процедура Формекса
ПослеОткрытия() - там задаешь первоначальные данные
ПриИзмененииРазмераОкна() - http://www.1cpp.ru/docum/html/FormEx.html#id59

http://www.1cpp.ru/docum/html/FormEx.html
http://www.1cpp.ru/forum/YaBB.pl?board=FormEx
7 DrZombi
 
гуру
15.07.14
08:15
(5) Галочку в свойствах формы "Изменять размер"
8 DrZombi
 
гуру
15.07.14
08:16
+(7) И на ТЗ поищи :)
9 Ефремов
 
15.07.14
08:16
Галочка стоит.
10 DrZombi
 
гуру
15.07.14
08:16
(9) Да ты прямо чудотворец...
А теперь по поводу этого? (6)
11 Ефремов
 
15.07.14
08:19
(10) "А теперь по поводу этого? (6)" - мне бы не хотелось использовать внешние компоненты.
12 Ефремов
 
15.07.14
08:20
Проблем ка то кажется простенькой, а поди ж ты..
13 Ефремов
 
15.07.14
08:22
(3) это одна и та же форма:
1. сравзу после открытия и
2. когда чуть-чуть дернул за краешек - буквально на миллиметр.
14 vcv
 
15.07.14
08:23
Табличная часть на форме в каком-либо виде присутствует? Если есть, может её убрать совсем? Если нет, может попробовать её добавить только на невидимый слой и ниже по порядку обхода твоей таблицы.
Попробуй закомментировать весь модуль и посмотреть, как документ открывается.
15 Ефремов
 
15.07.14
08:26
(14) Табличной части документа на форме нет совсем. Все реквизиты табличной часть без галочек.
При настройке порядка обхода на форме вижу только элемент "Текст" и "ТаблицуЗначений".
16 Ефремов
 
15.07.14
08:30
(14) При комментировании программных модулей в документе, таблица выводится в таком же несуразном размере, без настроенных полей, естественно.
17 DrZombi
 
гуру
15.07.14
08:32
(12) В 7.7 может работать только с одной ТЗ на форме.
Даже табличная часть Документа является основной. А все остальные будут обычного размера, т.е. не будут автоматически расширяться.

Это только в 8-ке уже решилось.
18 DrZombi
 
гуру
15.07.14
08:33
(14) На невидимом слое не поможет. 7.7 все слои так то видимы, программно. :)
19 DrZombi
 
гуру
15.07.14
08:33
(15) Это документ?!!!!
Тогда Увы, все в порядке, табличная часть документ там, где и есть, только ты её не видишь :)
20 DrZombi
 
гуру
15.07.14
08:34
+(19) Да, это документ... чет я не прочитал до конца :)
21 Ефремов
 
15.07.14
08:41
(17) На форме одна ТЗ. Если дернешь за краешек уже открытую форму или свернешь форму и развернешь, то ТЗ принимает нужный размер. Следовательно, ТЗ как-то адаптируется к размеру, но не в то время.

(19) Да, это документ. Ну, неужели нет способа, ТЗ, после изменения размера формы, как-то адаптируется?
22 Ефремов
 
15.07.14
08:44
Тогда вопрос: как увеличить количество отображаемых столбцов в табличной части документа в процессе выполнения не меняя саму табличную часть документа?
23 vcv
 
15.07.14
08:51
Таки добавлять табличную часть на невидимый слой ниже по порядку обхода пробовал?
Боюсь, что только с ВК решится.
24 Ефремов
 
15.07.14
09:06
(23) Нет, не пробовал. Попробую. О результатах сообщу.
25 Ёпрст
 
15.07.14
09:20
(24) можешь не сообщать, результат очевиден.
Штатно, только одна многострочная часть растягивается на форме. +Табличная часть дока или форма списка имеет приоритет.
26 Ефремов
 
15.07.14
09:55
(23) Докладываю: не вышло!
Если на невидимом слое размещаю таблицу документа, то моя таблица на видимом слое вообще перестает менять размер.
Если таблицу документа не размещаю, то не имеет значение на каком слое размещена моя табличка значений, если он отображается, естественно. Вне зависимости от слоя размещения, таблица значений ведет себя по-старому: вначале отображается неадаптированного размера, при изменении размера формы, адаптируется.

Использование FormEx.dll исправляет ситуацию. Но как не охота использовать внешние компоненты!!!
27 Byasha
 
15.07.14
10:01
Через настройку порядка обхода элементов формы установи таблицу первой по порядку.
28 НеБорис Нуралиев
 
15.07.14
10:05
ИМХО, вместо ТЗ лучше добавлять текстовые колонки в табличную часть. Зачем усложнять жизнь себе и пользователям?
29 Ефремов
 
15.07.14
10:35
(27) На форме только одна таблица. См. (15)
30 Ефремов
 
15.07.14
10:37
(28) Не понял?!
В таблицу документа включить пустое текстовое поле и заполнять его в процессе выполнения формы?
31 Byasha
 
15.07.14
10:41
(29)На форме как минимум два элемента. И судя по всему первым назначено текстовое поле. В настройке порядка обхода элементов формы первым нужно установить таблицу. Тогда она будет автоматически масштабироваться при открытии формы.
32 Ефремов
 
15.07.14
10:50
(31) Таблица стоит первой. Переставил второй. Не изменилось.
Поставил "автоматический порядок обхода" - тоже без изменения.
33 Byasha
 
15.07.14
11:02
Автопорядок как раз нужно отключать. Странно. А сама таблица на документа на форме в других слоях не присутствует? Даже интересно стало. Тут семерки нет. Вечером обязательно проверю. У меня всегда срабатывало расположение таблицы первой в порядке обхода и без всяких ВК.
34 trad
 
15.07.14
11:04
(33) но не в форме документа / форме списка
35 Duke1C
 
15.07.14
11:05
(32) я так понимаю, ты пытаешься заюзать ТЗ вместо ТЧ, только лишь из-за того, что нужно помимо реквизитов ТЧ отображать еще какие-то колонки? Тогда (28) и будет тебе счастье.
36 НеБорис Нуралиев
 
15.07.14
11:06
(30) Совершенно верно.
37 Ефремов
 
15.07.14
11:38
(33) Сама табличная часть документа не присутствует.
Проблема в том, что это документ. На форме отчета проблем нет.

(35) Правильно понимаешь. На самом деле то, что хранится в документе, мало похоже на то, что показываю пользователю.
Есть огромная таблица из материалов и объектов списания: материалу соответствует один или несколько объектов списания.
В основном ячейки пересечения пустые. Если хранить все материалы и все объекты в документе, то это займет кучу дискового пространства. А я храню только заполненные ячейки. Но даже хранения всего списка материалов и всех объектов не решает проблему представления данных: количество колонок должно соответствовать количеству объектов списания, а количество объектов списания не постоянно.
А представить как в табличной части документа: материал, объект списания, количество - тоже невозможно из-за огромного количества таких сочетаний и необходимости подсчета суммы по материалу.
38 Ефремов
 
15.07.14
11:39
(35) как уже писал (30) не представляю, как использовать предложение (28).
39 Ефремов
 
15.07.14
11:46
(35) чтобы стала понятнее суть задачи, вот крупный рисунок: http://pix.academ.org/img/2014/07/15/69fa425954364129f5cf4958ccf06a3c.png .
В данном документе материалов 235, объектов списания (адреса домов), примерно 72. Но объекты списания от месяца к месяцу  меняются.
40 Ёпрст
 
15.07.14
11:55
Табличное поле или любой другой грид более подходят для такой задачи.
41 1dvd
 
15.07.14
12:08
(39) где-то есть улица Высоцкого?
42 Wern
 
15.07.14
12:10
(37) Ну так не храни табличную часть. При открытии документа заполняй ее своими данными, при записи очищай. Не нужные колонки скрывай. И не нужно будет никаких тз.
43 Ёпрст
 
15.07.14
12:12
(42) придётся заводить документ с ...х..вой тучей колонок неопределенного типа
44 Ефремов
 
15.07.14
12:13
(41) В Новосибирске.

(40) Можно по подробнее?

(42) Мне нужно показать 70 и более колонок. Что, завести табличную часть с 200-ми атрибутами? А в какой-то момент и этого не хватит, а я уже буду далеко?
45 Wern
 
15.07.14
12:17
(44) Зачем 200 если ты выводишь 70? заведи эти 70 колонок, меняй их заголовки под нужные тебе.
46 Ефремов
 
15.07.14
12:18
(45) Сегодня 70, завтра бухгалтер добавит еще и так без конца.
47 Wern
 
15.07.14
12:19
Да и 70 колонок тоже совершенно не наглядно. лучше сделать какой то отбор. типо выбирают в реквизите "высотцкого" и им выводятся только колонки с таким названием и цифрами.
48 Wern
 
15.07.14
12:21
(46) Дело твое. сдается мне бухгалтеру и 70 колонок не нужно. это же не отчет, его прокручивать при таком количество будет совершенно не удобно. Будет не документ, а кошмар.
49 Ёпрст
 
15.07.14
12:21
(44)http://www.1cpp.ru/docum/html/TableField.html

но ваша религия запрещает вам использовать вк
50 Ефремов
 
15.07.14
12:22
(47) Документ заполняют мастера, которые далеки от 1с и компьютеров. Им надо максимум наглядности. Как в Excel: строка, колонка - на пересечении пишешь.
51 Мимохожий Однако
 
15.07.14
12:23
Варианты:
1.Использовать табличный документ на форме. Аналог можно посмотреть в регламентированной отчетности.
2.Использовать только одну ТЗ на форме, а при переключении закладок использовать слои с перезаписью данных в ТЗ на форме.
52 Ефремов
 
15.07.14
12:24
(49) не запрещает мне ничего использовать. Мало того, я уже давно прикрутил FormEx (26). Но сама задача не дает покоя. Подспудно чувствую, что решение есть.
53 Ёпрст
 
15.07.14
12:25
(52) и.. как ввод организован в ТЗ на форму ?
Всплывающие окошки с ввестиЗначение поди ?
Прямой ыыод в ТЗ хоть прикрутил ?
54 Ёпрст
 
15.07.14
12:25
*прямой ввод
55 Мимохожий Однако
 
15.07.14
12:26
(+51)
3.Создать неизменяемый шаблон в Excel  и загружать из него в 1С.
56 Ефремов
 
15.07.14
12:29
(51) такой вариант сейчас и работает. Я табличный документ отцепил от документа, выделил для каждого участка только свою часть - чтобы мастера могли работать параллельно. За пол-года произошел один сбой: кто-то параллельно запустил один и тот же участок: бухгалтер может запустить любой участок параллельно с мастером. В итоге, что набрал мастер, повторной записью вторым пользователем было изменено.
Поэтому хотел проработать вариант с документом - чтобы никто не мог запустить повторно. А сами документы создать по участкам.
57 Ефремов
 
15.07.14
12:31
(53) пока на стадии проработки вариантов.

(55) Такой вариант пробовали. По разным причинам оказался неудобен.
58 Ефремов
 
15.07.14
12:34
(53) Пока прямой ввод в ТЗ не использовал. Если подскажешь, буду благодарен. В табличном документе при прямом вводе не смог избавиться от ввода символов, отличных от цифр. Использовал всплывающее окно для ввода цифр.
59 uno-group
 
15.07.14
12:35
Че за бред там нужно всего 5 колонок.
номенклатура, объект списания, списать,списано. весь жилой фонд. И бух будет вводить несколько строк с одной номенклатурой для разных объектов. Правду говорят, что 1с ники тупые тупые бухи сказали хочу шахматку а он под козырек. хочет бух шахматку собери ему ее в печатной форме в таков виде а заполняет почеловечески пусть. как ты представляеш работу с 200 колонками запаришся прокручивать.если так уж хочеш то можно сделать номальный док с 5 колонками и к нему внешний отчет с ТЗ и при открытии дурить буха открывая вместо документа отчет
60 DrZombi
 
гуру
15.07.14
12:36
(52) У тебя есть уже формекс? И ты не хочешь его использовать в документе?
Да там кода на 10 строчек (максимум)
Определить в переменную формы "основную форму".
И Изменять её размер по функции "ПриИзмененииРазмераОкна"
Только помни, что ПриОткрытии, формы еще не существует :)
61 Ефремов
 
15.07.14
12:39
(60) ещё раз (52) уже использую. Сама задача не дает покоя: почему первоначально таблица значений выводится с одним размером, а при изменении размера формы адаптируется к размеру формы?!
62 uno-group
 
15.07.14
12:40
наверное лучше не ТЗ юзать а таблицу в режиме ввода данных там хоть с доп окошками ввестичисто и т.п. не будет гимороя. Хотя лишнее это все нарисуй печатную форму в виде шахматки и будь мужиком убеди бухов что они неправы и надо заполнять 5 колонок а не мульен. да придеться по несколько раз выбирать номенклатуру
63 Ефремов
 
15.07.14
12:41
(59) Так и делаю сегодня: "дурю" буха и мастеров (56).
64 Ефремов
 
15.07.14
12:44
(62) таблица с форме документа не цепляется.

У меня все решено для "шахматки" (с FormEx). Исхожу из того, что пусть пользователю будет удобно и наглядно.
65 DrZombi
 
гуру
15.07.14
12:46
(61) Еще раз, по ссылкам (25) (ты слушай его, он собаку на 7-ке съел) :)
И вот еще от меня (17)(18)(19)... Прочти их в таком порядке :)

Не будет штатно расширяться в документе.
66 uno-group
 
15.07.14
12:46
Если ТЗ одна, она должна нормально масштабироваться просто поиграйся потягай ее край ближе дальше к краю формы пока не прилипнет
67 Ефремов
 
15.07.14
12:50
(56) на самом деле в табличной части документа 3 колонки: материал, объект списания, списано.
Списать - хранится в справочнике. А списано - вычисляется.
68 uno-group
 
15.07.14
12:53
прикруте к ней отчет.
в документе
Процедура ПриОткрытии()
    //КонтрольДаты(Контекст);
    ПриЗаписиПерепроводить(1);
    АвтоВремяТекущее();
    Если Выбран()=0 Тогда
        Пар="Новый";
        ФИЛ=""+КаталогИБ()+"\MyProg\Склад списание.ert";
        ОткрытьФорму("Отчет",Пар,ФИЛ);
        СтатусВозврата(0);
    ИначеЕсли НазваниеНабораПрав()="Администратор" Тогда
        Если Вопрос("Просмотр",4)=6 Тогда
            Форма.ТолькоПросмотр(1);
        Иначе
            ФИЛ=""+КаталогИБ()+"\MyProg\Склад списание.ert";
            ОткрытьФорму("Отчет",Контекст,ФИЛ);
            СтатусВозврата(0);
        КонецЕсли;
    Иначе
        ФИЛ=""+КаталогИБ()+"\MyProg\Склад списание.ert";
        ОткрытьФорму("Отчет",Контекст,ФИЛ);
        СтатусВозврата(0);
    КонецЕсли;
КонецПроцедуры
в отчете
    Док=СоздатьОбъект("Документ.Списание");
    Рег=СоздатьОбъект("Регистр.Остатки");
    РегП=СоздатьОбъект("Регистр.ОстаткиПрочее");
    Если Форма.Параметр="Новый" Тогда
        Док.Новый();
        Док.ДатаДок=ДатаДок;
        Док.УстановитьНовыйНомер();
        Док.МестоХранения=Константа.БазМестоХранения;
        МестоХранения=Константа.БазМестоХранения;
        НомерДок=Док.НомерДок;
    Иначе    
        ТекДок=Форма.Параметр;
        Док.НайтиПоНомеру(ТекДок.НомерДок);
        РегРасчитать();
        ЧитаемДокумент();
    КонецЕсли;
69 Ефремов
 
15.07.14
13:01
(65) не будет - очень жаль!

(66) не "липнет".

(68) большое спасибо! Что-то подобное у меня сегодня и работает. Но прорабатываю вопрос: работать непосредственно в  документе.
70 Ефремов
 
15.07.14
13:03
(67) * вместо "списано" в последней фразе надо читать: "списано всего" - это сумма по материалу по всем объектам.