Имя: Пароль:
1C
1C 7.7
v7: Объединение двух таблиц значений
,
0 adm1nb3k
 
15.07.13
01:42
Здравствуйте. Уважаемые специалисты, нужна ваша помощь.
Есть 2 таблицы значении.
ТЗ1

   Наименование Цена Вес Поставщик
   Пленка 0,6 4980 Китай
   Контейнер 400 4600 США



ТЗ2

   Наименование Сумма
   Экспертиза 240 270
   Сертификация 277 804
   ЖД 400 000



Как создать еще одну таблицу значении, где объединяются 2 ранее ТЗ?!

Наименование Цена Вес Поставщик Экспертиза Сертификация ЖД
Пленка 0,6 4980 Китай 120 135, 138 902, 200 000
Контейнер 400, 4600, США, 120 135, 138 902, 200 000

Важно, количество строк на 2 ТЗ может быть без ограничений.
Заранее спасибо.
1 Чайник Рассела
 
15.07.13
01:49
К таблице1 построчно добавить таблицу2, свернуть по нужным полям. Профит.
2 viktor_vv
 
15.07.13
01:53
Ему надо сначала содать колонки в ТЗ1 по количеству строк в ТЗ2, а потом заполнить их, распределив суммы из ТЗ2 по строкам ТЗ1, пропорционально количеству строк в ТЗ1 :).
3 adm1nb3k
 
15.07.13
01:53
(1) Будьте добры, покажите примером.
4 adm1nb3k
 
15.07.13
01:54
(2) Спасибо. Вы меня правильно поняли.
5 viktor_vv
 
15.07.13
01:59
ТЗ2.ВыбратьСтроки();
Пока ТЗ2.ПолучитьСтроку() = 1 Цикл
ТЗ1.НоваяКолонка(,"Число",Размерность,ДробнаяЧасть);
Если ТЗ1.КоличествоСтрок() <> 0 Тогда
ЗначениеДляЗаполнения = ТЗ2.Значение / ТЗ1.КоличествоСтрок();
ТЗ1.Заполнить(ЗначениеДляЗаполнения,""+НачальноеКоличествоКолонокТЗ1+ТЗ2.НомерСтроки);
КонецЕсли ;
КонецЦикла ;

Как-то так, за точный синтаксис не ручаюсь. Из предположения, что в ТЗ2 в значении числа.
6 viktor_vv
 
15.07.13
02:02
Количество колонок ТЗ1 можно и програмно

НачальноеКоличествоКолонокТЗ1 = ТЗ1.КоличествоКолонок();
7 viktor_vv
 
15.07.13
02:04
*Исправить
ТЗ1.Заполнить(ЗначениеДляЗаполнения,,,""+НачальноеКоличествоКолонокТЗ1+ТЗ2.НомерСтроки);
8 viktor_vv
 
15.07.13
02:08
Ну и тогда уж так

ТипКолонкиЗначение = "";
Размерность = 0 ;
ДробнаяЧасть = 0 ;

ТЗ2.ПараметрыКолонки("ИдентификаторКолокниЗначения",ТипКолонкиЗначение,Размерность,ДробнаяЧасть);

Пока ТЗ2.ПолучитьСтроку() = 1 Цикл

ТЗ1.НоваяКолонка(,"Число",Размерность,ДробнаяЧасть);
9 viktor_vv
 
15.07.13
02:08
* Тьфу ты

ТЗ2.ПолучитьПараметрыКолонки("ИдентификаторКолокниЗначения",ТипКолонкиЗначение,Размерность,ДробнаяЧасть);
10 viktor_vv
 
15.07.13
02:11
Я так понимаю "ИдентификаторКолонкиЗначения" - это "Сумма".
11 opty
 
15.07.13
02:39
(0) В семерке есть метод Загрузить() , работает для ТЗ с одинаковой структурой . Приводим две ТЗ к одинаковой структуре , и загружаем в третью
12 Ёпрст
 
15.07.13
02:50
(11) он не поможет, это раз, самый тормозной  это два.
Нужно только 2 метода - КоличествоСтрок и Заполнить
13 adm1nb3k
 
15.07.13
02:54
(10). viktor_vv. Сделал все как Вы сказали. Но выдается вот такая ошибка.
ТЗ1.Заполнить(ЗначениеДляЗаполнения,,,""+НачальноеКоличествоКолонокТЗ1+ТЗ2.НомерСтроки);
{Отчет.ОтчетпоГТД.Форма.Модуль(134)}: Номер за пределами значения!
14 adm1nb3k
 
15.07.13
03:07
(13) viktor_vv. Большое спасибо за труд и за трату времени. Теперь полностью понял суть работы с ТЗ. Исправил ошибка и все заработало.


ТЗ1.Заполнить(ЗначениеДляЗаполнения,,,НачальноеКоличествоКолонокТЗ1+ТЗ2.НомерСтроки);
Убрал ""+
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.