Имя: Пароль:
1C
1С v8
СоздатьНаборЗаписей регистр сведений
,
0 letovd
 
18.07.19
09:42
Для чего нужно указывать отбор в регистре сведений, при использовании метода СоздатьНаборЗаписей?
И почему НаборЗаписей нужно очищать после записи (если планируется запись в цикле нескольких наборов), или это не обязательно?
1 Cyberhawk
 
18.07.19
09:44
Отбор необязательно указывать у НЗ. Это у МЗ обязательно перед чтением заполнить все поля ключа.
2 Cyberhawk
 
18.07.19
09:45
Очищать тоже конечно же необязательно. Просто надо понимать что происходит на каждой строчке кода и сопоставлять это с тем, что требуется.
3 letovd
 
18.07.19
09:48
(1) Без отбора в цикле записывает только одну запись в регистр
4 Cyberhawk
 
18.07.19
09:49
(3) Сочувствую
5 ДенисЧ
 
18.07.19
09:55
(3) А зачем писать в цикле?
6 letovd
 
18.07.19
10:00
(5) Нужно несколько записей.
Сейчас проверил, без отбора записывает, если сперва прочитать регистр, в общем нужно разбираться с этим делом.
Статью бы хорошую найти
7 ДенисЧ
 
18.07.19
10:02
(6) "Статью бы хорошую найти"

Любая книга по программированию в 1с
8 ДенисЧ
 
18.07.19
10:03
(6) И да

нз = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей();
з = нз.Добавить();з.Реквизит=Реквизит1;з.Ресурс = Ресурс1;
з = нз.Добавить();з.Реквизит=Реквизит2;з.Ресурс = Ресурс2;
нз.Записать(Истина);

Одной записью сделает несколько записей...
9 letovd
 
18.07.19
10:10
(8) Да нет, у меня записи берут данные из выборки
10 letovd
 
18.07.19
10:14
(8)
нз.Записать(Истина);
Зачем указывать "явно" истина, если это значение по умолчанию и имеет смысл лишь
нз.Записать(Ложь)
11 kuzyara
 
18.07.19
10:16
>Для чего нужно указывать отбор в регистре сведений, при использовании метода СоздатьНаборЗаписей?

Представь что для того чтобы сделать update набора записей - нужно указать where какие перезатрутся.
12 Cyberhawk
 
18.07.19
10:21
(10) Для повышения наглядности / читаемости кода. На сам исполняемый код это не влияет конечно.
13 ДенисЧ
 
18.07.19
10:21
(10) Чтобы было понятно сразу. У меня нет привычки опираться на умолчания.
14 ДенисЧ
 
18.07.19
10:22
(9) Перепишем код
нз = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей();
выб = Запрос.Выполнить().Выбрать();
Пока выб.Следующий();
  з = нз.Добавить();
  з.Реквизит=Выб.Реквизит;
  з.Ресурс = выб.Ресурс;
КонецЦикла;
нз.Записать(Истина);
15 kuzyara
 
18.07.19
10:24
> Статью бы хорошую найти
web.archive.org/web/20180823045849/http://1c-wiki.ru/wiki/Регистр_сведений
16 letovd
 
18.07.19
10:25
(12) Некое "правило" хорошего тона 1С?
(14) у меня точно такой же, я же и писал изначально
(15) Спасибо!!!
17 ДенисЧ
 
18.07.19
10:31
(16) 1. Правило написания красивого кода
2. И что у тебя не работало? У меня работает, у тебя нет? У нас разные 1с?
18 letovd
 
18.07.19
10:32
(17) я метод "записать" не вытащил из цикла
19 НичегоНе Понятно
 
18.07.19
10:40
(15)Твою мать, то чувство когда wiki которую ты писал, даже упавшую вытаскивают из архива и называют еще хорошей статьей. Надо возвращать ее на место значит.