Имя: Пароль:
1C
1С v8
удалить запись из регистра сведений
0 prishliemail
 
27.03.14
16:19
Добрый день!

У меня есть периодический регистр сведений, подчиненный регистратуору.
Необходимо удалить одну запись из регистра. Видимо что-то делаю не так, потому что в регистре записи не удаляются.

НаборЗаписей = РегистрыСведений.Номенклатура.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Документ);
НаборЗаписей.Прочитать();
        
Для Каждого ТекСтрока Из НаборЗаписей Цикл
        Если ТекСтрока.Номенклатура = ИсхНоменклатура Тогда
        Индекс= ТекСтрока.НомерСтроки-1;
        НаборЗаписей.Удалить(Индекс);
    КонецЕсли;    
КонецЦикла;    

Заранее спасибо
1 ДенисЧ
 
27.03.14
16:21
ЗАписать() где?
2 agarych
 
27.03.14
16:21
записать нужно.
3 Михаил Козлов
 
27.03.14
16:22
1. Лучше перебирать с конца или удаляемые строки добавлять в массив.
2. Индекс не нужен
3. Проверить есть ли запись набора.
4 GROOVY
 
27.03.14
16:22
(1) Да вы чего, нужно же УДАЛИТЬ аниЗАПИСАТЬ!
5 Господин ПЖ
 
27.03.14
16:25
груви больше не наливать
6 GROOVY
 
27.03.14
16:25
:)
7 ДенисЧ
 
27.03.14
16:26
(5) А больше и не наливают. Ровно столько же, сколько и в прошлый раз...
8 prishliemail
 
27.03.14
16:30
(1) После того как Удаляю нужно записать? Или вместо?
Я уже просто как только не пробовала, запись все равно не удаляется.

Точнее если смотреть отладчиком, то она исчезает из НабораЗаписей, но видимо из-за того что я не так записываю, она возвращается.
9 х86
 
27.03.14
16:33
(0)записать пустой набор, с отбором естественно )
10 Timon1405
 
27.03.14
16:33
Поиграть в игру "Найди красную букву Я" на страничке уже предлагали?
11 х86
 
27.03.14
16:35
как-то так
НаборЗаписей = РегистрыСведений.Номенклатура.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Документ);
НаборЗаписей.Прочитать();

НаборЗаписей.Очистить()

попытка
НаборЗаписей.Записать()
....
12 prishliemail
 
27.03.14
16:38
(11) Разве Очистить() не удалит мне все записи по этому регистратору?
Мне нужно, чтоб по регистратору была удалена всего одна записи, где номенклатура нужная
13 х86
 
27.03.14
16:43
(12)сорри, не дочитал что одну запись  )
14 prishliemail
 
27.03.14
16:48
Добавила Записать(), но это не помогло

НаборЗаписей = РегистрыСведений.Номенклатура.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Документ);
НаборЗаписей.Прочитать();        
Для Каждого ТекСтрока Из НаборЗаписей Цикл
    Если ТекСтрока.Номенклатура = ИсхНоменклатура Тогда
        Индекс= ТекСтрока.НомерСтроки-1;
        НаборЗаписей.Удалить(Индекс);
    КонецЕсли;    
КонецЦикла;
НаборЗаписей.Записать();
15 Timon1405
 
27.03.14
16:56
РегистрСведенийВыборка.<Имя регистра сведений>.ПолучитьМенеджерЗаписи (InformationRegisterSelection.<Имя регистра сведений>.GetRecordManager)
РегистрСведенийВыборка.<Имя регистра сведений> (InformationRegisterSelection.<Имя регистра сведений>)
ПолучитьМенеджерЗаписи (GetRecordManager)
Синтаксис:

ПолучитьМенеджерЗаписи()
Возвращаемое значение:

Тип: РегистрСведенийМенеджерЗаписи.

Описание:

Получает объект для чтения, изменения, добавления и удаления записи регистра сведений, на которой в данный момент спозиционирована выборка.

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

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

Полученный объект не является выбранным (метод Выбран возвратит Ложь). Для внесения изменений в полученную запись необходимо для этой записи сначала выполнить метод Прочитать.
Пример:

Процедура КоманднаяПанельВыполнить(Кнопка)
    Рег = РегистрыСведений.ЗначенияПравПользователя;
    Выборка = Рег.Выбрать();
    Пока Выборка.Следующий() Цикл
        Выборка.ПолучитьМенеджерЗаписи().Удалить();
    КонецЦикла;

    Строк = ЭлементыФормы.ТабличноеПоле1.Значение.Количество();
    Для Номер = 0 По Строк-1 Цикл
        Строка = ЭлементыФормы.ТабличноеПоле1.Значение.Получить(Номер);
        Элемент = Рег.СоздатьМенеджерЗаписи();
        Элемент.НаборПрав = Строка.НаборПрав;
        Элемент.Право     = Строка.Право;
        Элемент.Значение  = Строка.Значение;
        Элемент.Записать();
    КонецЦикла;
КонецПроцедуры

оно?
16 GROOVY
 
27.03.14
16:57
(11) зачем читать записи?
17 х86
 
27.03.14
17:23
(16)согласен, вычеркиваем
2 + 2 = 3.9999999999999999999999999999999...