Цитата(murderface @ 15.05.11, 23:48) необходимо зарегистрироваться для просмотра ссылки
все отлично работает, но если значение будет 2,3 - обработка пытается создать либо еще одну запись со значением 2, либо еще одну со значением 3...
Так со значением 2 или 3?
i Как добавить запись в непериодический независимый регистр сведений?
Для непериодического регистра сведений (рис. 3.4) создаем набор записей (листинг 3.87).
Рис. 3.4. Регистр Значения свойств
Листинг 3.87. Добавление записи в непериодический независимый регистр сведений
НаборЗаписей = РегистрыСведений.ЗначенияСвойств.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Номенклатура.Установить(ТекущаяНоменклатура);
НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство);
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Номенклатура = ТекущаяНоменклатура;
НоваяЗапись.Свойство = ТекущееСвойство;
НоваяЗапись.Значение = ТекущееЗначение;
НаборЗаписей.Записать();
Далее применяем отборы по нужным полям. Как правило, по измерениям, входящим в основной отбор.
Создаем новую запись, заполняем ее поля. Записываем новый набор записей с замещением всех записей, соответствующих отбору. Параметр Замещение метода Записать() по умолчанию имеет значение Истина.
Для чего нужно замещение?
Дело в том, что в любом регистре запись с конкретным ключом записи всегда уникальна. Для непериодического независимого регистра сведений ключом записи является конкретная комбинация значений измерений.
То есть запись с определенной комбинацией значений измерений может присутствовать только в единственном экземпляре. Попытка записать новую запись с тем же набором значений измерений привела бы к ошибке.
Кроме того, в подобной работе можно удариться в другую крайность.
Если не применить отбор, то при записи система попытается заместить все существующие записи регистра. В результате, добавляя новый набор записей с замещением, мы бы удалили все ранее введенные записи регистра!