powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
13 сообщений из 13, страница 1 из 1
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
    #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
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
    #37830885
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя метод Добавить() должен быть по-любому.
...
Рейтинг: 0 / 0
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
    #37830945
DmitriyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bananas, а в чем смысл вопроса? Здесь нет разработчиков платформы.
...
Рейтинг: 0 / 0
Регистры сведений (и, возможно, не только они): напрямую записывать нельзя -> НаборЗаписей
    #37831465
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bananas,

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

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

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

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

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

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

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


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