Имя: Пароль:
1C
1С v8
Запись в регистр сведений.
,
0 DAVI
 
28.10.13
13:14
Добрый день! УПП для Казахстана 1.0.22.14 Платформа 8.2.14.540. Делаю программно запись в регистр сведений ЗначенияСвойствОбъектов. У измерения "Объект" несколько типов значения,а мне нужен только Справочник.Контрагенты. Как правильно записать контрагента в это измерение. Делаю так:
НаборЗаписей =   РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
Запись = НаборЗаписей.Добавить();
Запись.Период = ТекущаяДата();
Запись.Объект = Контрагент;
Запись.Свойство = Свойство;
Запись.Значение = СтрокаТЧ.Колонка21;
НаборЗаписей.Записать();

Ругается на Запись.Объект,так как у него несколько типов значения.
Прошу не ругать,я учусь!
1 Wobland
 
28.10.13
13:16
там в ругани всё сказано
2 Нуф-Нуф
 
28.10.13
13:16
как ругается
3 Godofsin
 
28.10.13
13:16
(1) +1
4 Maxus43
 
28.10.13
13:20
Отбор на измерения поставь сначала
5 v4442
 
28.10.13
13:23
можно вот так     

Запись=РегистрыСведений.ТвойРег.СоздатьМенеджерЗаписи();
    Запись.Период        = СсылкаНаОбъект.Дата;
    Запись.Документ      = СсылкаНаОбъект;
    Запись.ТипДокумента  = ТипЗнч(СсылкаНаОбъект);
    Запись.Признак       = Признак;
    Запись.ТипПодписи    = вввв;
    Запись.ФизЛицо       = ФизЛицо;
    Запись.Записать(Истина);
6 v4442
 
28.10.13
13:24
Запись=   РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
Запись.Период = ТекущаяДата();
Запись.Объект = Контрагент;
Запись.Свойство = Свойство;
Запись.Значение = СтрокаТЧ.Колонка21;
НаборЗаписей.Записать(Истина);
7 v4442
 
28.10.13
13:25
Запись.Записать(Истина);
8 DAVI
 
28.10.13
13:26
Сделал так
НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Объект.Установить(Справочники.Контрагенты);
        Запись = НаборЗаписей.Добавить();
        Запись.Период = ТекущаяДата();
        Запись.Объект = Контрагент;
        Запись.Свойство = Свойство;
        Запись.Значение = СтрокаТЧ.Колонка21;
        НаборЗаписей.Записать();

Ругается на то что
Запись не верна! Значение поля "Объект" не может быть пустым!
9 Wobland
 
28.10.13
13:27
(8) я всё понял! Контрагент пустой!
10 Maxus43
 
28.10.13
13:27
НаборЗаписей.Отбор.Объект.Установить(СсылкаНаКонкретногоКонтрагентаАНеНаВесьСправочникАтоИшЧего);
11 Нуф-Нуф
 
28.10.13
13:28
(8) сделай значение поля объект не пустым! будь мужиком, блеать!
12 DAVI
 
28.10.13
13:28
(9) отладчик говорит что он не пустой
13 Wobland
 
28.10.13
13:28
(12) кто-то из вас врёт
14 Maxus43
 
28.10.13
13:28
(12) не пустой, да. Но тип у него СправочникМенеджер а не справочник ССылка
15 1dvd
 
28.10.13
13:29
(12) ТипЗнч(Контрагент) = Строка ?
16 DAVI
 
28.10.13
13:31
(15) Тип = СправочникОбъект.Контрагенты
17 1dvd
 
28.10.13
13:31
(16) а нужна ссылка.

Запись.Объект = Контрагент.Ссылка;
18 Maxus43
 
28.10.13
13:36
НаборЗаписей.Отбор.Объект.Установить(Контрагент.Ссылка);
19 DAVI
 
28.10.13
13:43
(6) спасибо Вам. получилось. (18) а если не ставить отбор?на что это влияет?
20 DAVI
 
28.10.13
13:43
сделал как в (6) ,записалось
21 DAVI
 
28.10.13
13:43
там нет отбора
22 Maxus43
 
28.10.13
13:44
(19) если на набор не поставить отбор - будет либо ошибка либо затрёт весь регистр. точно не скажу щас
23 Maxus43
 
28.10.13
13:44
(21) там менеджер записи, а не набор записи. Это разные вещи, учи матчасть уж лучше
24 DAVI
 
28.10.13
13:45
(23) спасибо! так и так попробую,ну и почитаю обязательно.
25 DAVI
 
28.10.13
13:56
(18) так тоже работает
26 kiruha
 
28.10.13
15:17
А нафига тебе вообще набор для одной записи.
Вон в (6) все просто и быстро
2 + 2 = 3.9999999999999999999999999999999...