Имя: Пароль:
1C
1C 7.7
v7: Соединение двух табличных частей в одну
🠗 (Rie 16.07.2012 08:39)
,
0 Zergaa
 
15.07.12
17:16
Привет всем, Как во внешнем отчете в одну таблицу соединить две табличные части из разных документов, при чем данные должны быть соединены в одной строчке. Спасибо!
1 Джордж1
 
15.07.12
17:23
Ни черта не понятно что надо сделать
2 Rie
 
15.07.12
17:24
Ручками. Создать таблицу значений. Взять одну табличную часть, взять другую табличную часть. Пройтись циклами, заполняя таблицу значений данными из обеих табличных частей.
3 Zergaa
 
15.07.12
17:26
Есть таблица во внешнем отчете у нее такие поля
   ТабПлан.НоваяКолонка("ВидПряжи",,,,,40);
   ТабПлан.НоваяКолонка("Текс",,,,,6);
   ТабПлан.НоваяКолонка("Цвет",,,,,20);
   ТабПлан.НоваяКолонка("ПланНаМесяц",,,,,10);
   ТабПлан.НоваяКолонка("ПланМесяц",,,,,10);
   ТабПлан.НоваяКолонка("ФактМесяц",,,,,10);
   ТабПлан.НоваяКолонка("Откланение",,,,,10);
   ТабПлан.НоваяКолонка("ТемпПост",,,,,10);
   ТабПлан.НоваяКолонка("ПланСутки",,,,,10);
   ТабПлан.НоваяКолонка("ФактСутки",,,,,10);
   ТабПлан.НоваяКолонка("Откл",,,,,10);  
В поля
   ТабПлан.ВидПряжи = Заявка.ВидСырья;
   ТабПлан.Текс     = Заявка.Текс;
   ТабПлан.Цвет     = Заявка.Цвет;
   ТабПлан.ПланНаМесяц    = Заявка.Лимит;
я записываю данные из документа заявка,а в поле
   ТабПлан.ФактМесяц = Приход.ВесКондиц;
Из другого документа, и мне надо чтобы это было в одной строке
4 Zergaa
 
15.07.12
17:27
А оно из одного документа (Заявка) заполняет, а из второго Приход не хочет, хотя все с циклами и условиями
5 Mikeware
 
15.07.12
17:30
(4) Значит, соотношение радиусов стремится к нулю...
6 Rie
 
15.07.12
17:32
(4) А Вы ему печеньку предложите, может, захочет?
Что именно у Вас не получается?
7 Mikeware
 
15.07.12
17:36
(6) это- всего за одну печеньку??? тут надо как минимум три!
8 Zergaa
 
15.07.12
17:37
не получается данные в одну строку соединить
9 Rie
 
15.07.12
17:39
(8) Как именно Вы пытаетесь их соединить? Где и какая ошибка при этом возникает?
10 Zergaa
 
15.07.12
17:40
Люди не смешно, я голову сломала уже... помогите лучше, потом поиздеваетесь!
11 izekia
 
15.07.12
17:40
код можно?
12 izekia
 
15.07.12
17:40
пока код не покажете издеваться ен перестанут
13 Zergaa
 
15.07.12
17:40
ошибки нет
   ТабПлан.Очистить();
   ТабПлан.НоваяКолонка("ВидПряжи",,,,,40);
   ТабПлан.НоваяКолонка("Текс",,,,,6);
   ТабПлан.НоваяКолонка("Цвет",,,,,20);
   ТабПлан.НоваяКолонка("ПланНаМесяц",,,,,10);
   ТабПлан.НоваяКолонка("ПланМесяц",,,,,10);
   ТабПлан.НоваяКолонка("ФактМесяц",,,,,10);
   ТабПлан.НоваяКолонка("Откланение",,,,,10);
   ТабПлан.НоваяКолонка("ТемпПост",,,,,10);
   ТабПлан.НоваяКолонка("ПланСутки",,,,,10);
   ТабПлан.НоваяКолонка("ФактСутки",,,,,10);
   ТабПлан.НоваяКолонка("Откл",,,,,10);  
   
   Заявка = СоздатьОбъект("Документ.ЗаявкаНаПряжуПоЦветам");
   Заявка.ВыбратьДокументы("НачДата,КонДата");
   Пока Заявка.ПолучитьДокумент() = 1 Цикл  
       Заявка.ВыбратьСтроки();
       Пока Заявка.ПолучитьСтроку() = 1 Цикл
           ТабПлан.НоваяСтрока();
           ТабПлан.ВидПряжи = Заявка.ВидСырья;
           ТабПлан.Текс     = Заявка.Текс;
           ТабПлан.Цвет     = Заявка.Цвет;
           ТабПлан.ПланНаМесяц    = Заявка.Лимит;
       КонецЦикла;
   КонецЦикла;
   
   Приход = СоздатьОбъект("Документ.ПриходСкладПряжи");
   Приход.ВыбратьДокументы("НачДата,КонДата");
   Пока Заявка.ПолучитьДокумент() = 1 Цикл
       Заявка.ВыбратьСтроки();
       Пока Заявка.ПолучитьСтроку() = 1 Цикл  
           Если ТабПлан.ВидПряжи = Приход.Материал.ВидыСырья Тогда
               ТабПлан.НоваяСтрока();
               ТабПлан.ФактМесяц = Приход.ВесКондиц;  
           Иначе
                Сообщить ("Совподений нет")
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;
14 izekia
 
15.07.12
17:42
а где вы их соединяете? вы просто новые строки добавляете
15 izekia
 
15.07.12
17:42
а да и во втором цикле надо приход а не заявки перебирать
16 Mikeware
 
15.07.12
17:43
(14) И почему вдруг они должны "соединяться"?
17 izekia
 
15.07.12
17:45
и вот эта конструкция должна работать не так а через поиск строки
Если ТабПлан.ВидПряжи = Приход.Материал.ВидыСырья Тогда
               ТабПлан.НоваяСтрока();
               ТабПлан.ФактМесяц = Приход.ВесКондиц;  
           Иначе
                Сообщить ("Совподений нет")
           КонецЕсли;

что-то вроде
номСтр = 0;
Если ТабПлан.НайтиЗначение(Приход.Материал.ВидыСырья, номСтр, "ВидПряжи") = 1 Тогда
               ТабПлан.УстановитьЗначение(номСтр, "ФактМесяц", Приход.ВесКондиц);  
           Иначе
                Сообщить ("СовпАдений нет")
           КонецЕсли;
18 mehfk
 
15.07.12
17:45
(0) 1c++ не предлагать?
19 Zergaa
 
15.07.12
17:46
спасибо)
сейчас попробую
20 izekia
 
15.07.12
17:46
(18) нене тут так бы все заработало
21 izekia
 
15.07.12
17:47
(19) там в найти и установить параметры могут не на месте быть, просто семерки нет под рукой
22 izekia
 
15.07.12
17:48
но вроде на месте
23 Rie
 
15.07.12
17:48
(13) Для начала - правильно задавайте параметры.
ВыбратьДокументы("НачДата,КонДата") - бред.
Затем -
Приход.ВыбратьДокументы("НачДата,КонДата");
Пока Заявка.ПолучитьДокумент() = 1 Цикл

Это как понимать?
24 izekia
 
15.07.12
17:49
(23) копи-пасте - зло
25 Mikeware
 
15.07.12
17:50
Видимо, все-таки (5)...
26 izekia
 
15.07.12
17:58
(23) "ВыбратьДокументы("НачДата,КонДата") - бред."
почему?
27 Rie
 
15.07.12
18:00
(26) Параметры у ВыбратьДокументы() - две даты (или пустые значения). А тут ему строку суют.
28 Он
 
15.07.12
18:02
(26) Потому же, что и ВыбратьДокументы("Дюймовочка,Винни-Пух")
29 izekia
 
15.07.12
18:04
(27) о, прикольно
30 izekia
 
15.07.12
18:04
а дюймовочка каким образом к винни пуху относится?
31 Mikeware
 
15.07.12
18:09
(30) Ну, они вообще-то разного пола.... :-) так что может и...
32 izekia
 
15.07.12
18:12
а ну да, винни - это дата конца
33 Он
 
15.07.12
18:20
(30) Тем же, что и "НачДата,КонДата" к объекту "Дата".
34 Zergaa
 
15.07.12
18:42
Вообще-то НачДата и КонДата имеют тип Дата!!!
35 izekia
 
15.07.12
18:44
в выборке они в кавычках написаны - это неправильно, выбираются скорее всего все документы
36 Rie
 
15.07.12
18:50
(34) Но то, что Вы НЕ перебираете приходы - поэтому они и не попадали - Вы поправили?
37 Zergaa
 
15.07.12
18:52
Да, спасибо за помощь!
38 Он
 
15.07.12
19:19
(34) Чему равно "987097 + 654907"?
39 1Сергей
 
16.07.12
08:27
что такое Приход.Материал.ВидыСырья?
40 Mikeware
 
16.07.12
08:29
(39) Забей ошибка сам знаешь где...
41 izekia
 
16.07.12
08:30
(39) а ты как сам думаешь?
42 1Сергей
 
16.07.12
08:35
(40) исправь эту ошибку, почувствуй себя б-гом :)
43 Mikeware
 
16.07.12
08:37
(42) Увы. Данная ошибка неисправима.
44 Rie
 
16.07.12
08:39
(43) Не столь печально. Успехи генной инженерии в последние время дают надежду.
45 vde69
 
16.07.12
08:40
(43) все ошибки иправляет смерть....
46 Mikeware
 
16.07.12
08:41
(44) читаю сейчас книжку "Эволюция. рождение сложности". (посоветовал то-ли ado, то-ли opty). ВнушаитЪ...
зы.сформировавшиеся радиусы обычно уже не изменяются...
48 Злопчинский
 
16.07.12
11:53
в поиске вбей COMMONITER
49 Злопчинский
 
16.07.12
12:18
(48) на ИСе
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.