![]() |
![]() |
|
Регистр сведение. Как получить запись по реквизиту? | ☑ | ||
---|---|---|---|---|
0
VanoZZZ
21.08.07
✎
13:19
|
Как?
|
|||
1
ABCD
21.08.07
✎
13:25
|
Запись регистра не имеет объектной сущности, следовательно ее нельзя "ПОЛУЧИТЬ".
скажи конкретно что тебе надо? |
|||
2
VanoZZZ
21.08.07
✎
13:26
|
Мне нужно получить запись регистра сведений, по определенному реквизиту, с целью ее удаления
|
|||
3
ABCD
21.08.07
✎
13:29
|
Для этого
1)создай набор записей. 2) установи отбор по значениям измерений, равным значениям измерений в удаляемой записи. 3) прочитай этот набор записей. 4) очисти его 5) и запиши уже пустой набор записей |
|||
4
Регистратор
21.08.07
✎
13:32
|
запросом получить, и не очевидно что будет одна запись, надо расчитывать что их может быть любое количество
|
|||
5
VanoZZZ
21.08.07
✎
13:36
|
(3) не очень конечно быстрый способ, но я что то другого пока не нашел
(4) запросом можно получить данные из регистра, а не сами записи, следовательно не удалить |
|||
6
уродина
21.08.07
✎
13:39
|
(5) создать набор, потом - отбор, потом просто записать пустой. записи с данным отбором - удалятся.
|
|||
7
VanoZZZ
21.08.07
✎
13:45
|
(6) В отборе набора записей нельзя использовать реквизиты регистра, только измерения
НаборРегистраСведений.отбор[измерение].Установить(ЗначениеОтбора) Мне не понятно, почему нет методов для поиска по реквизиту регистра |
|||
8
ABCD
21.08.07
✎
13:57
|
>>Мне не понятно, почему нет методов для поиска по реквизиту регистра
Да потому что уникальность записей определется набором измерений + регистратор(если таковой определен) |
|||
9
уродина
21.08.07
✎
13:59
|
(7) по реквизиту - только запросом... реквизит - это как бы просто для справки информация...
|
|||
10
уродина
21.08.07
✎
14:00
|
вы можете тогда выбрать запросом по реквизиту, определить регистраторы и уже отбор сделать по регистратору... а потом перебрать записи и удалить те, которые надо удалить. долгая история.
|
|||
11
den_valley
04.09.07
✎
11:31
|
Возникла ситуация, выкрутился следующим образом:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | * |ИЗ | РегистрСведений.СкидкиКонтрагентов КАК СкидкиКонтрагентов |ГДЕ | СкидкиКонтрагентов.Приказ = &Приказ"; Запрос.УстановитьПараметр("Приказ", ЭтотОбъект.Ссылка); Запрос.Выполнить().Выгрузить().ВыбратьСтроку(); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Запись = РегистрыСведений.СкидкиКонтрагентов.СоздатьМенеджерЗаписи(); Пока Выборка.Следующий() Цикл Запись.Период = Выборка.Период; Запись.Контрагент = Выборка.Контрагент; Запись.Прочитать(); Если Запись.Выбран() Тогда Сообщить(Строка(Запись.Период) + " " + Строка(Запись.Контрагент) + " " + Строка(Запись.Приказ)+ " удалена"); Запись.Удалить(); КонецЕсли; КонецЦикла; Регистр периодический, одно измерение контрагент, приказ соответственно - реквизит |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |