Имя: Пароль:
1C
1С v8
Массив и табличная часть
0 Мисти
 
21.10.13
12:51
СтрокаДляРаспределения =    ТабЧасть.НайтиСтроки(Новый Структура("Назначение, Номенклатура",СправНазначение,ТаблицаСНоменклатуройПоЗаказу[кк].Номенклатура));
                Если СтрокаДляРаспределения.Количество()= 0 Тогда // или добавить строку, если ее не было
                    СтрокаДляРаспределения = ТабЧасть.Добавить();
                    ЗаполнитьЗначенияСвойств (СтрокаДляРаспределения,Копия[0]);
                    СтрокаДляРаспределения.Количество = 0;
                КонецЕсли;

Написала я такой кусок.
Неправильно!
Потому что "НайтиСтроки" дает массив, а .Добавить - строку таблицы.
Как их привести к единому варианту?
1 1dvd
 
21.10.13
12:53
//СтрокаДляРаспределения = ТабЧасть.Добавить();
                    //ЗаполнитьЗначенияСвойств (СтрокаДляРаспределения,Копия[0]);
                    //СтрокаДляРаспределения.Количество = 0;

                    СтрокаДляРаспределения = Новый Массив;
                    НоваяСтрокаДляРаспределения = СтрокаДляРаспределения.Добавить();
                    ЗаполнитьЗначенияСвойств (НоваяСтрокаДляРаспределения,Копия[0]);
                    НоваяСтрокаДляРаспределения.Количество = 0;




ЗЫ и научитесь правильно называть переменные
2 Галахад
 
гуру
21.10.13
12:54
Ну, тогда использовать "Найти" или СтрокаДляРаспределения[0]
3 Мисти
 
21.10.13
13:18
(1) Спасибо!
А чем это они неправильное? Мне понятно!
4 1dvd
 
21.10.13
13:43
(3)

//СтрокаДляРаспределения =    ТабЧасть.НайтиСтроки(Новый Структура("Назначение, Номенклатура",СправНазначение,ТаблицаСНоменклатуройПоЗаказу[кк].Номенклатура));
СтрокиДляРаспределения =    ТабЧасть.НайтиСтроки(Новый Структура("Назначение, Номенклатура",СправНазначение,ТаблицаСНоменклатуройПоЗаказу[кк].Номенклатура));

ну, и далее по тексту
5 Мисти
 
21.10.13
14:31
В смысле - строки, а не строка? Ну, по сути - она там одна должна быть, я на это рассчитываю и даже местами проверяю.

                СтрокаДляРаспределения =    ТабЧасть.НайтиСтроки(Новый Структура("Назначение, Номенклатура",НетНазначения,ТаблицаСНоменклатуройПоЗаказу[кк].Номенклатура));

Не то, короче, получается!
Может, надо было сначала начинать?
Есть таб. часть документа, мне надо в ней некоторые строки разбить на несколько, а некоторые - просто поправить.
У меня оба раза СтрокаДляРаспределения была привязана к таб. части (ну, т.е.изменяя строкудляраспределения я меняла таб. часть), а у Вас - нет!
6 hhhh
 
21.10.13
14:42
(5) это пресловутая женская логика. Любой мужчина знает, что ТабЧасть.НайтиСтроки возвращает массив строк, женщина тоже в глубине души знает, но почему-то надеется на лучшее. Что ей строку вернет.
7 Мисти
 
21.10.13
14:43
(6) Именно! Была ж таблица, нафига ее портить!
Уже сталкивалась с этим, расстраивалась....
Теперь-то как быть?
8 Мисти
 
21.10.13
14:44
Ну я ж права по крайней мере, что если эти строки поправить - ТабЧасть тоже изменится?
9 hhhh
 
21.10.13
14:45
(7) вот так пробуйте

СтрокиДляРаспределения =    ТабЧасть.НайтиСтроки(Новый Структура("Назначение, Номенклатура",СправНазначение,ТаблицаСНоменклатуройПоЗаказу[кк].Номенклатура));
                Если СтрокиДляРаспределения.Количество()= 0 Тогда // или добавить строку, если ее не было

                    СтрокаДляРаспределения = ТабЧасть.Добавить();
                    ЗаполнитьЗначенияСвойств (СтрокаДляРаспределения,Копия[0]);
                    СтрокаДляРаспределения.Количество = 0;
Иначе
     СтрокаДляРаспределения = СтрокиДляРаспределения[0];
                КонецЕсли;
10 Мисти
 
21.10.13
14:51
Ну так они будут иметь разный тип!
А мне нужно, чтоб на выходе был один, да еще привязанный к таб части.
11 Rie
 
21.10.13
14:54
(10) СтрокаДляРаспределения из (9) будет иметь нужный тип. Один, а не разный.
12 Мисти
 
21.10.13
15:01
Точно!