Имя: Пароль:
1C
1С v8
v8: 8.2.15.301 Отбор : разница между .Установить(х) и .Значение = х
0 zak555
 
09.05.12
16:05
в чём разница собственно ?

p.s. 8.2.15.301
1 zak555
 
09.05.12
16:12
особенно интересует для РС
2 zak555
 
09.05.12
16:28
пусть есть РС с измерением Номенклатура и ресурсом Цена

начальные условия:
товар1 100
товар2 200
товар3 300

код:

НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Номенклатура.Значение = СсылкаНоменклатура ; //товар2
НаборЗаписей.Записать();

удаляет все записи из РС

код:

НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Номенклатура.Установить(СсылкаНоменклатура) ; //товар2
НаборЗаписей.Записать();

удаляет запись из РС по товару2
3 zak555
 
09.05.12
16:29
аналогично и для периодического регистра сведения:
1. удаляет абсолютно все записи
2. удаляет только записи, относящиеся к товару2
4 zak555
 
09.05.12
16:29
я так понял, что это ошибка платформы
5 Живой Ископаемый
 
09.05.12
16:34
да, так всегда, если лень добавить в отладку НаборЗаписей.Отбор.Номенклатура.Использование, то это именно ошибка платформы
6 zak555
 
09.05.12
16:39
(5) ага, только что увидел, что по умолчанию
аборЗаписей.Отбор.Номенклатура.Использование = Ложь
7 zak555
 
09.05.12
16:39
*НаборЗаписей.Отбор.Номенклатура.Использование = Ложь
8 zak555
 
09.05.12
16:41
(5) в СП про (6) ничего не напписано
9 Живой Ископаемый
 
09.05.12
16:44
2(6) Главное правила 1Сника - если что-то не выходит, значит глюк платформы, не могу же я быть долбо.ом
10 zak555
 
09.05.12
16:45
т.е. для регистра я так понимаю действует правило :
если он подчинен регистратору, то использование отбора - истина
если независимый - то ложь
11 zak555
 
09.05.12
16:46
(9) я же в этом не разбирался => не знал
12 Широкий
 
09.05.12
16:47
(10) "Использование" - это использовать ли данное условие отбора вообще
13 zak555
 
09.05.12
16:47
+ некоторые личности заявили, что для исправления ситуации (2) после отбора нужно было прочитать
14 zak555
 
09.05.12
16:48
(12) так я про то, как по умолчанию выставляется
15 Живой Ископаемый
 
09.05.12
16:48
2(11) господи, так никто не разбирался, никто не знал, и поэтому каждый первым делом винит платформу.. Это ведь не сложно, и разбираться в этом не надо.
16 zak555
 
09.05.12
16:49
(15) больше всего меня насторожило (13)
17 Живой Ископаемый
 
09.05.12
16:50
2(13) а, это конечно тоже тебя полностью оправдывает - кто-то оказался еще менее знающим и разбирающимся.
18 nunzio
 
09.05.12
16:52
(17) А разве во втором случае не удаляться данные по товару 2 ? Набор записей пустой же, с установленным отбором.
19 zak555
 
09.05.12
16:52
(17) его зовут Гилёв
20 nunzio
 
09.05.12
16:54
(13) А что непонятного ? Создается набор записей (пустой), делается отбор и запись. Запись по умолчанию идет в режиме замещения.
21 Живой Ископаемый
 
09.05.12
16:54
2(19) меня тоже как-то зовут, и я тоже могу лажать. Но как мои лажи могут оправдать чужие - я не представляю
22 zak555
 
09.05.12
16:55
(20) я о другом
23 zak555
 
09.05.12
16:56
(21) так я думал, что весь курс перелачен сто раз => искренны все ошибки
24 nunzio
 
09.05.12
16:57
(23) В чем ошибка ?
25 GROOVY
 
09.05.12
17:57
У метода "Записать()" набора записей есть параметр "Замещение"... Тоже советую изучить как его применять дабы не грохать данные в регистрах.
26 zak555
 
09.05.12
18:38
(25) это уже давно изучено =)
27 zak555
 
09.05.12
18:47
(20) (24)

отбор ты сделать можешь, но по умолчанию он будет использовать у регистров, которые подчинены регистратору
а те которые независимые (РС ) использование по умолчанию ЛОЖЬ

гражданин (13) сказал, чтобы не удалите все записи кодом независимого регистра

НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Номенклатура.Значение = СсылкаНоменклатура ; //товар2

//установим период и новую цену
НаборЗаписей.Записать();

нужно после отбора сразу написать код

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