Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей / 13 сообщений из 13, страница 1 из 1
08.06.2012, 12:24
    #37830874
Bananas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
Возможно, что просто так решили разработчики в 1С, а возможно - не просто так. Может кто в курсе, почему именно так? Может интерпретатор 1С быстрее обрабатывает один вариант записи, чем остальные?
Код: sql
1.
2.
3.
4.
5.
6.
НаборЗаписей = РегистрыСведений.Прайс.СоздатьНаборЗаписей();
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Период = РеквизитФормыДата; 
НоваяЗапись.Покупатель = РеквизитФормыПокупатель;
....
НаборЗаписей.Записать();



Вместо:
Код: sql
1.
2.
3.
4.
5.
НаборЗаписей = РегистрыСведений.Прайс;
НоваяЗапись = НаборЗаписей.Добавить(); //НоваяЗапись = ПолучитьСсылку(НаборЗаписей);
НоваяЗапись.Период = РеквизитФормыДата; 
НоваяЗапись.Покупатель = РеквизитФормыПокупатель;
....


Либо вообще:
Код: sql
1.
2.
3.
РегистрыСведений.Прайс.Период = РеквизитФормыДата; 
РегистрыСведений.Прайс.Покупатель = РеквизитФормыПокупатель;
....



з.ы. полный код вроде не принципиален, но на всякий случай привел.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
НаборЗаписей = РегистрыСведений.Прайс.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Период.Установить(РеквизитФормыДата);
НаборЗаписей.Отбор.Покупатель.Установить(РеквизитФормыПокупатель);

Для Каждого СтрокаТовара Из Товары Цикл //Товары - табличная часть
   НоваяЗапись = НаборЗаписей.Добавить(); 
   
   НоваяЗапись.Период = РеквизитФормыДата; 
   НоваяЗапись.Покупатель = РеквизитФормыПокупатель;
   НоваяЗапись.Номенклатура = СтрокаТовара.Номенклатура; //измерение регистра сведений "Прайс"
   НоваяЗапись.Цена = СтрокаТовара.Цена; //ресурс регистра сведений "Прайс"
   
КонецЦикла;

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

...
Рейтинг: 0 / 0
08.06.2012, 12:26
    #37830885
Bananas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
Хотя метод Добавить() должен быть по-любому.
...
Рейтинг: 0 / 0
08.06.2012, 12:53
    #37830945
DmitriyZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
Bananas, а в чем смысл вопроса? Здесь нет разработчиков платформы.
...
Рейтинг: 0 / 0
08.06.2012, 16:45
    #37831465
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
Bananas,

IMHO, РегистрыСведений - это объект так называемый "менеджер", содержащий в себе коллекцию инициализированных объектов, если нет, то создает объект беря так называемые мета данные, скорее всего из XML, Прайс - ссылка на объект который есть в коллекции / создали, далее идет вызов у объекта Прайс функции СоздатьНаборЗаписей, который создаёт структуру и возвращает описатель в переменную НаборЗаписей.

Скорее всего это сделано чтобы постоянно не инициализировать новые объекты, постоянно не читать методанные при инициализации и по этому ускорить выполнение. Возможно что даже при компиляции объекты который используются в конфигурации изначально создаются, и подгружаются при старте методом сериализции.
...
Рейтинг: 0 / 0
09.06.2012, 17:24
    #37833074
Bananas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
DmitriyZ, смысл, похоже, опять в том, что новые знания усваиваются только после того, как пойму "почему так". Почему-то усваивание по схеме "Как есть" работает редко:(

Раз разработчиков 1с тут нет, чтобы из первых рук ответ получить, то тогда, думаю, лучше тему закрою: обсуждение на уровне предположений может сделать только хуже.
Всем спасибо за участие:)
...
Рейтинг: 0 / 0
10.06.2012, 21:38
    #37833887
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
BananasDmitriyZ, смысл, похоже, опять в том, что новые знания усваиваются только после того, как пойму "почему так". Почему-то усваивание по схеме "Как есть" работает редко:(

Раз разработчиков 1с тут нет, чтобы из первых рук ответ получить, то тогда, думаю, лучше тему закрою: обсуждение на уровне предположений может сделать только хуже.
Всем спасибо за участие:)Разработчики 1с сидят на внутреннем форуме 1с (точнее сказать просматривают).

Но объяснять почему... не уверен что будут. Первоначально имее смысл задать вопрос Богу - почему?
...
Рейтинг: 0 / 0
11.06.2012, 04:45
    #37834038
Александр Пузаков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
Bananas,

При обработке проведения запись производится, как правило, неявно, т.е. без указания метода
Код: plaintext
.Записать()
...
Рейтинг: 0 / 0
13.06.2012, 09:57
    #37835861
Талаат
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
А такая запись чем не устраивает?
Код: plaintext
1.
2.
3.
4.
5.
НоваяЗапись = РегистрыСведений.Прайс.СоздатьМенеджерЗаписи();
НоваяЗапись.Период = РеквизитФормыДата; 
НоваяЗапись.Покупатель = РеквизитФормыПокупатель;
....
НоваяЗапись.Записать();
...
Рейтинг: 0 / 0
13.06.2012, 11:20
    #37836019
Bananas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
Талаат,
не знал о таком. Это альтернативный способ? В справке про СоздатьМенеджерЗаписи() пара слов. Это метод модуля менеджера?
...
Рейтинг: 0 / 0
13.06.2012, 11:35
    #37836058
DmitriyZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
BananasТалаат,
не знал о таком. Это альтернативный способ? В справке про СоздатьМенеджерЗаписи() пара слов. Это метод модуля менеджера? Это метод менеджера регистра сведений. НаборЗаписей служит для записи в БД нескольких записей. МенеджерЗаписи - для добавления одной записи.
...
Рейтинг: 0 / 0
13.06.2012, 15:51
    #37836529
Bananas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
DmitriyZ, СоздатьНаборЗаписей() и СоздатьМенеджерЗаписи(); - оба метода менеджера регистра сведений "Прайс"? Разница только в том, что вы написали? Как-то странно, что для этого 2 метода сделали, можно было бы обойтись СоздатьНаборЗаписей() (кода было бы немного больше) или это связано с отборами - в СоздатьМенеджерЗаписи() их настраивать не нужно?
...
Рейтинг: 0 / 0
13.06.2012, 18:57
    #37836826
nicktcher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
BananasDmitriyZ, СоздатьНаборЗаписей() и СоздатьМенеджерЗаписи(); - оба метода менеджера регистра сведений "Прайс"? Разница только в том, что вы написали? Как-то странно, что для этого 2 метода сделали, можно было бы обойтись СоздатьНаборЗаписей() (кода было бы немного больше) или это связано с отборами - в СоздатьМенеджерЗаписи() их настраивать не нужно?

На самом деле платформа 1С реально использует только один метод записи - через наборы. При работе с объектом МенеджерЗаписи тоже неявно идет работа с набором записей. Видимо решили, что концептуально понятнее его (менеджер) использовать для одиночных записей
...
Рейтинг: 0 / 0
20.06.2012, 15:55
    #37846715
Bananas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
nicktcher, либо накладные расходы больше.
В общем, спасибо за помощь!
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]