Имя: Пароль:
1C
1С v8
ЗаполнитьЗначенияСвойств двух наборов. (Рубрика "Объясни чужой код")
0 Steini
 
23.11.12
07:58
Поясните, пожалуйста, сакральный смысл следующего куска кода:

ЗаполнитьЗначенияСвойств(НаборЗаписейНовый, НаборЗаписейСтарый);

Где оба набора - наборы записей регистра сведений с одинаковыми отборами (кроме периода). Главная цель - перенести записи со старой даты на новую.
П.С. Далее по коду заполняются значения свойств построчно.
1 zak555
 
23.11.12
08:00
СкопироватьНабор(НаборЗаписейНовый, НаборЗаписейСтарый);
2 Steini
 
23.11.12
08:02
(1) не, давайте я приведу более подробный код :

НаборЗаписейСтарый = РегистрыСведений.ИсключенияПриРасчете.СоздатьНаборЗаписей();        НаборЗаписейСтарый.Отбор.Период.Установить(ДатаДляПроверки);
                       НаборЗаписейСтарый.Отбор.Продукция.Установить(ТекЭлемент);
                       НаборЗаписейСтарый.Прочитать();
                       
                       НаборЗаписейНовый = РегистрыСведений.ИсключенияПриРасчете.СоздатьНаборЗаписей();
                       НаборЗаписейНовый.Отбор.Период.Установить(ДатаПринятияИзменений);
                       НаборЗаписейНовый.Отбор.Продукция.Установить(ТекЭлемент);
                       
                       ЗаполнитьЗначенияСвойств(НаборЗаписейНовый, НаборЗаписейСтарый);
                       Для Каждого ТекСтрока из НаборЗаписейСтарый Цикл
                           НоваяЗапись = НаборЗаписейНовый.Добавить();
                           ЗаполнитьЗначенияСвойств(НоваяЗапись, ТекСтрока);
                           НоваяЗапись.Период = ДатаПринятияИзменений;
                       КонецЦикла;
3 zak555
 
23.11.12
08:03
это ты где такое нашёл :?
4 Steini
 
23.11.12
08:03
(3) самописка
5 zak555
 
23.11.12
08:04
(4) переписать
6 Steini
 
23.11.12
08:05
(4) да должен быть в этом ключевой смысл! =)
вариант - исправить и посмотреть, где вылетит ошибка - не предлагать =)
7 Нуф-Нуф
 
23.11.12
08:24
Проще тогда выгружить старый набор в тз и загрузить в новый
8 Steini
 
23.11.12
08:39
(7) но потом же все равно цикл нужен по строкам, чтобы дату подправить. Мне кажется, что это не проще, а абсолютно то же самое...
9 Лефмихалыч
 
23.11.12
08:44
(8) если выгружать в ТЗ, то цикл не нужен - есть

ТаблицаЗначений.ЗаполнитьЗначения (ValueTable.FillValues)
ТаблицаЗначений (ValueTable)
ЗаполнитьЗначения (FillValues)
Синтаксис:

ЗаполнитьЗначения(<Значение>, <Колонки>)
10 Steini
 
23.11.12
08:53
(9) Да, Вы абсолютно правы.

Но все же, есть у кого идеи, зачем нужно ЗаполнитьЗначенияСвойств 2-х наборов записей? =)
Ведь таким образом даже отборы не перезаписываются, а др. свойства(ДополнительныеСвойства, ОбменДанными и т.п.) и не используются никогда..
11 hhhh
 
23.11.12
09:32
(10) ну а вдруг появятся свойства в новых релизах? А у автора уже всё подготовлено. Он уже подготовился.
Программист всегда исправляет последнюю ошибку.