Имя: Пароль:
1C
1С v8
Выборка из регистра сведений, бухгалтерия 3.0
,
0 LenaAt
 
31.01.14
10:30
Подскажите, пожалуйста, почему вот  такой код выбирает записи,
НаборЗаписей = РегистрыСведений.ДатыЗапретаИзменения.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Пользователь.Установить(ВыбрПользователь);
НаборЗаписей.Прочитать();

а вот такой - нет?
    НаборЗаписей = РегистрыСведений.ДатыЗапретаИзменения.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Пользователь.Установить(ВыбрПользователь);
    НаборЗаписей.Отбор.Раздел.Установить(ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка());
    НаборЗаписей.Отбор.Объект.Установить(ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.БухгалтерскийУчет.Пустая());
    НаборЗаписей.Прочитать();

Измерения Раздел и Объект не заполнены какими - либо значениями.
1 Wobland
 
31.01.14
10:34
тип не тот у объекта
2 LenaAt
 
31.01.14
10:38
Я пробовала оставлять отбор только по пользователю и разделу - всё равно не работает. То есть такой код тоже не выбирает записи:
НаборЗаписей = РегистрыСведений.ДатыЗапретаИзменения.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Пользователь.Установить(ВыбрПользователь);
НаборЗаписей.Отбор.Раздел.Установить(ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка());
НаборЗаписей.Прочитать();

А почему у объекта не тот тип? Это ведь характеристика?
3 Wobland
 
31.01.14
10:39
(2) характеристика. а ты что указываешь?
4 Wobland
 
31.01.14
10:40
НаборЗаписей.Раздел.Установить(ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.БухгалтерскийУчет)
5 LenaAt
 
31.01.14
10:43
(4) А как указать, что конкретная характеристика не выбрана? Разве не нужно написать Пустая()?
6 vhl
 
31.01.14
10:47
(5) Если не выбрана - не устанавливай по ней отбор
7 LenaAt
 
31.01.14
10:50
(6) Отбор всегда нужно устанавливать по всем измерениям регистра сведений, даже если они пустые. Иначе можно потерять данные при записи набора.
8 Wobland
 
31.01.14
10:51
(7) серьёзно?
    НЗ=РегистрыСведений.ДатыЗапретаИзменения.СоздатьНаборЗаписей();
    НЗ.Прочитать();
    НЗ.Записать();
9 LenaAt
 
31.01.14
11:11
НаборЗаписей = РегистрыСведений.ДатыЗапретаИзменения.СоздатьНаборЗаписей();
НаборЗаписей.Записать(Истина);
10 LenaAt
 
31.01.14
11:13
9+ Но мы несколько отвлеклись от темы. Мне всё же интересно как сделать отбор по пустым значениям?
11 Wobland
 
31.01.14
11:14
(9) НЗ создаётся пустым, пустым и пишется
(10) ты чего хочешь в конце пути?
12 LenaAt
 
31.01.14
11:21
Я хочу отобрать все записи, у которых пользователь имеет выбранное значение, а раздел и объект не указаны. А потом я буду для этой записи менять дату.
13 Wobland
 
31.01.14
11:28
НЗ=РегистрыСведений.ДатыЗапретаИзменения.СоздатьНаборЗаписей();
    НЗ.Отбор.Пользователь.Установить(Справочники.Пользователи.НайтиПоНаименованию());
    НЗ.Отбор.Раздел.Установить(ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка());
    НЗ.Отбор.Объект.Установить(ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка());
    НЗ.Прочитать();
14 LenaAt
 
31.01.14
11:52
Спасибо Вам большоё! Всё заработало.