Имя: Пароль:
1C
1С v8
Данные из большой таблицы выбрать и записать в одну строчку
0 kasazanov
 
01.12.12
18:12
Подскажите начинающему программисту как выдернуть из таблицы например 3 реквизита и записать их в обычный реквизит документа(строка) через запятую?
1 kasazanov
 
01.12.12
18:16
Для каждого стр1 Из АвтомобильМаршрут Цикл
   ТЗ = стр1.ПунктПогрузки.Наименование + стр1.ДопПункт.Наименование + стр1.ПунктВыгрузки.Наименование;    
   КонецЦикла;

Выбирается только одна строка а нужно все строки которые есть в таблице через запятую.
2 Wobland
 
01.12.12
18:17
тз=тз+
3 kasazanov
 
01.12.12
20:15
(2) Помогло, выводит то что нужно, теперь возникла следующая проблема:

У меня есть реквизит ТЧ который при изменении записывает в обычный реквизит (строка) реквизит1 + реквизит2 + реквизит3 + ... и сколько их в цикле, если я меняю реквизит ТЧ 1 раз то все как надо, а если меняю этот же реквизит например строчкой ниже то в обычный реквизит записывается эта же строка еще раз (дублирует).

Извините заранее если фигово свои мысли выразил .. ))

Процедура АвтомобильМаршрутПунктПогрузкиПриИзменении(Элемент)
   
   Для каждого стр1 Из АвтомобильМаршрут Цикл
   ЭтотОбъект.ИнформацияМаршрут = ЭтотОбъект.ИнформацияМаршрут + стр1.ПунктПогрузки.Наименование + стр1.ДопПункт.Наименование + стр1.ПунктВыгрузки.Наименование;    
   
   КонецЦикла;
КонецПроцедуры
4 kasazanov
 
01.12.12
20:22
Своим кулибинским способом вышел из положения так :)
Процедура АвтомобильМаршрутПунктПогрузкиПриИзменении(Элемент)
   ЭтотОбъект.ИнформацияМаршрут = " ";
   Для каждого стр1 Из АвтомобильМаршрут Цикл
   ЭтотОбъект.ИнформацияМаршрут = ЭтотОбъект.ИнформацияМаршрут + стр1.ПунктПогрузки.Наименование + стр1.ДопПункт.Наименование + стр1.ПунктВыгрузки.Наименование;    
   
   КонецЦикла;
КонецПроцедуры
5 Wobland
 
01.12.12
20:52
1) а чего бы и пустой строкой не инициализировать?
2) что, даже пробелами свои поля не поделил?
6 kasazanov
 
01.12.12
20:53
Да красоту потом наведу когда все доделаю )
7 Wobland
 
01.12.12
20:57
подумай, что Символы.ПС можно после каждой итерации добавлять
8 kasazanov
 
01.12.12
21:12
Начал сейчас писать печатную форму, возникла примерно та же проблема что и в самом начале, в печатную форму нужно в Шаблон вывести параметр из ТЧ вот что не получается:
<текст[параметр]текст>
в [параметр] мне нужно вывести из таблицы нужные мне реквизиты
Для Каждого стр1 Из СсылкаНаОбъект.Сделка.АвтомобильМаршрут Цикл
       ПеремМаршрут = ПеремМаршрут + стр1.ПунктПогрузки.Наименование + стр1.ДопПункт.Наименование + стр1.ПунктВыгрузки.Наименование;
       ОбластьМакета.Параметры.Маршрут = ПеремМаршрут;
   КонецЦикла;

Пишет преобразование значения к типу число не может быть выполнена.
9 Wobland
 
01.12.12
21:14
(8) мои соболезнования
10 Wobland
 
01.12.12
21:14
Буратине дали три яблока. Два он съел. Сколько яблок осталось у
Буратины? Думаете одно? Ничего подобного. Никто же не знает сколько у
него уже было яблок до этого. Мораль - обнуляйте переменные!!
11 kasazanov
 
01.12.12
21:28
Мораль я понял.
ПеремМаршрут = " ";
   Для Каждого стр1 Из СсылкаНаОбъект.Сделка.АвтомобильМаршрут Цикл
       
       ПеремМаршрут = ПеремМаршрут + стр1.ПунктПогрузки.Наименование + стр1.ДопПункт.Наименование + стр1.ПунктВыгрузки.Наименование;
       ОбластьМакета.Параметры.Маршрут = ПеремМаршрут;
   КонецЦикла;
заработало
12 Wobland
 
01.12.12
21:30
узнай наконец, что такое ""
13 Wobland
 
01.12.12
21:30
ОбластьМакета.Параметры.Маршрут = ПеремМаршрут;
и вот эту хрень вынь из цикла
14 kasazanov
 
01.12.12
21:30
Ну как я понял в "" пишется текст ) у меня очень бедный словарь синтаксиса ) где можно почитать?
15 kasazanov
 
01.12.12
21:32
ПеремМаршрут = " ";
   Для Каждого стр1 Из СсылкаНаОбъект.Сделка.АвтомобильМаршрут Цикл
       
       ПеремМаршрут = ПеремМаршрут + стр1.ПунктПогрузки.Наименование + стр1.ДопПункт.Наименование + стр1.ПунктВыгрузки.Наименование;
       
   КонецЦикла;
   ОбластьМакета.Параметры.Маршрут = ПеремМаршрут;
   ТабДокумент.Вывести(ОбластьМакета);

Сделал так, ничего не поменялось в ПФ.
16 Wobland
 
01.12.12
21:33
(14) это пустая строка. не путай синтаксис с лексиконом
17 kasazanov
 
01.12.12
21:33
(13) а почему это не должно быть в цикле?
18 Wobland
 
01.12.12
21:33
(17) а что ему там делать?
19 Wobland
 
01.12.12
21:34
(15) всё так же к числу привести не может?
20 kasazanov
 
01.12.12
21:34
Да не знаю, вроде и так и так работает )
21 kasazanov
 
01.12.12
21:34
не, все норм сейчас.
22 Wobland
 
01.12.12
21:35
(20) параметр в области тебе нужно присвоить ровно один раз. (21) на здоровье
23 kasazanov
 
01.12.12
21:35
работает и в варианте (11) и в варианте (15)

конечный вариант:
ПеремМаршрут = "";
   Для Каждого стр1 Из СсылкаНаОбъект.Сделка.АвтомобильМаршрут Цикл
       
       ПеремМаршрут = ПеремМаршрут + стр1.ПунктПогрузки.Наименование + стр1.ДопПункт.Наименование + стр1.ПунктВыгрузки.Наименование;
       
   КонецЦикла;
   ОбластьМакета.Параметры.Маршрут = ПеремМаршрут;
   ТабДокумент.Вывести(ОбластьМакета);
24 kasazanov
 
01.12.12
21:36
Спасибо за консультации ) ато сложно очень это все ....