Имя: Пароль:
1C
 
Изменение строки в Таблице Значение
0 Sofia
 
24.05.10
12:09
У меня есть Таблица Значений - ТаблицаЗаписей.

Я пытаюсь отобрать в ней нужные строки и изменить их в таблице же.

Как это лучше сделать?
1 Jstunner
 
24.05.10
12:11
НайтиСтроки
2 Voffka2008
 
24.05.10
12:13
НайденнаяСтрока = ТаблицаЦен.Найти(ВыбТовар, "Товар");
Если НайденнаяСтрока = Неопределено Тогда
   Предупреждение("Товар не найден!");
Иначе
   НайденнаяСтрока.Цена = ТвояЦена;
КонецЕсли;
3 Sofia
 
24.05.10
12:13
Решила для поиска строки использовать Отбор:

Отбор = Новый Структура;
   Отбор.Вставить("ВидРасчета",ПланыВидовРасчета.СреднийЗаработок.ПоЗаработкуИндексируемые);
Отбор.Вставить("БазовыйПериодНачало",НачалоМесяца(ВыборкаДоп.ПериодДействия));
Отбор.Вставить("БазовыйПериодКонец",КонецМесяца(ВыборкаДоп.ПериодДействия));
4 Sofia
 
24.05.10
12:14
ух..вы быстрее меня пишите)))Это то я поняла как сделать.

ну изменю я эти строки как мне нужно, а как мне потом в таблицу эти измененнные строки поместить..вот что я не поняла((
5 Voffka2008
 
24.05.10
12:15
если делать отбором, на выходе получаем массив строк таблицы. Перебираем строки и просто изменяем значение.
6 Voffka2008
 
24.05.10
12:15
НайтиСтроки (FindRows)
Синтаксис:
НайтиСтроки(<Параметры отбора>)
Параметры:
<Параметры отбора> (обязательный)
Тип: Структура. Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры - искомое значение.
Возвращаемое значение:
Тип: Массив. Массив строк таблицы значений, соответствующих условиям поиска.
Замечание! Массив хранит ссылки на строки таблицы значений, то есть при изменении строки в таблице, значение в массиве тоже будет измененным и соответственно наоборот
7 Sofia
 
24.05.10
12:16
Получается изменяя значения в найденных строках они автоматом изменяются и в самой таблице?
8 Voffka2008
 
24.05.10
12:18
точно :)
9 Sofia
 
24.05.10
12:23
Спасибо Вам огромное)))
10 Sofia
 
24.05.10
12:45
Немножечко еще не допоняла((

Отбор = Новый Структура;
   Отбор.Вставить("ВидРасчета",ПланыВидовРасчета.СреднийЗаработок.ПоЗаработкуИндексируемые);

Отбор.Вставить("БазовыйПериодНачало",НачалоМесяца(ВыборкаДоп.ПериодДействия));
       Отбор.Вставить("БазовыйПериодКонец",КонецМесяца(ВыборкаДоп.ПериодДействия));

       НайденнаяСтрока = ТаблицаЗаписей.НайтиСтроки(Отбор)[0].Результат - СуммаРК - СуммаСН;
11 Sofia
 
24.05.10
12:46
Проведя такие махинации с "НайденнаяСтрока" ТаблицаЗаписей от этого не изменится.

А мне надо изменить в нет "Результат"
12 DrWatson
 
24.05.10
12:49
НайденныеСтроки = ТаблицаЗаписей.НайтиСтроки(Отбор);
Для каждого ТекСтрока ИЗ НайденныеСтроки Цикл
   ТекСтрока.Результат = "нет";//ну или что-то там ещё
КонецЦикла;
13 Sofia
 
24.05.10
12:49
ок, щас попробую))
14 Sofia
 
24.05.10
12:51
А если я точно знаю что найденная строка 1.Зачем я в цикл ее загонять буду?
15 DrWatson
 
24.05.10
12:55
(14) ну если точно, тогда цикл не нужен.
На самом деле бывает редко когда это известно точно, строк может не быть или их будет несколько, в результате заложенной методики или ошибок. В таком случае ещё сделайте проверку на количество строк, чтобы во время узнать, что возникла ситуация, которую Вы не ожидали.
16 Sofia
 
24.05.10
12:56
на возможное отсутствие я проверила,  а то что точно 1 строка это ТОЧНО))
17 DrWatson
 
24.05.10
13:01
(16) Ладно-ладно, кричать-то зачем.
18 Sofia
 
24.05.10
13:05
я не кричу))А вот сейчас кричу - СРАБОТАЛО))))
19 DrWatson
 
24.05.10
13:05
:)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн