Имя: Пароль:
1C
1С v8
1с 8.1 Удалить записи регистра, выбранные запросом
0 zvivla
 
02.04.12
13:03
Здравствуйте! Задача такая- удалить все движения заданного документа по определенной фамилии. Вот код :
д=приказ.ПолучитьОбъект();
   п=д.Движения;
   Для каждого д1 из п Цикл
       
       стр=СтрЗаменить(строка(д1),"НаборЗаписей","");
       Если стр<>"РегистрСведений.ДополнительныеРеквизитыПриказов" Тогда
           Если стр="РегистрСведений.СведенияОПриказахСтудентов" ТОгда
               СтудентПоле="ФизЛицо";
           ИначеЕсли стр="РегистрСведений.РаботникиОрганизаций" Тогда
               СтудентПоле = "Физлицо";              
           Иначе СтудентПоле = "Студент";
           КонецЕсли;
           Регистратор=?(стр="РегистрСведений.РаботникиОрганизаций","Приказ","Регистратор");
   
           Сообщить(строка(стр)+строка(СтудентПоле));



           Запрос=Новый Запрос;
           Запрос.Текст="ВЫБРАТЬ *
           |ИЗ
           |"                    
           + стр+ "    
           |ГДЕ
           |    "+ стр+ "." +СтудентПоле+" = &Студент1            
           |    И "+ стр+ "." +Регистратор+" = &Приказ"   ;
           
           Запрос.УстановитьПараметр("Студент1", студент);
           Запрос.УстановитьПараметр("Приказ", Приказ);
           Результат = Запрос.Выполнить().Выбрать();

Собственно записи с регистрами выбрала, а что дальше с ними делать? Как удалить?

Может у меня вобще изначально подход не правильный. Подскажите плизз
1 Господин ПЖ
 
02.04.12
13:04
курить работу с наборами записей...
2 MikleV
 
02.04.12
13:05
ну и ещё учесть, что при чтении весь набор помещается в память
3 Fragster
 
гуру
02.04.12
13:06
не дай бог потом это допиливать
4 Trier
 
02.04.12
13:10
Набор = РегистрыСведений.РаботникиОрганизаций.СоздатьНаборЗаписей();
Набор.Отбор.Приказ.Установить(...);
Набор.Отбор.Сотрудник.Установить(...);
Набор.Прочитать();

Отборы скорректировать по желанию)
5 zvivla
 
02.04.12
13:10
может есть какой то другой выход?

как провернуть работу с наборами записей?
6 zvivla
 
02.04.12
13:12
Дело в том что документ по которому надо удалить движения может засветиться в очень большом количестве регистров, поэтому очень неудобно их описывать вручную
Набор = РегистрыСведений.РаботникиОрганизаций.СоздатьНаборЗаписей();
Набор.Отбор.Приказ.Установить(...);
Набор.Отбор.Сотрудник.Установить(...);
Набор.Прочитать();
7 Ненавижу 1С
 
гуру
02.04.12
13:13
какая связь с количеством регистров? это же другие регистры
8 Fragster
 
гуру
02.04.12
13:14
д=приказ.ПолучитьОбъект();
п=д.Движения;
Для каждого д1 из п Цикл
Д1.Очистить();
Д1.Записать();
КонецЦикла;
9 Fragster
 
гуру
02.04.12
13:15
странно, что "приказ", а не "пр"...
10 Shurjk
 
02.04.12
13:20
(6) А может просто перезаписать эти документы с режимом отменаПроведения
11 zvivla
 
02.04.12
13:25
А может просто перезаписать эти документы с режимом отменаПроведения


Было бы конечно вобще замечательно. но дело в том. что в одном приказе может быть куча студентов. и по всем по ним идут движения и записи в регистре. Мне надо удалить движения только по конкретному студенту
12 lxs
 
02.04.12
13:25
(6) Документ не "засветится" в большем количестве регистров, чем ему назначено. Проблема надумана, решение не годится. Любое перепроведение восстановит начальную картину (первое же, например, обновление, которое приведет к реструктуризации документа и его движений, если, естественно, речь о типовой).
13 lxs
 
02.04.12
13:25
(11) удали его в документе и перепроведи, не извращайся.
14 Shurjk
 
02.04.12
13:29
(11) Удаляй студента из документа, затем его перепроводи, а то несоответсвие записей в регистрах данным документа - это мягко говоря бардак.
15 lxs
 
02.04.12
13:30
а лучше реализовать документ-сторно.
17 Fragster
 
гуру
02.04.12
13:32
и никто еще не спросил фотку
18 Trier
 
02.04.12
13:39
(6) Набор и менеджер записей можно создавать для конкретногог регистра.

Если их много, то (14) - самое разумное
19 zvivla
 
02.04.12
13:45
Спасибо за советы) Пожалуй придется удалять запись в доке и перепроводить
20 DmiVo
 
02.04.12
14:00
Лучше (15)
21 zvivla
 
02.04.12
14:11
Что значит документ сторно?