powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
16 сообщений из 16, страница 1 из 1
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37826097
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
НаборЗаписей = РегистрыСведений.Прайс.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Период.Установить(РеквизитФормыДата);
НаборЗаписей.Отбор.Покупатель.Установить(РеквизитФормыПокупатель);

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

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



Какой результат выдает СоздатьНаборЗаписей? Несколько строк в формате регистра сведений "Прайс"? Если так, то зачем НаборЗаписей.Добавить()?
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37826122
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. никакой. это инициализация переменной
2. в нее добавляют значения.
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37826124
olegves
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bananas,

здеся набор записей в разрезе Даты и Покупателя
1. В набор включены все записи регистра
3. Добавить - добавляет новую запись в набор
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37826148
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegvesздеся набор записей в разрезе Даты и Покупателя

Это я понял.

olegvesВ набор включены все записи регистра

и
Программист 1с1. никакой. это инициализация переменной

Так после того, как выполним СоздатьНаборЗаписей() - у нас записей на самом деле 0 и создаем мы их только методом Добавить()?
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37826171
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да

Перем X array[1..10];

//добавить
x[1]=1;
...
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37826193
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с, хм. Неожиданная аналогия. Отступая от темы: такая аналогия применима только к СоздатьНаборЗаписей()?
Следующий вопрос по теме:
Если изначально у нас 0 записей в регистре, то какой смысл настраивать отбор и что эта настройка дает?
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37826389
olegves
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bananas,

если создашь нз и сразу запишешь его, то сотрешь все записи регистра.
Если добавишь к нз Отбор и запишешь, то сотрешь записи с учетом фильтра, а если прочитаешь, то получишь в набор записи по фильтру.

Если не будешь читать, а просто добавишь записи по фильтру и потом запишешь, то прежние записи по этому фильтру заменятся вновь созданными.
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37826445
zamichnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
olegves...Если не будешь читать, а просто добавишь записи по фильтру и потом запишешь, то прежние записи по этому фильтру заменятся вновь созданными.
Уточню, если параметр <Замещать> = Истина, то заменятся, а если Ложь, то будут дописаны к уже существующим .
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37827741
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zamichnikУточню, если параметр <Замещать> = Истина, то заменятся, а если Ложь, то будут дописаны к уже существующим .
Уточню на всякий случай. Ваше уточнение относится только к
olegves...Если не будешь читать, а просто добавишь записи по фильтру и потом запишешь, то прежние записи по этому фильтру заменятся вновь созданными.
Или ко всему:
olegves1. если создашь нз и сразу запишешь его, то сотрешь все записи регистра.
2. Если добавишь к нз Отбор и запишешь, то сотрешь записи с учетом фильтра, а если прочитаешь, то получишь в набор записи по фильтру.
3. Если не будешь читать, а просто добавишь записи по фильтру и потом запишешь, то прежние записи по этому фильтру заменятся вновь созданными.
Замещать - свойство регистра сведений или параметр какого-то метода?
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37827956
zamichnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bananas,
Это параметр метода Записать(<Замещать>) объекта РегистрСведенийНаборЗаписей
Чтобы не было ошибки, просто скопирую первоисточник :
Синтакс-помощник<Замещать> (необязательный)
Тип: Булево.
Определяет режим замещения существующей записи в соответствии с текущими установками отбора. Истина - перед записью существующие записи будут удалены. Ложь - записи будут дописаны к уже существующим в информационной базе записям
Значение по умолчанию: Истина
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37830022
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с, olegves, спасибо за ответы.
zamichnik, ясно, спасибо. Приведу полную процедуру из книги (может я что-то упустил):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
НаборЗаписей = РегистрыСведений.Прайс.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Период.Установить(РеквизитФормыДата);
НаборЗаписей.Отбор.Покупатель.Установить(РеквизитФормыПокупатель);

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

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


Далее вопросы:
В коде нет НаборЗаписей.Записать(). Вместо этого записывается набора записей НоваяЗапись, о которой я не понимаю, как она связана с регистром сведений "Прайс".
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37830360
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
НаборЗаписей = РегистрыСведений.Прайс.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Период.Установить(РеквизитФормыДата);
НаборЗаписей.Отбор.Покупатель.Установить(РеквизитФормыПокупатель);

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

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



Код правильный.
Создаваемый объект НаборЗаписей позволяет в памяти создать "массив" записей в базу. Представьте себе таблицу с полями как у регистра сведений. Потом в цикле заполняется эта таблица в памяти и когда вызывается метод НаборЗаписей.Записать(); 1С инсёртами записывает этот набор. Т.к. у вас режим записи замещать, то перед записью данные удалятся с параметрами установленными в Отборе.

И того:
DELETE ... WHERE Период = ... И Покупатель = ...
INSERT INTO ... ( ... ) VALUES ( ... )
INSERT INTO ... ( ... ) VALUES ( ... )
INSERT INTO ... ( ... ) VALUES ( ... )
INSERT INTO ... ( ... ) VALUES ( ... )

Как-то так
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37830546
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaM, проглядел: НоваяЗапись = НаборЗаписей.Добавить(); - думал "НаборЗаписей" какой-то тип данных, а это та самая переменная, которую в начале создали. Спасибо за разъяснение.
Подобный код почему-то трудно воспринимается:
Код: sql
1.
НоваяЗапись = НаборЗаписей.Добавить();


Метод Добавить() создает пустую запись со структурой РС "Прайс" и возвращает на нее ссылку в переменную НоваяЗапись?
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37830642
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если объяснять на примере Excel, то НаборЗаписей = Лист, а НоваяЗапись = добавляемая строка в этот лист
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37830653
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BananasSashaM, проглядел: НоваяЗапись = НаборЗаписей.Добавить(); - думал "НаборЗаписей" какой-то тип данных, а это та самая переменная, которую в начале создали. Спасибо за разъяснение.
Подобный код почему-то трудно воспринимается:
Код: sql
1.
НоваяЗапись = НаборЗаписей.Добавить();


Метод Добавить() создает пустую запись со структурой РС "Прайс" и возвращает на нее ссылку в переменную НоваяЗапись?



Всё верно именно помещает в переменную НоваяЗапись ссылку на новую строку в таблице на которую ссылается переменная НаборЗаписей.
...
Рейтинг: 0 / 0
Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
    #37830810
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaM, Программист 1с, olegves, zamichnik, спасибо за разъяснения. Вопрос понятен.

пс. Есть непонятки в том, почему реализовали так, а не эдак, но это, думаю, уже к другой теме. Еще раз всем спасибо за помощь.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Если РС.СоздатьНаборЗаписей() создает пустой набор записей, то не понимаю следующий код:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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