Имя: Пароль:
1C
1С v8
Создание табличной части в создаваемой странице
0 Ly_Alena
 
07.11.14
08:35
Доброе утро!
Я только начинающая и хотела спросить, как в новой (созданной программно) странице создавать табличную часть? В инэте искала - ничего подходящего не нашла.
Есть вкладка ТЦО - таблица которая заполняется на основании ЗаказаПокупателя, далее если пользователь хочет создать альтернативную ТЦО, нажимает на кнопочку и появляется страница клон с такой же табличной часть и становится текущей. Как это сделать?


Процедура АльтернативаНажатие(Элемент)
ЭлементыФормы.АльтернативныеТЦ.Страницы.Добавить()
// создали новую пустую таблицу значений
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("НомерЛота");
ТЗ.Колонки.Добавить("ЗапрашиваемоеНаименование");
ТЗ.Колонки.Добавить("НовоеНаименование");
ТЗ.Колонки.Добавить("ФактическоеНаименование");
ТЗ.Колонки.Добавить("ЕдИзм");
ТЗ.Колонки.Добавить("Количество");
ТЗ.Колонки.Добавить("Себестоимость");
ТЗ.Колонки.Добавить("Себестоимостьобъема");
ТЗ.Колонки.Добавить("ЦенабезНДС");
ТЗ.Колонки.Добавить("СуммабезНДС");
ТЗ.Колонки.Добавить("Цена");
ТЗ.Колонки.Добавить("Сумма");
ТЗ.Колонки.Добавить("Транспортные");
ТЗ.Колонки.Добавить("Накладные");
ТЗ.Колонки.Добавить("КПН");
ТЗ.Колонки.Добавить("Прибыль");
ТЗ.Колонки.Добавить("Рентабельность")
КонецПроцедуры

Ничего не происходит, может потому что добавленная страница не текущая?
32 Ly_Alena
 
07.11.14
10:45
Обращаешься за реальной помощью - а получаешь психологическую атаку )
33 Chameleon1980
 
07.11.14
10:45
а вообще есть, например такая конфа у кот. тч локумента хранятся в РС (WMS). Можно и через РС реализовать сколь угодно тч.
34 Kalambur
 
07.11.14
10:46
(29) не надо тебе никакие табличные части делать,  сохраняй варианты своих таблиц в хранилище, если надо смотреть/сравнивать, сделай кнопку в документе и показывай отчетом свои таблицы, потом сделаешь выбор варианта и загрузку его в ТЧ
35 Chameleon1980
 
07.11.14
10:46
если чуток совсем подумать. Я так понял у нас счас проблема хранить динамическое кол-во тч.
36 Kalambur
 
07.11.14
10:47
(31) как бы ты пытаешся сделать так, как говорит тебе пользователь, поэтому получается ..йня.
37 Kalambur
 
07.11.14
10:47
+ вся проблема как раз в "сохранить таблицы" )
38 Chameleon1980
 
07.11.14
10:48
(34) блин я хз (хр.зн.) чет уже пять миллионов постов назад тож предлагал. Да довига вообще вариантов решения. Большой все же вопрос - нахв?
39 Chameleon1980
 
07.11.14
10:48
(37) да нет проблем никаких ёмаё.
40 chelentano
 
07.11.14
10:50
Собственно, не совсем понятно, в чём вопрос... Как хранить данные? Или как нарисовать закладку с табличным полем? Или вообще "как работать с этой вашей грёбаной 1С"?
41 Ly_Alena
 
07.11.14
10:51
(36) у меня пока еще ничего не получается. С пользователем переговорила, ему достаточно 5 вкладок с 5 таблицами ценообразования. Поэтому думаю проще будет сделать это в конфигураторе и поиграть в видимость. Только как сделать чтобы по одной кнопке показывались последовательно вкладки с таблицами пока не знаю.
42 Ly_Alena
 
07.11.14
10:52
(40) как нарисовать закладку с табличной частью - вопрос был в этом.
43 Chameleon1980
 
07.11.14
10:57
еще вопрос тада
уф, простые?
44 Kalambur
 
07.11.14
10:57
(39) для нее это огромная проблема
45 Kalambur
 
07.11.14
10:58
(41) Не ВЕРЬ пользаку, он врет 100%, через 2 недели прибежит и скажет надо 7 таблиц
46 Chameleon1980
 
07.11.14
10:59
(45) бывает.
47 Ly_Alena
 
07.11.14
11:01
(45) а что делать? То говорите создать в конфигураторе фиксированное количество, потому что нефиксированное это нереально и такие задачи ставят дураки а ты ведешься.
Я себе это так представляла: где-то хранится моя таблица в таком виде как мне надо и по созданию вставляется в созданную вкладку, где уже пользователь вносит свои изменения.
48 Ly_Alena
 
07.11.14
11:01
(43) что, простите, простые? )
49 butterbean
 
07.11.14
11:02
госпади, очередной пользователь привыкший к экселю и ипущий мозги программисту
50 Kalambur
 
07.11.14
11:02
(49) ага, девочка попала ))
51 Ly_Alena
 
07.11.14
11:02
(49) тебя пожалеть?
52 silent person
 
07.11.14
11:03
(51) весь поток негатива из-за вашей неправильной формулировки. "табличная часть" - это объект метаданных и создать ее можно только в конфигураторе. та таблица которую видит пользователь на форме является элементом управления типа "табличное поле" связанное с данными.

если формы управляемые то табличное поле добавляется примерно так

// добавляем страницу для таблицы    
НоваяСтраница = Элементы.Добавить("МояСтраница",Элементы.Группа16);
НоваяСтраница.Вид =    ВидГруппыФормы.Страница;
НоваяСтраница.Заголовок = "МоеНазвание";
        
// добавляем новую таблицу    
НовыйЭлемент = Элементы.Добавить("МоеНазвание",Тип("ТаблицаФормы"),НоваяСтраница);
НовыйЭлемент.ПутьКДанным = НаименованиеТЗ;
53 silent person
 
07.11.14
11:05
+52 Элементы.Группа16 - это мой элемент формы "страницы"
НаименованиеТЗ = переменная где указан путь к данным

ну а потом в этом табличном поле надо программно создать колонки и у них тоже укзать путь к данным
54 Chameleon1980
 
07.11.14
11:10
(48) формы управляемые или обычные?
55 Chameleon1980
 
07.11.14
11:12
56 Chameleon1980
 
07.11.14
11:13
57 Ly_Alena
 
07.11.14
11:16
(54) обычные
58 silent person
 
07.11.14
11:21
(57) примеры есть в Синтаксис помошнике

СтраницыПанели (PanelPages)
Добавить (Add)
Синтаксис:

Добавить(<Имя>, <Заголовок>, <Значение>, <КартинкаЗаголовка>)

Пример:

Страницы = ЭлементыФормы.ОсновнаяПанель.Страницы;
СтраницаПанели = Страницы.Добавить(Имя, Представление);
ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = СтраницаПанели;


ЭлементыФормы (Controls)
Добавить (Add)
Синтаксис:

Добавить(<Тип>, <Имя>, <Видимость>, <ПоместитьНа>)

// Расположим на странице табличное поле
ПолеРегистра = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),
        СтрокаТаблицы.Имя,
        Истина,
        ЭлементыФормы.ОсновнаяПанель);
ПолеРегистра.Данные = "ДокументОбъект.Движения." + СтрокаТаблицы.Имя;
59 zulu_mix
 
07.11.14
11:25
можно двумя путями реализовать.

1. записывать ТЗ в Соответствие а Соответствие в ХЗ и загружать их оттуда при открытии, создавая на лету вкладки с именем Ключ и заполнять Значением

2. добавить в ТЧ колонку Страница и при открытии создавать страницы демонически.
60 Chameleon1980
 
07.11.14
11:32
КоличествоСтраниц=ЭлементыФормы.Панель.Страницы.Количество();
    НоваяСтраница=ЭлементыФормы.Панель.Страницы.Добавить("Страница"+КоличествоСтраниц,"Альтернатива "+КоличествоСтраниц);
    ЭлементыФормы.Панель.ТекущаяСтраница = НоваяСтраница;
61 Ly_Alena
 
07.11.14
11:33
(59) уф, вы мне говорить на равных, а для меня столько непонятных слов. Сейчас спрошу где находится соответствие и ХЗ и в меня снова полетят ботинки...
62 Krolik Bezobraznik
 
07.11.14
11:35
(61) Не расстраивайтесь. Я все же задал бы вопрос пользователю по поводу его хотелки.
Как этот функционал, который он хочет будет использоваться? Так будет проще сформулировать решение.
63 Chameleon1980
 
07.11.14
11:38
да хоть в соотв, хоть в СЗ. Хоть во что - куда удобней.
64 Chameleon1980
 
07.11.14
11:39
+ тока мне чет кажется в РС круче будет.
И запрос норм построить можно если что.
65 Ly_Alena
 
07.11.14
11:40
(62) Пользователю нужно чтобы было несколько вариантов таблиц ценообразования. Одна формируется на основании ЗаказаПокупателя. Остальные ТЦО с такими же колонками и строками, но в них вносят изменения в части цен или накладных расходов для того чтобы принести начальнику показать и он такой "ага, вот этот и этот вариант нам подходит".
66 silent person
 
07.11.14
11:40
(61) Соответствие находится в Универсальных коллекциях, а ХЗ - это хранилище значений.
67 Krolik Bezobraznik
 
07.11.14
11:41
(65) Т.е. пользователь сам решает по какой цене он хочет купить? Вот это я понимаю ДЕМОКРАТИЯ =))
68 chelentano
 
07.11.14
11:41
(42) как-то так:
НоваяСтраница = ЭлементыФормы.АльтернативныеТЦ.Страницы.Добавить();
ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = НоваяСтраница;
ТабличноеПоле = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),
        "ТабличноеПоле"+КоличествоСтраниц, Истина, ЭлементыФормы.ОсновнаяПанель);
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Лево = 6;
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Верх = 6;
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Ширина = 370;
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Высота = 194;

ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Значение = ТЗ;
ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].СоздатьКолонки();
69 Kalambur
 
07.11.14
11:42
(65) и смысл тогда хранить все эти таблицы, если выйдет 1 вариант?
70 Ly_Alena
 
07.11.14
11:43
(67) пользователь в данном случае - это менеджер по продажам. и он решает по какой цене продать.
71 Krolik Bezobraznik
 
07.11.14
11:44
(69) Дело говоришь =) (70) А почему бы пользователю не менять эти цены в одной единственной ТЦО?
72 butterbean
 
07.11.14
11:44
(70) предложи ему в эксель перекинуть и там свои таблицы составлять, поверь — на 5 страницах/таблицах они не остановятся
73 Ly_Alena
 
07.11.14
11:47
(69) Хранить для того чтобы знать какие варианты были предложены по этому заказу. Выйдет не один вариант. (72) ексель было предложено - но люди не хотят особо работать ручками - хотят все по нажатию кнопочки чтобы делалось.
74 Kalambur
 
07.11.14
11:48
(73) чеее? эта кнопочка будет сама определять какую цену поставить? или выбирать что продавать?
75 Шапокляк
 
07.11.14
11:49
(0) Как-то не очень понятно где эти страницы числом 100500 находятся. Наверно, в каком-то документе? Почему на основании этого документа не вводить сколько угодно документов Альтернативное ценовое предложение, содержащих табличную часть с нужными колонками и не организовать их удобный просмотр из формы документа-основания? Можно и отчетом как-то обрабатывать, если потребность есть.
76 Krolik Bezobraznik
 
07.11.14
11:49
(73) Ну вот смотрите. В конечном итоге, чисто гипотетически, есть такой у вас док, в котором 100 вариантов предложений. Как менеджер все это будет анализировать?
77 Krolik Bezobraznik
 
07.11.14
11:50
(75) Вот кстати тоже интересное решение
78 Ly_Alena
 
07.11.14
11:51
(74) нет, кнопочка конечно сама не будет определять цены (76) да все-таки думаю 5 таблиц будет думаю вполне достаточно и я об этом говорила ранее - но потом меня начали переубеждать что потом им понадобятся 7 )
79 Krolik Bezobraznik
 
07.11.14
11:53
(78) А может добавить 5 колонок для вариантов цен в существую таблицу? Или кроме цен может еще что то меняться?
80 Krolik Bezobraznik
 
07.11.14
11:55
(78) + Просто есть ли смысл дублировать записи которые не будут меняться (товар. количество и т.п.), если будет меняться только цена. Тогда сделайте доп колонки Цена1, Цена2, Цена3, Цена4 и т.д. и по мере необходимости их заполняйте. Тут можно и с видимостью колонок "поиграть".
81 Ly_Alena
 
07.11.14
11:56
в результате из документа по нажатию кнопочки будет выходить печатная форма в которой будут все заполненные таблицы подряд чтобы было видно по каким ценам и с какими расходами выгоднее работать. Может вы от меня это хотели услышать - это на вопрос для чего?
82 Ly_Alena
 
07.11.14
11:57
(79) кроме цен меняются расходы.ю на картинке по ссылке которую вставил хамелеон (56) видны поля и то что я хочу
83 chelentano
 
07.11.14
11:57
+(68) но самый лучший вариант хранения данных, на мой взгляд, это подчинённые документы
84 Chameleon1980
 
07.11.14
12:03
(68) немного имхо не верно
переменные перепутаны
85 Ly_Alena
 
07.11.14
12:10
(84) (83)  сейчас попробую что получится
86 Ly_Alena
 
07.11.14
12:13
{Документ.АльтернативнаяТаблицаЦенообразования.Форма.ФормаДокумента.Форма(7,25)}: Переменная не определена (КоличествоСтраниц)
        "ТабличноеПоле"+<<?>>КоличествоСтраниц, Истина, ЭлементыФормы.ОсновнаяПанель);
{Документ.АльтернативнаяТаблицаЦенообразования.Форма.ФормаДокумента.Форма(8,37)}: Переменная не определена (КоличествоСтраниц)
    ЭлементыФормы["ТабличноеПоле" + <<?>>КоличествоСтраниц].Лево = 6;
{Документ.АльтернативнаяТаблицаЦенообразования.Форма.ФормаДокумента.Форма(9,37)}: Переменная не определена (КоличествоСтраниц)
    ЭлементыФормы["ТабличноеПоле" + <<?>>КоличествоСтраниц].Верх = 6;
{Документ.АльтернативнаяТаблицаЦенообразования.Форма.ФормаДокумента.Форма(10,37)}: Переменная не определена (КоличествоСтраниц)
    ЭлементыФормы["ТабличноеПоле" + <<?>>КоличествоСтраниц].Ширина = 370;
{Документ.АльтернативнаяТаблицаЦенообразования.Форма.ФормаДокумента.Форма(11,37)}: Переменная не определена (КоличествоСтраниц)
    ЭлементыФормы["ТабличноеПоле" + <<?>>КоличествоСтраниц].Высота = 194;
{Документ.АльтернативнаяТаблицаЦенообразования.Форма.ФормаДокумента.Форма(13,33)}: Переменная не определена (КоличествоСтраниц)
ЭлементыФормы["ТабличноеПоле" + <<?>>КоличествоСтраниц].Значение = ТЗ;
{Документ.АльтернативнаяТаблицаЦенообразования.Форма.ФормаДокумента.Форма(14,33)}: Переменная не определена (КоличествоСтраниц)
ЭлементыФормы["ТабличноеПоле" + <<?>>КоличествоСтраниц].СоздатьКолонки();
{Документ.АльтернативнаяТаблицаЦенообразования.Форма.ФормаДокумента.Форма(13,63)}: Переменная не определена (ТЗ)
ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Значение = <<?>>ТЗ;
87 Ly_Alena
 
07.11.14
12:14
Наивная - вставила и жду результата хоть какого-то ))
88 dimaldinho
 
07.11.14
12:21
Есть простое решение.

1. На форме документа сделать табличную часть, в документе - только шапка.
2. Создать регистр сведений, где хранить данные табличной части. В регистре добавить измерение - ссылка на документ-хозяин и измерение "НомерВарианта". Номер варианта можно сделать не числом, а строкой, например, тогда можно осозданные имена добавлять вариантам.
3. В шапке документа сделать выбор варианта, например, выпадающим списком - список заполнять при открытии чтением регистра с отбором по документу-хозяину.
4. При выборе в шапке одного из варианта заполнять табличную часть на форме данными регистра с отбором по документу-хозяину и варианту.
89 Ly_Alena
 
07.11.14
12:23
Что такое "ОсновнаяПанель"?
90 vicof
 
07.11.14
12:24
(89) На Ленинградке :)
91 Ly_Alena
 
07.11.14
12:25
(88) а как в таком варианте распечатывать на одном листе 5 альтернативных ТЦО например?
92 Ly_Alena
 
07.11.14
12:25
(90) просто выдает ошибку...
93 chelentano
 
07.11.14
12:26
(86), (89) ты что думала, что я тебе полностью рабочий код что ли напишу? ОсновнаяПанель - это имя панели, где у тебя страницы будут находиться
94 chelentano
 
07.11.14
12:27
(92) в твоём случае: "АльтернативныеТЦ"
95 Ly_Alena
 
07.11.14
12:27
Разобралась что это моя Альтернативная ТЦ
96 Ly_Alena
 
07.11.14
12:27
Разобралась уже
97 vicof
 
07.11.14
12:28
(96) Алена, тебе замуж надо.
98 Ly_Alena
 
07.11.14
12:28
(93) да думала )
99 Chameleon1980
 
07.11.14
12:29
вот такое при открытии
Процедура ОбновитьТабличныеЧасти()

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ТЧДокументов.Владелец,
        |    ТЧДокументов.ТЧ КАК ТЧ,
        |    ТЧДокументов.Номенклатура,
        |    ТЧДокументов.Количество КАК Количество,
        |    ТЧДокументов.Цена КАК Цена,
        |    ТЧДокументов.Сумма КАК Сумма
        |ИЗ
        |    РегистрСведений.ТЧДокументов КАК ТЧДокументов
        |ГДЕ
        |    ТЧДокументов.Владелец = &ВыбДокумент
        |
        |УПОРЯДОЧИТЬ ПО
        |    ТЧ
        |ИТОГИ ПО
        |    ТЧ";

    Запрос.УстановитьПараметр("ВыбДокумент", Ссылка);

    Результат = Запрос.Выполнить();

    ВыборкаТЧ = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

    Пока ВыборкаТЧ.Следующий() Цикл
        // Добавляем страницу
        ВыборкаДетальныеЗаписи = ВыборкаТЧ.Выбрать();

        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            // заполняем страницу данными из рс
        КонецЦикла;
    КонецЦикла;
КонецПроцедуры


структуру рс сани делаете - смотря какая структура тч вашего документа

при записи дока наоборот по документу читаем из рс - если записи какие-то уже есть - скначала из рс запросом читаем потом ЗаполнитьЗначенияСвойств(РСМенеждер,Выборка);

если в запросе что то было - то мы счас на старой записи - пишем в нее.
если в запросе ничего не было - создаем новую запись

вот неотлаженное:

Процедура ОбновитьРС(Страница)
    Запрос=Новый Запрос;
    ТекстЗапроса="ВЫБРАТЬ
                  |    ТЧДокументов.Владелец,
                  |    ТЧДокументов.ТЧ
                  |ИЗ
                  |    РегистрСведений.ТЧДокументов КАК ТЧДокументов
                  |ГДЕ
                  |    ТЧДокументов.Владелец = &ВыбДокумент
                  |    И ТЧДокументов.ТЧ = &ИмяТЧ";
                  
    Запрос.Текст=ТекстЗапроса;
    Запрос.УстановитьПараметр("ВыбДокумент",Ссылка);
    Запрос.УстановитьПараметр("ИмяТЧ",Страница.Имя);
    Результат=Запрос.Выполнить();
    РСМенеждер=РегистрыСведений.ТЧДокументов.СоздатьМенеджерЗаписи();
    Если Не Результат=Неопределено Тогда
        Выборка=Результат.Выбрать();
        Если Выборка.Следующий() Тогда
            ЗаполнитьЗначенияСвойств(РСМенеждер,Выборка);
            РСМенеждер.Прочитать();
        КонецЕсли;
    КонецЕсли;
    ф=1;
КонецПроцедуры


ето вызываем в приЗаписи
    Для Каждого Альтернатива Из Панель.Страницы Цикл
        ОбновитьРС(Альтернатива);
    КонецЦикла;
100 vicof
 
07.11.14
12:32
(100)
101 Ly_Alena
 
07.11.14
12:36
(97) Я замужем, у меня есть сын. Мне 27 и я решила кардинально сменить поле своей деятельности. Раньше была менеджером по госзакупкам, но всегда было интересно то чем начала заниматься сейчас. ТО есть я начала реально с нуля. Поэтому не так все просто идет. Поэтому много слов непонятно. Не судите строго. Есть огромное желание продолжать - и пока все Ваши кинутые ботинки и шутки не отбили это желание, и не отобъют. Максимум отобъют желание ходить на этот форум за помощью.

Вот такое вот откровение. А теперь снова к разбору полетов )
102 Ly_Alena
 
07.11.14
12:37
(99) что такое РС?
103 chelentano
 
07.11.14
12:48
(102) Регистр Сведений
104 Chameleon1980
 
07.11.14
12:49
ну обычно рс - регистр сведений, хз - может быть как хранилище значений, ПВХ, например - план видов характеристик. вобщем ищите альтернативы в объектами конфигурации.
105 vicof
 
07.11.14
12:51
(101) Так может быть сначала обучающие материалы почитать, псомотреть. Понять, как делаются базовые вещи, а потом уже творить непотребства по заявкам пользователей?
106 Ly_Alena
 
07.11.14
12:57
(105) смотрела и читала. Но я думаю что  можно изучать и читать и смотреть видео материалы долго, гораздо лучше усваивается когда есть какие-то реальные задания и не миф. Мне так лучше. А идти на форум с вопросом и получать ответ - почитай или посмотри видео не хочется. вот если бы конкретно по теме - вот такое-то видео или такая-то книга )
107 Ly_Alena
 
07.11.14
12:58
Если этот форум только для спецов - то конечно я не по адресу
108 dimaldinho
 
07.11.14
13:02
(88) Запросом по регистру сведений
109 Ly_Alena
 
07.11.14
13:04
(108) А менеджер все варианты будет видеть только на листе получается, а в документе только один вариант, который будет открывать и менять - я правильно поняла?
110 dimaldinho
 
07.11.14
13:06
(109) Да. Но ничего не мешает, если потребуется, сделать в документе кнопку "Показать в одной табличной части все варианты и вывести колонку с именами вариантов"
111 Ly_Alena
 
07.11.14
13:07
(110) непонятно как и где менеджер будет вводить данные цен и различных расходов?
112 Ly_Alena
 
07.11.14
13:33
КоличествоСтраниц=ЭлементыФормы.АльтернативныеТЦ.Страницы.Количество();
    НоваяСтраница=ЭлементыФормы.АльтернативныеТЦ.Страницы.Добавить("Страница"+КоличествоСтраниц,"Альтернатива"+КоличествоСтраниц);
    ЭлементыФормы.АльтернативныеТЦ.ТекущаяСтраница = НоваяСтраница;
    ТабличноеПоле = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"ТабличноеПоле"+5, Истина, ЭлементыФормы.АльтернативныеТЦ);
    ЭлементыФормы["Товары" + КоличествоСтраниц].Лево = 6;
    ЭлементыФормы["Товары" + КоличествоСтраниц].Верх = 6;
    ЭлементыФормы["Товары" + КоличествоСтраниц].Ширина = 370;
    ЭлементыФормы["Товары" + КоличествоСтраниц].Высота = 194;
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Значение = ТабличноеПоле;
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].СоздатьКолонки();


Можно вопрос? Вылетает ошибка:
{Документ.АльтернативнаяТаблицаЦенообразования.Форма.ФормаДокумента.Форма(14)}: Поле объекта не обнаружено (Товары1)
    ЭлементыФормы["Товары" + КоличествоСтраниц].Лево = 6;
113 dimaldinho
 
07.11.14
13:39
(111) В элементе формы документа "Табличное поле"
114 Chameleon1980
 
07.11.14
13:40
ТабличноеПоле = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"ТабличноеПоле"+5, Истина, ЭлементыФормы.АльтернативныеТЦ);

что за +5
115 Chameleon1980
 
07.11.14
13:40
?
116 Ly_Alena
 
07.11.14
13:43
(114) возможное количество страниц и таблиц
117 Ly_Alena
 
07.11.14
13:43
это (68)
118 butterbean
 
07.11.14
13:45
(112) че за "Товары"? у тебя ведь ТабличноеПоле
(116) тебе надо было видимо 5 раз сделать
ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"ТабличноеПоле"+ТутНомерСтраницы...
119 Ly_Alena
 
07.11.14
13:46
(118) табличное поле называется товары
120 butterbean
 
07.11.14
13:47
(119) почему ты тогда пишешь ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"ТабличноеПоле"..., а не ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"Товары"...
121 Ly_Alena
 
07.11.14
13:49
(120) Даже если везде написать Табличное поле - все равно выдает ту же ошибку только уже спрашивает поле объекта не обнаружено (ТабличноеПоле1)
122 butterbean
 
07.11.14
13:51
(121) >>  все равно выдает ту же ошибку
это не значит, что надо фигню писать, а на "ТабличноеПоле1" ругается потому что ты создаешь только один элемент "ТабличноеПоле5", вместо того чтоб создать пять штук
123 Ly_Alena
 
07.11.14
13:53
(122) да +1 ставлю - выводит, но как мне сделать чтобы каждое нажатие кнопки выводило новую страницу с новой табличной частью?
124 butterbean
 
07.11.14
13:59
(123) твой код разве этого не делает??
125 Ly_Alena
 
07.11.14
14:00
мой код выдает ошибку - вкладку создает, а табличное поле ошибку
126 butterbean
 
07.11.14
14:07
(125) какую теперь ошибку выдает??
127 Krolik Bezobraznik
 
07.11.14
14:09
А по моему проще создать 5 ТЧ в доке и скрывать страницы по необходимости.
128 antoneus
 
07.11.14
14:12
Я, наверно, скажу какую-то глупость, но не проще добавить в ТЧ реквизит "НомерТабличнойЧасти" и, фильтруя по нему, выгружать хоть в пятьдесят таблиц на форме, и добавлять из таблиц на форме в ТЧ?
129 Chameleon1980
 
07.11.14
14:12
вот лови


Процедура ОсновныеДействияФормыДобавитьСтраницу(Кнопка)
    КоличествоСтраниц=ЭлементыФормы.Панель.Страницы.Количество();
    НоваяСтраница=ЭлементыФормы.Панель.Страницы.Добавить("Страница"+КоличествоСтраниц,"Альтернатива "+КоличествоСтраниц);
    ЭлементыФормы.Панель.ТекущаяСтраница = НоваяСтраница;
    
    // добавляем тп на новую страницу
    НовоеТП=ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"ТабличноеПоле"+КоличествоСтраниц,Истина,ЭлементыФормы.Панель);
    
    // задаем размеры как у обычной тч "Номенклатура"
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Лево = ЭлементыФормы.Номенклатура.Лево;
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Верх = ЭлементыФормы.Номенклатура.Верх;
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Ширина = ЭлементыФормы.Номенклатура.Ширина;
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Высота = ЭлементыФормы.Номенклатура.Высота;
    
    // выгружаем копию данных из стандартной тч "Номенклатура"
    ТЗСтандартная=Номенклатура.Выгрузить();
    
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].Значение = ТЗСтандартная;
    ЭлементыФормы["ТабличноеПоле" + КоличествоСтраниц].СоздатьКолонки();
КонецПроцедуры


тока с размерами не совсем
130 Chameleon1980
 
07.11.14
14:14
здесь "Панель" это панель со страницами,
а "Номенклатура" это ваша тч
131 dimaldinho
 
07.11.14
14:14
(128) да, хороший вариант. только автор темы невменяем