Имя: Пароль:
1C
 
Запись в регистр сведений? как лучше?
0 Sovoratov
 
16.08.19
11:46
Регистр состоит только из двух измерений,
подскажите как лучше данные добавлять в него?
например если через СоздатьМенеджерЗаписи(); буду пытаться добавить записи которые уже существуют произойдет ошибка? мол запись с такими полями существует или перезатрёт?
Или лучше через Отбор добавлять (СоздатьНаборЗаписей()), чтобы ошибки не было?
1 Cyberhawk
 
16.08.19
11:49
Если два измерения, то максимум в нем 9 записей будет что ли?
2 Sovoratov
 
16.08.19
11:51
(1) почему только 9 записей? разве есть ограничения?
3 Mankubus
 
16.08.19
11:52
(0) почему бы не проверить самостоятельно на тестовой базе?
4 D_E_S_131
 
16.08.19
11:52
(0) Новая запись с неуникальным набором измерений не запишется.
(1) С чего такой вывод? Типы полей же мы не знаем.
5 Sovoratov
 
16.08.19
11:56
(4) типы полей ПоступлениеТоваровУслуг второе документ АнализКачества.
те в регистре буду устанавливать соответствия документов.
почему ограничение 9 ? разве не могу бесконечную комбинацию пар в регистр поместить?
6 Cyberhawk
 
16.08.19
11:57
(2) (4) Точно, не о том подумал.
(5) Сможешь.
7 Sovoratov
 
16.08.19
12:00
те как я понял лучше через набор записей добавлять чтобы подстраховаться от ошибки?
8 dka80
 
16.08.19
12:01
Записать(Истина) - перезатрет и ошибки не будет
9 Sovoratov
 
16.08.19
12:03
(8) ок спасибо
10 НадюшаЯ
 
16.08.19
12:04
(7) неправильно понял. И вообще все зависит от контекста задачи. Если 1000000 записей решишь добавить, то набор, немного затормозит работу. А если нужно переписать данные по какому то разрезу, то да набор.
11 dka80
 
16.08.19
12:05
А через набор или через менеджер зависит от того, какие ты данные будешь писать. Если связка ПоступлениеТоваровУслуг И АнализКачества один к одному, то лучше через менеджер записи, т.к. если будешь писать через набор записей, то тебе придется все равно устанавливать отбор на эту уникальную связку, а это будет просто лишней операцией
12 dka80
 
16.08.19
12:06
И да, если решишься все-таки писать через набор, то сделай копию базы сначала. Ну чтоб потом сюрпризом не был пустой регистр
13 D_E_S_131
 
16.08.19
12:11
Вроде бы где-то были рекомендации от 1С, что писать в любом случае оптимальнее набором записей. Но первоисточник не найду...
14 НадюшаЯ
 
16.08.19
12:12
(13) а вот за это спасибо)
15 Cyberhawk
 
16.08.19
12:18
(11) "лучше через менеджер записи, т.к. если будешь писать через набор записей, то тебе придется все равно устанавливать отбор на эту уникальную связку, а это будет просто лишней операцией" // Так и через МЗ то же самое будет
16 dka80
 
16.08.19
12:24
(15)
Запись = РС.МенеджерЗаписи.Создать()
Запись.Изм1=1
Запись.Изм2=1
Запись.Записать(Истина)

Набор = РС.НаборЗаписей.Создать();
Набор.Отбор.Изм1.Установить(1);
Набор.Отбор.Изм2.Установить(2);
Запись = Набор.Создать();
Запись.Изм1=1
Запись.Изм2=1
Набор.Записать()

Мне кажется в первом случае меньше кода
17 Cyberhawk
 
16.08.19
12:41
(16) Теперь ясно, что ты под "лишней операцией" имел в виду.
Я же про то, что происходит на уровне СУБД, имел в виду.
Ну и поскольку МЗ надстройка над НЗ, причем с удручающими ограничениями (нет доп. свойств, нет обмена данными), то профит от ее использования на краткости кода вроде как и заканчивается.
18 GGDots
 
16.08.19
12:51
https://its.1c.ru/db/metod8dev/content/2722/hdoc

.............

С точки зрения производительности использование наборов записей будет максимально эффективным. Использование менеджера записей в некоторых случаях будет столь же эффективным, а в некоторых менее, так как будут выполняться лишние действия.
19 Вафель
 
16.08.19
12:53
(18) однако ответ конечно достойный
сразу становится все понятно )))
20 palsergeich
 
16.08.19
13:03
(18) это общая статья и я не стал бы не принимать за истину.
Там очень много ньюаносов.
Эскалации всякие, неявные транзанкии.
В зависимости от ситуации может оказаться что миллион записей менеджером будут для базы более предпочтительным сценарием чем запись набора с миллионом строк
21 Вафель
 
16.08.19
13:06
через запись кода меньше, и он легче читается.
а это многого стоит