Имя: Пароль:
1C
1С v8
Как очистить РС с отбором по типу документа ?
0 Ткачев
 
08.08.12
09:08
Сделал так, как то можно быстрее ?
   Запрос = Новый Запрос("
   |ВЫБРАТЬ
   |    ОтложенныеДвиженияДокументов.Документ
   |ИЗ
   |    РегистрСведений.ОтложенныеДвиженияДокументов КАК ОтложенныеДвиженияДокументов
   |ГДЕ
   |    ОтложенныеДвиженияДокументов.Документ ССЫЛКА Документ.РеализацияТоваровУслуг
   |    ИЛИ ОтложенныеДвиженияДокументов.Документ ССЫЛКА Документ.СчетФактураВыданный");
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       Ссылка = Выборка.Документ;
       Док = РегистрыСведений.ОтложенныеДвиженияДокументов.СоздатьНаборЗаписей();
       Док.Отбор.Документ.Установить(Ссылка);
       Док.Прочитать();
       Док.Очистить();
       Док.Записать();
   КонецЦикла;
1 Нуф-Нуф
 
08.08.12
09:09
как вариант получить все записи, кроме записей по твоим двум документам, сунуть в ТЗ и разом записать в регистр
2 Lex_Liven
 
08.08.12
09:10
Док.Прочитать();
       Док.Очистить();
       Док.Записать();

Я правильно понял, что останется пустая строка в регистре?

Док.Прочитать();
Док.Удалить();

не подходит?
3 DrShad
 
08.08.12
09:11
(1) не взлетит, регистр зависимый, так что обходом по документами и отбором по каждому писать пустые наборы
4 Defender aka LINN
 
08.08.12
09:13
(0) Да что ж вы вечно набор перед удалением считываете с очищением...
5 Нуф-Нуф
 
08.08.12
09:14
(3) в БП он независим, думаю в других конфигах тоже. да и с чего ему быть зависимым?
6 Defender aka LINN
 
08.08.12
09:14
+(4) Пиши тогда уже

Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();
Док.Прочитать();
Док.Очистить();

Чтобы сразу видно было, что программа сложная, дофига строк занимает.
7 Ткачев
 
08.08.12
09:15
Регистр, не периодический и не зависимый.
(2)Сп.
8 Maxus43
 
08.08.12
09:22
Док.Отбор.Документ.Установить(Ссылка);
       Док.Записать();
9 Нуф-Нуф
 
08.08.12
09:22
(7) вариант в (1) все равно будет быстрее
10 Maxus43
 
08.08.12
09:23
непериодический независимый - возможно менеджер записей быстрей отработает, надо замерить
11 Maxus43
 
08.08.12
09:24
(9) как в регистр ТЗ поместиш?
12 Ткачев
 
08.08.12
09:25
(9)Все равно надо по типу отбирать.
13 DrShad
 
08.08.12
09:27
(11) НаборЗаписей.Загрузить(МояТЗ)
14 Нуф-Нуф
 
08.08.12
09:27
(11) (12)

РегистрСведенийНаборЗаписей.<Имя регистра сведений>.Загрузить (InformationRegisterRecordSet.<Имя регистра сведений>.Load)
РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>)
Загрузить (Load)
Синтаксис:

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

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

Тип: ТаблицаЗначений.
Таблица значений, по которой производится заполнение набора записей.
Описание:

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

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

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

Рег = РегистрыСведений.КурсыВалют;
НаборКурсов = Рег.СоздатьНаборЗаписей();
Таб = Новый ТаблицаЗначений;
// формирование таблицы значений
// ...
НаборКурсов.Загрузить(Таб);
15 Нуф-Нуф
 
08.08.12
09:28
(12) выполнишь свой запрос только с условием НЕ, получишь ТЗ с документами, кроме реализации и СФ и эту ТЗ сунешь в регистр. все остальные записи удаляться
16 Maxus43
 
08.08.12
09:29
(15) ну вот это и спрашивал, другую таблицу грузить надо
17 Нуф-Нуф
 
08.08.12
09:34
(16) в (1) в принципе тоже самое и написано
18 Ткачев
 
08.08.12
09:35
(2)Нормально все оказалось, пустых записей не обнаружено.
19 Живой Ископаемый
 
08.08.12
09:36
2(3) был бы зависимый, реквизит назывался не документ а регистратор.
20 hhhh
 
08.08.12
09:58
(18) надо порциями записывать. Транзакциями по несколько документов. Тогда быстрее будет.
21 Sammo
 
08.08.12
10:23
+ (если использовать эту же схему) - сколько записей в регистре по каждому документу
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс