Имя: Пароль:
1C
1С v8
помогите с отбором по региструсведений УТ 11
,
0 podkova
 
03.05.12
15:50
регистр периодичекий независимый

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


ругается

{ОбщийМодуль.ОбщегоНазначения.Модуль(2426)}: Ошибка при вызове метода контекста (Выбрать)

по причине:
Несоответствие типов (Параметр номер ""1"")
1 podkova
 
03.05.12
15:51
документ-измерение, тип докссылка
2 podkova
 
03.05.12
15:54
нужно удалять или править движения документа, почему-то при перепроведении документа
Документ.получитьобъект().Движения пустое, хотя запись в рс есть, но док не регистратор.
запуталась....
3 ale-sarin
 
03.05.12
15:54
А внимательнее читать СП?

Вариант синтаксиса: Для периодического регистра

Синтаксис:

Выбрать(<НачалоИнтервала>, <КонецИнтервала>, <Отбор>, <Порядок>)
4 bagira
 
03.05.12
15:54
Синтаксис:

Выбрать(<НачалоИнтервала>, <КонецИнтервала>, <Отбор>, <Порядок>)

Попробуй
НоменклатураП = РегистрыСведений.НоменклатураПользователей.Выбрать(,,Отбор);
5 Азат
 
03.05.12
15:55
а если создать набор записей - установить в нем отбор, потом очистить и все? зачем так сложно?
6 ale-sarin
 
03.05.12
15:55
(2) Это нормально. А вообще для чего все это?
7 podkova
 
03.05.12
15:56
(5) пробовала не получилось
8 podkova
 
03.05.12
15:58
(6)нормлаьно что запуталась? :)
(3) да спасибо но тогда ругается Недопустимое значение параметра (параметр номер '3')
пишу так:
Отбор = Новый Структура("Документ",Документ.Ссылка);
НоменклатураП = РегистрыСведений.НоменклатураПользователей.Выбрать(,,Отбор);
9 zuza
 
03.05.12
16:01
(8) а измерение "Документ" называется?
10 bagira
 
03.05.12
16:01
Отбор>
Тип: Структура.
Задает поле и значение отбора открываемой выборки. Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. В качестве полей для отбора могут задаваться измерения или реквизиты, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или установлен признак "Ведущее". Вид сравнения может быть только Равно.

Проверь установлен ли признак Ведущее или индексация....
А ВыбратьПоРегистратору  не подходит?
11 bagira
 
03.05.12
16:02
Если РС зависимый, то проще отобрать по регистратору
12 bagira
 
03.05.12
16:03
не правильно написала, НЕ зависимый, а подчинен регистратору...))
13 podkova
 
03.05.12
16:17
сделала (5) все заработало
СПАСИБО!

//Отбор = Новый Структура("Документ",Документ.Ссылка);
   НоменклатураП = РегистрыСведений.НоменклатураПользователей.СоздатьНаборЗаписей();//Выбрать(,,Отбор);
   НоменклатураП.Отбор.документ.Установить(Документ.Ссылка, Истина);
   НоменклатураП.Прочитать();    
   //Пока НоменклатураП.Следующий() цикл
   Если НоменклатураП.Количество()>0 тогда
       НоменклатураП.Удалить(0);//ПолучитьМенеджерЗаписи().Удалить();
   КонецЕсли;
   //КонецЦикла;
14 podkova
 
03.05.12
16:24
признак индексирования конечно же не был установлен-а я голову сломала
15 hhhh
 
03.05.12
16:30
(14) значит, всё-таки он не подчинен регистратору.
16 podkova
 
03.05.12
16:37
не подчинен
17 podkova
 
03.05.12
16:38
уважаемые, теперь снова вопрос:
обработкаудаленияпроведения()

НоменклатураП = РегистрыСведений.НоменклатураПользователей.СоздатьНаборЗаписей();//Выбрать(,,Отбор);
   НоменклатураП.Отбор.документ.Установить(Документ.Ссылка, Истина);
   НоменклатураП.Прочитать();    
   //Пока НоменклатураП.Следующий() цикл
   Если НоменклатураП.Количество()>0 тогда
       НоменклатураП.Удалить(0);//ПолучитьМенеджерЗаписи().Удалить();
   КонецЕсли;
запись на месте-почему???
18 Kuein
 
03.05.12
16:42
(17) НоменклатураП - Набор записей. Его обходишь как Для каждого ЗаписьП из НоменклатураП цикл, там проверяешь количество и делаешь все что нужно. Потом НоменклатураП.Записать().
19 podkova
 
03.05.12
16:43
хех и при изменении и проведении не удаляет оказывается
20 podkova
 
03.05.12
16:44
счас попробую
чето я туплю сегодня
21 podkova
 
03.05.12
16:49
волшебный форум-все получилось