Имя: Пароль:
1C
1С v8
Работа над таблицами.
0 Janna26
 
06.06.12
15:55
Доброе время суток. Столкнулась с такой проблемой.
Нужно в таблицу "товары" она на форме(управляемой) имеет 2 реквизита, добавить вторую таблицу "ИнтервалДоставки" она получается на другой форме. Основная проблема в том что строки второй таблицы, должны являться колонками первой. Ума не приложу как это сделать. Если не трудно небольшой пример.
1 МихаилМ
 
06.06.12
16:02
если будут скриншоты, ответов будет больше.

а так транспонитуйте 2 таблицу

тупо перебором (найти)
соедините с первой.
2 МихаилМ
 
06.06.12
16:04
+(1)
опечатка транспонируйте
3 Mort
 
06.06.12
16:05
Количество колонок известно на этапе конфигурирования? Если нет, то забудьте.
4 Buster007
 
06.06.12
16:05
из таблицы №1 формы №1 перенести данные в таблицу №2 формы №2?
5 aleks-id
 
06.06.12
16:05
(0) покури в УТ11 документ УстановкаЦен - там как раз так и сделано
6 Mort
 
06.06.12
16:06
Хотя теоретически...
7 Janna26
 
06.06.12
16:06
(5) Я посмотрела. ТАм хаос с которым часа 3 разбираться. И половину не нужно.
8 Mort
 
06.06.12
16:06
Или это не дин список? тада проще.
9 Janna26
 
06.06.12
16:07
Думала вы подкинете идей.
10 Janna26
 
06.06.12
16:07
(8) Это обычная таблица.
11 aleks-id
 
06.06.12
16:07
(7) там не хаос а все очень просто. а вот расписывать здесь как это реализовано уйдет больше времени чем сделать тебе самой по аналогии.
12 Janna26
 
06.06.12
16:07
Я кажется придумала. Нужно сделать 3 таблицу и туда собрать остальные.
13 aleks-id
 
06.06.12
16:07
(12) рукалицо.жпг
14 Janna26
 
06.06.12
16:08
Так проблема теперь только в том как вывести 3 таблицу на форму.
15 Mort
 
06.06.12
16:10
(10) В 1С не бывает обычных таблиц. Есть таблица формы, таблица значений. Оперируйте всем понятными терминами и вам будут отвечать и предлагать идеи.

Первая таблица чем не понравилась?

1. Выясняем какие колонки надо добавить.
2. Добавляем через "ИзменитьРеквизиты"
3. Создаем нужные поля.
4. Заполняем.
...
Х. Profit!
16 Janna26
 
06.06.12
16:30
ТаблицаВидовЦен = Новый ТаблицаЗначений;
Массив = Новый Массив;
Для каждого стр из Объект.ИнтервалыДоставки цикл
   Если Стр.Загружать = Истина тогда
   Массив.Добавить(новый РеквизитФормы(Стр.Интервал.Наименование,ТипЗнч(Стр.Интервал),"Интервал"));
   КонецЕсли;
КонецЦикла;
ЭтаФорма.ИзменитьРеквизиты(Массив);

пока как то вот так.
17 Janna26
 
06.06.12
16:30
По правильному пути иду?
18 Janna26
 
06.06.12
17:15
(15) А как эти реквизиты потом вывести на форму?
19 Mort
 
06.06.12
17:47
(18)
Элементы.Добавить(...);
Элементы.ПутьКДанным = "ИмяТЗ.ИмяКолонки";



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

Добавить(<Имя>, <ТипЭлемента>, <Родитель>)
Параметры:

<Имя> (обязательный)

Тип: Строка.
Уникальное имя добавляемого элемента.
<ТипЭлемента> (обязательный)

Тип: Тип.
Тип добавляемого элемента.
<Родитель> (необязательный)

Тип: ГруппаФормы; ТаблицаФормы; УправляемаяФорма.
Родитель для добавляемого элемента.
Если не указан, то добавляется на верхний уровень.
Возвращаемое значение:

Тип: ДекорацияФормы; ГруппаФормы; КнопкаФормы; ТаблицаФормы; ПолеФормы.

Описание:

Добавляет элемент в коллекцию.

Доступность:

Сервер.
20 Mort
 
06.06.12
17:47
+(19)
Фу блин.

Элемент = Элементы.Добавить(...);
Элемент.ПутьКДанным = "ИмяТЗ.ИмяКолонки";
21 Janna26
 
07.06.12
12:43
Тема снова актуальна.
22 Janna26
 
07.06.12
12:44
Объект.ИнтервалыДоставки.Загрузить(ВыбранноеЗначение.Выгрузить());

ТаблицаВидовЦен = Новый ТаблицаЗначений;
Массив = Новый Массив;
Для каждого стр из Объект.ИнтервалыДоставки цикл
   КолонкаИмя = СтрЗаменить(стр.Интервал.Наименование," ","");
   Массив.Добавить(новый РеквизитФормы(КолонкаИмя,Новый ОписаниеТипов("СправочникСсылка.МК_ГородаДоставки"),"ЦенаНаДоставку",Стр.Интервал.Наименование));
   
КонецЦикла;
 ЭтаФорма.ИзменитьРеквизиты(Массив);

   ЦенаНаДоставкуТаб = РеквизитФормыВЗначение("ЦенаНаДоставку");
   ЦенаНаДоставкуТаб.Колонки.Очистить();
   
   Для Каждого Колонка Из Объект.ИнтервалыДоставки Цикл
       КолонкаИмя = СтрЗаменить(Колонка.Интервал.Наименование," ","");
       Сообщить(КолонкаИмя);
   ЦенаНаДоставкуТаб.Колонки.Добавить(КолонкаИмя, Новый ОписаниеТипов("СправочникСсылка.МК_ИнтервалыВесовДоставки"),Колонка.Интервал.Наименование,20);
   Элементы.Добавить("ЦенаНаДоставку"+КолонкаИмя,Новый ОписаниеТипов("СправочникСсылка.МК_ИнтервалыВесовДоставки"), "ЦенаНаДоставку") ;
   КонецЦикла;
   ЦенаНаДоставкуТаб.Колонки.Добавить("Город", Новый ОписаниеТипов("СправочникСсылка.МК_ГородаДоставки"),"Город",20);
   ЦенаНаДоставкуТаб.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"),"Цена",20);
   ЗначениеВРеквизитФормы(ЦенаНаДоставкуТаб, "ЦенаНаДоставку");

Получилась вот такая процедурка.
23 Janna26
 
07.06.12
12:44
Пожалуйста объясните мне дереву. Как правильно добавить на управляемую форму таблицу которую я создала.
24 Janna26
 
07.06.12
12:54
Элемент =    Элементы.Добавить("ЦенаНАДоставку"+КолонкаИмя,Тип("ПолеВводаФормы"), Элементы.ЦенаНаДоставку) ;
   Элемент.ПутьКДанным = "ЦенаНаДоставку."+КолонкаИмя;
записала вот так. Но все же что то не то :(
25 Janna26
 
07.06.12
12:58
{Документ.МК_УстановкаЦенДляИнтервалов.Форма.ФормаДокумента.Форма(71)}: Ошибка при вызове метода контекста (Добавить)
   Элемент =    Элементы.Добавить("ЦенаНАДоставку"+КолонкаИмя,Тип("ПолеВводаФормы"), Элементы.ЦенаНаДоставку) ;
по причине:
Недопустимое значение параметров

ругается на это :(
26 Janna26
 
07.06.12
13:09
Элемент =    Элементы.Добавить("ЦенаНАДоставку"+КолонкаИмя,Тип("ПолеФормы"), Элементы.ЦенаНаДоставку) ;
   Элемент.ПутьКДанным = "ЦенаНаДоставку."+КолонкаИмя;
получилось.

А как теперь настроить так что бы при следующем открытии эти элементы не исчезали?