|
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
|
Что значит документ сторно?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |