Имя: Пароль:
1C
1С v8
Добавление, редактирование в непериодический независимый регистр сведений
,
0 Pchelinka
 
24.04.17
12:12
Добрый день, форумчане! Помогите приручить регистр сведений, не поддается моей дресировке(( Столкнулась с ним впервые, выручайте) Задача в следующем: Из карточки контрагента иметь возможность добавлять, редактировать, удалять данные регистра сведений. Создала Регистр АдресаДоставки, и разместила его табличность частью в карточке контрагента. В Регистре в Измерение добавила: Объект (ведущий)- Тип справочник контрагента, Получатель и Поставщик строковые(эти два измерения могут содержать разные адреса и телефоны, хотя и у контрагента могут быть несколько получателей и поставщиков...) В Ресурсы разместила: АдресПолучателя, АдресПеревозчика и ТелефонПолучателя тоже строковые все. При копировании существующей адресной строки в ТЧ карточки контрагента и изменения только одного значения содержащегося в Ресурсах (например телефон) и попытке НаборЗаписей.Записать()-перезаписывает старую запись, а не добавляет к ней новую.. Если  НаборЗаписей.Записать(Ложь)- ругается, что значение данных Измерений не уникально(( Как быть, возможно перестроить сам Регистр сведений? Вот код:                

НаборЗаписей = РегистрыСведений.АдресаДоставки.СоздатьНаборЗаписей();
  
   НаборЗаписей.Отбор.Объект.Установить(Стр.Объект);
   НаборЗаписей.Отбор.Перевозчик.Установить(Стр.Перевозчик);
   НаборЗаписей.Отбор.Получатель.Установить(Стр.Получатель);
  
   НоваяЗапись = НаборЗаписей.Добавить();
   НоваяЗапись.Объект=Стр.Объект;  
   НоваяЗапись.Перевозчик = Стр.Перевозчик;
   НоваяЗапись.Получатель = Стр.Получатель;
   НоваяЗапись.АдресПеревозчика = Стр.АдресПеревозчика;
   НоваяЗапись.АдресПолучателя = Стр.АдресПолучателя;
   НоваяЗапись.ТелефонПолучателя = Стр.ТелефонПолучателя;
   НаборЗаписей.Записать(Ложь);
1 h-sp
 
24.04.17
12:16
(0) это такой всемирный закон: нельзя записать две строчки по одним и тем же измерениям.
2 Любопытная
 
24.04.17
12:17
Строковые измерения это нехорошо. Это во-первых.
Во-вторых, чтобы записать новую запись в непериодический регистр, все значения измерений должны быть различными. Иначе как вы потом будете отбор делать?
3 lodger
 
24.04.17
12:18
на пересечении значений Измерений лежит только 1 набор Ресурсов.
если требуется на один и тот же Объект Перевозчик и Получатель писать больше 1 раза, тогда требуется добавить еще одно измерение. хотя бы НомерЗаписи, (число 10,0,неотрицательное).
4 dezss
 
24.04.17
12:19
Сочетание измерений должно обеспечивать уникальный ключ.
Кстати, будь аккуратней со строковыми измерениями. Следи, чтобы максимальная длина всех измерений была меньше 900 байт.

Так что лучше пересмотри набор измерений. Лучше добавь типКИ (адрес, телефон и т.п.) и что-то вроде индекса (просто номер записи), а сами значения храни в реквезитах.
5 dezss
 
24.04.17
12:20
(4) Или в ресурсах, тут это будет не принципиально...
6 Pchelinka
 
24.04.17
12:21
Спасибо!))) Номер записи мне нравится... сейчас все испытаю!