Имя: Пароль:
1C
1С v8
изменение данные в регистре сведений
0 Эльчин
 
09.10.13
17:03
ОШИБКА: Поле объекта не обнаружено (Прочитан)
        выборка.Прочитан = Истина;
-------------------------------------------------Код:
выборка = РегистрыСведений.Сообщения.СоздатьНаборЗаписей();
выборка.Отбор.Получатель.Установить(ПолучательСсылка);
выборка.Отбор.Отправитель.Установить(ОтправительСсылка);
выборка.Отбор.Прочитан.Установить(Ложь);
выборка.Прочитать();
если выборка.выбран() тогда
    выборка.Прочитан = Истина;
    выборка.Записать();
конецесли;
-------------------------------------------------------
привет. в регистре есть измерение ПРОЧИТАН.а почему дает ошибку?
1 Euguln
 
09.10.13
17:10
.СоздатьМенеджерЗаписи()
2 Эльчин
 
09.10.13
17:13
(1) в регистре 5 измерения. а мне нужен отбор по 3 измерения. в этом случае погу я использовать СоздатьМенеджерЗаписи()?
3 Ellowis
 
09.10.13
17:19
Гражданин или тролит, или не очень понимает чего хочет. Есть как минимум 4 темы по одному и тому же вопросу

(0) делай так:
выборка = РегистрыСведений.Сообщения.СоздатьНаборЗаписей();
выборка.Отбор.Получатель.Установить(ПолучательСсылка);
выборка.Отбор.Отправитель.Установить(ОтправительСсылка);
выборка.прочитать();
если выборка.выбран() тогда
    Для каждого стр из выборка цикл
         стр.Прочитан = Истина;
    КонецЦикла;
    выборка.Записать();

конецесли;
4 Лефмихалыч
 
09.10.13
17:19
какой нахрен отбор? Почитай документацию про РегистрСведенийНаборЗаписей и про РегистрСведенийМенеджерЗаписей, не делай мозг. Там точно такие же русские буквы, какие ты тут получишь, только все сразу по полочкам, объективно и понятно
5 Эльчин
 
09.10.13
17:20
выборка = РегистрыСведений.Сообщения.СоздатьМенеджерЗаписи();
    выборка.Получатель=ПолучательСсылка;
    выборка.Отправитель=ОтправительСсылка;
    выборка.Прочитан=Ложь;
    выборка.Прочитать();
    если выборка.выбран() тогда
        выборка.Прочитан = Истина;
        выборка.Записать();
    конецесли;

точка остановка даже туда не поподает точка остановка
6 Лефмихалыч
 
09.10.13
17:20
(3) гражданин является гражданином другой страны и носителем другого языка. Надо делать скидку штоле...
7 Лефмихалыч
 
09.10.13
17:21
(5) чо ты хочешь сделать? Скажи простыми словами.
8 Ellowis
 
09.10.13
17:22
(6) согласен, но новые темы зачем создавать?

(7) он хочет выбрать из регистра записи по 2 измерениям (при общем количестве измерений 5) и изменить этот набор записей.
9 Эльчин
 
09.10.13
17:29
(8) да. выбрать из регистра записи по 2 измерениям (при общем количестве измерений 5) и изменить этот набор записей. точно
10 Ellowis
 
09.10.13
17:29
(9) см (3)
11 Эльчин
 
09.10.13
17:31
(10) Ошибка:
Ошибка при вызове метода контекста (Записать)
        выборка.Записать();
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: Сообщения: Федоров Борис Михайлович, Нет, 08.10.2013 16:32:34, Да, Федоров Борис Михайлович (Регистр сведений: Сообщения; Номер строки: 1; Поле: Прочитан)
12 Эльчин
 
09.10.13
17:34
(11) не разрешает изменить значению измерения
13 Лефмихалыч
 
09.10.13
17:38
только не делай так РегистрыСведений.Сообщения.СоздатьНаборЗаписей().Записать()
14 Эльчин
 
09.10.13
17:39
ей, ребята, что делать? вы русские если не знаете, а что делать мне?
15 Ellowis
 
09.10.13
17:40
(11) если ты ставишь отбор по тому полю которое собрался изменять, то лучше сделать так:

Запрос = Новый Запрос;
Запрос.Текст = "Выбрать * из РегистрСведений.Сообщения КАК Сообщения
где
Сообщения.Получатель=&ПолучательСсылка
и Сообщения.Отправитель=&ОтправительСсылка
и Сообщения.Прочитан = Ложь";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаЗапроса = РезультатЗапроса.Выбрать();
Пока ВыборкаЗапроса.Следующий() Цикл
МенеджерЗаписи = РегистрыСведений.Сообщения.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ВыборкаЗапроса);
МенеджерЗаписи.Прочитать();
Если МенеджерЗаписи.Выбран() Тогда
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ВыборкаЗапроса);
МенеджерЗаписи.Прочитан  = Истина;
МенеджерЗаписи.Записать(Истина);
КонецЕсли;
КонецЦикла;
16 Лефмихалыч
 
09.10.13
17:40
(14) ФИгню делаешь, фигня получается. В наборе записей нельзя менять значения измерений, по которым установил отбор.

Могу порекомендовать только книгу почитать "Профессиональная разработка", там подробно описано, как работать с регистрами сведений.
17 Ellowis
 
09.10.13
17:41
+(15)
перед строкой
РезультатЗапроса = Запрос.Выполнить();

Вставь еще строки

Запрос.УстановитьПараметр("ПолучательСсылка", ПолучательСсылка);
Запрос.УстановитьПараметр("ОтправительСсылка", ОтправительСсылка);
18 Эльчин
 
09.10.13
17:41
(13) делаю так:
выборка = РегистрыСведений.Сообщения.СоздатьНаборЗаписей();
выборка.Отбор.Получатель.Установить(ПолучательСсылка);
выборка.Отбор.Отправитель.Установить(ОтправительСсылка);
выборка.Отбор.Прочитан.Установить(Ложь);
выборка.Прочитать();
если выборка.выбран() тогда
Для каждого стр из выборка цикл
    стр.Прочитан = Истина;
    выборка.Записать();
КонецЦикла;
конецесли;
19 Эльчин
 
09.10.13
17:46
(15) спасибо большое. это другое дело. маладец тебе. а то с утра уже меня надаели с ошибочными вариантами :). спасибо всем за внимание
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший