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


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

Ничего не происходит, может потому что добавленная страница не текущая?
1 Looser-1c
 
07.11.14
08:45
намекающий вопрос.
Как связаны создаваемая тз и твоя форма?

Намекающий ответ - правильно, никак.
2 Ly_Alena
 
07.11.14
08:47
(1) Потому и написала сюда - как сделать?
3 Ly_Alena
 
07.11.14
08:50
Связано с заказом покупателя на основании которого создается АльтернативнаяТаблицаЦенообразования. в которой есть страница с табличной частью и по желанию создания точно такой же табличной части на другой вкладке, в которой можно поставить другие цены и накладные изменить.
4 Looser-1c
 
07.11.14
08:52
что-то мне намекает, что постановщик задачи - идиот...
5 Krolik Bezobraznik
 
07.11.14
08:53
Возможное количество альтернативных страниц ТЦО ограничено или нет? Если ограничено и оно в разумном пределе, одна - две страницы. то просто в конфигураторе скопируйте страницу столько раз сколько надо а при открытии формы скройте их и при нажатии на кнопку отобразите.

Не усложняйте =)
6 Ly_Alena
 
07.11.14
08:54
(4) Это очень легко оскорблять людей за глаза. По делу есть что сказать? Если нет - не вижу смысла тратить свое и мое время.
7 Ly_Alena
 
07.11.14
08:54
(5) Количество страниц неограниченно в том и сложность.
8 Krolik Bezobraznik
 
07.11.14
08:57
Тут проблема в том, что если вы не создадите ТЧ дока в конфигураторе, то сколько бы вы его не создавали программно ТЧ не запишется в доке...
9 Krolik Bezobraznik
 
07.11.14
08:57
(8) + ТЧ как бы не будет в объекте метаданных.
10 Krolik Bezobraznik
 
07.11.14
09:00
А вообще я по правде говоря сомневаюсь в целесообразности задуманной задачи.
11 Ly_Alena
 
07.11.14
09:01
(10) Одна табличная часть в доке конфигуратора есть, по ней заполняется табличная часть в первой странице
12 Ly_Alena
 
07.11.14
09:02
Мне нужно создавать такую же в остальных страницах. Как можно картинку здесь прикрепить, чтобы показать?
13 Ly_Alena
 
07.11.14
09:07
Может я непонятно как-то объясняю..
14 vicof
 
07.11.14
09:10
(12) Заливай на катринкопомойку, а сюда ссылку
15 Oleg_ka
 
07.11.14
09:10
Теперь попробуйте ответить на вопросы:
1) Созданные таблицы должны сохраняться в базе для дальнейшего просмотра?
2) Сколько вариаций может создать пользователь для просмотра?
3) На какие входящие данные завязаны эти вариации? (На наличие номенклатуры на складе? На расположение звезд на небе?)

На самом деле Ваша задача решается с помощью прекрасного инструмента "обработка табличной части документа" (можно и через внешнюю обработку табличной части документа).
16 13_Mult
 
07.11.14
09:11
"появляется страница клон с такой же табличной часть и становится текущей" ересь какая-то. ))
17 Oleg_ka
 
07.11.14
09:11
(16) Гхм. Более точно - "Обработка заполнения табличной части документа"
18 Ly_Alena
 
07.11.14
09:14
(15)
1) Да должно сохраняться
2) Изначально стоит задача о неограниченном количестве. Не думаю что их создадут сотни конечно.
3) В первой таблицы переносятся все данные из заказа покупателя, а на все остальные переносится только номенклатура, количество, единица измерения, цену и накладные пользователь здесь ставит другие, все остальное пересчитывается.
19 Ly_Alena
 
07.11.14
09:15
(16) Имеется ввиду что при создании страницы она становится активной. то есть имеется ввиду что если сейчас создается страница - пользователь остается на первой вкладке, а мне нужно чтобы была та что только что создана.
20 Ly_Alena
 
07.11.14
09:16
(17) Это в конфигураторе в обработках?
21 vicof
 
07.11.14
09:21
(0) Зачем пользователю создавать альтернативную ТЦО? Первопричина?
22 chudishe
 
07.11.14
09:22
А ви таки читали какие-нибудь книжки по 1с? Радченку там какую-нибудь? Или подумали что раз так махом и всему научитесь?
23 Oleg_ka
 
07.11.14
09:22
(18) В качестве примера, посмотрите как реализована обработка табличной части "Товары" в Управлении Торговлей.
Что касается "все таблицы должны сохраняться". Тут я бы порекомендовал для начала посмотреть что-то вроде "спецификаций" для продукции.
24 Chameleon1980
 
07.11.14
09:37
а реквизит типа хз в документе не пойдет в котором будет тз с таблицами ну или список с таблицами
25 Ly_Alena
 
07.11.14
10:34
(21) Альтернативное ценовое предложение. Разные цены, разные суммы разные накладные расходы.
26 Ly_Alena
 
07.11.14
10:38
(22) Книжки от корки до корки не читала. Но отрывками в ситуациях которые схожие с поставленной задачей.
27 Looser-1c
 
07.11.14
10:39
Я возвращаюсь к мнению (4).
Ну, или к s/постановщик/исполнитель/g
28 Chameleon1980
 
07.11.14
10:42
ну дык хран. зн. не поможет
в нем тз с тз
или сз с тз
29 Ly_Alena
 
07.11.14
10:42
(27) Ваше мнение очень ценно и несказанно помогло.
30 Chameleon1980
 
07.11.14
10:42
+(28) это вопрос
31 Ly_Alena
 
07.11.14
10:44
Хорошо. Я поняла что для начинающих эта задача несказанно сложна и тот, кто мне ее поставил человек недалекого склада ума.
Буду делать страницы и табличные части в конфигураторе и работать с видимостью.
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) да, хороший вариант. только автор темы невменяем
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn