Имя: Пароль:
1C
1С v8
Как удалить строки в Регистре сведений
0 yabes
 
21.05.12
12:49
Здравствуйте! Я получил запросом все данные из регистра сведений, которые нужно удалить! Результат запроса представляет собой строки из регистра сведений со всеми столбцами из регистра сведений. Как теперь загнать таблицу значений в Набор записей и удалить эти строки в регистре?

Так?
Результат = Запрос.Выполнить().Выгрузить();
НЗ = РегистрыСведений.ГрафикиРаботыПоВидамВремени.СоздатьНаборЗаписей();
НЗ.Загрузить(Результат);

А дальше что?
1 zak555
 
21.05.12
12:51
удалить надо по какому критерию ?
2 alextom81
 
21.05.12
12:53
Пока Регистры.Следующий() Цикл
        К = Регистры.ПолучитьМенеджерЗаписи();
        К.Удалить();
      КонецЦикла;
3 yabes
 
21.05.12
12:53
(1) удалить надо все строки, которые попали в запрос!
4 _Demos_
 
21.05.12
12:54
НЗ = РегистрыСведений.ГрафикиРаботыПоВидамВремени.СоздатьНаборЗаписей();
НЗ.Загрузить(Результат);
НЗ.Записать();
5 _Demos_
 
21.05.12
12:54
всё будет ОК :)
6 Ненавижу 1С
 
гуру
21.05.12
12:55
в строках запроса должны быть полные ключи, вот по ним отбираем и удаляем
7 yabes
 
21.05.12
12:55
(6) если будут полные ключи, то код (5) сработает?
8 Fish
 
21.05.12
12:56
(3) В (0) будет обратный результат. Удалятся все строки, которые не попали в запрос.
9 yabes
 
21.05.12
13:00
(8) Вот, кстати, правда! Так как?
10 yabes
 
21.05.12
13:00
(8) Хотя нет, все должно быть нормально!
11 Ненавижу 1С
 
гуру
21.05.12
13:02
загружать не надо, надо сделать отборы
12 Fish
 
21.05.12
13:02
(10) Купи себе СП.
РегистрНакопленияНаборЗаписей.<Имя регистра накопления> (AccumulationRegisterRecordSet.<Имя регистра накопления>)
Загрузить (Load)
Синтаксис:

Загрузить(<ТаблицаЗначений>)
Параметры:

<ТаблицаЗначений> (обязательный)

Тип: ТаблицаЗначений.
Таблица значений, содержащая данные для заполнения набора записей.
Описание:

Загружает набор записей значениями из переданной таблицы значений. При этом все прежние записи набора удаляются. Заполняются значения доступных для записи свойств записей регистра накопления, имена которых совпали c именами колонок таблицы значений.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Пример:

Рег = РегистрыНакопления.Продажи;
НаборЗаписей = Рег.СоздатьНаборЗаписей();
Таб = Новый ТаблицаЗначений;
// формирование таблицы значений
// ...
НаборЗаписей.Загрузить(Таб);
13 yabes
 
21.05.12
15:36
ну и как в итоге лучше сделать?
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.