|
Как получить запись регистра и записать изменения |
☑ |
0
Asest
11.08.14
✎
12:15
|
Есть регистр сведений, у него 4 измерения.
Необходимо получить запись по этим измерениям, изменить значение ресурса и записать данные. В других ветках видел 2 варианта: запрос(позволяет получить значения ресурсов, но не изменить их) и методом РС.ИмяРС.Получить(<Период>,<Отбор>), этот метод возвращает структуру, содержащую значения ресурсов но не позволяет записать изменения. Регистр у меня не зависимый и не периодический.
Как мне зная измерения, записать новое значение ресурса?
|
|
1
ДенисЧ
11.08.14
✎
12:15
|
Создай набор записей, наложи отбор, прочитай, измени, запиши
|
|
2
ale-sarin
11.08.14
✎
12:15
|
Или менеджер записи.
|
|
3
Asest
11.08.14
✎
12:20
|
Рег=РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
Рег.Отбор.Измерение1.Установить("Значение1");
Рег.Отбор.Измерение2.Установить(Ссылка2);
Рег.Отбор.Измерение3.Установить("Значение3");
Рег.Прочитать();
Рег.Ресурс1 = Значение1;
Рег.Записать;
|
|
4
Asest
11.08.14
✎
12:20
|
В таком духе?
|
|
5
РенеДекарт
11.08.14
✎
12:21
|
(3) да, это в справке есть.
|
|
6
ale-sarin
11.08.14
✎
12:22
|
(3) Это набор записей. Поэтому перед установкой ресурса надо получить запись.
Например.
Рег[0].Ресурс1 = Значение1;
|
|
7
Asest
11.08.14
✎
12:23
|
Спасибо, буду пробовать
|
|
8
Крошка Ру
11.08.14
✎
12:23
|
(4) Вот в таком:
Курс = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
Курс.Валюта = ВыбВалюта;
Курс.Период = ТекущаяДата();
Курс.Прочитать();
Если Не Курс.Выбран() Тогда
Курс.Период = ТекущаяДата();
Курс.Валюта = ВыбВалюта;
Курс.Курс = 41.35;
Курс.Кратность = 1;
КонецЕсли;
Если ВвестиЧисло(Курс.Курс, "Введите курс на сегодня",15,5) Тогда
Курс.Записать();
КонецЕсли;
|
|
9
Крошка Ру
11.08.14
✎
12:24
|
(4) Или в таком:
КурсыВалют = РегистрыСведений.КурсыВалют;
НаборКурсов = КурсыВалют.СоздатьНаборЗаписей();
Доллар = Справочники.Валюты.НайтиПоНаименованию("USD");
НаборКурсов.Отбор.Валюта.Установить(Доллар);
НаборКурсов.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));
НаборКурсов.Прочитать();
Если НаборКурсов.Количество() = 0 Тогда
НовыйКурс = НаборКурсов.Добавить();
НовыйКурс.Валюта = Доллар;
НовыйКурс.Период = ТекущаяДата();
ИначеЕсли НаборКурсов.Количество() = 1 Тогда
НовыйКурс = НаборКурсов[0];
Иначе
Текст = "ru = ""Курс валюты задается один раз в день."";"
+ " en = ""Rate is set once a day.""";
Предупреждение(НСтр(Текст), 60);
Возврат;
КонецЕсли;
НовыйКурс.Курс = 31.44;
НовыйКурс.Кратность = 1;
НаборКурсов.Записать();
Сообщить(НСтр(ru = ""Курс ""; en = ""Rate "")
+ СокрЛП(НовыйКурс.Валюта)
+ НСтр(ru = "" на сегодня: "+"; en = "" for today: "")
+ НовыйКурс.Курс + НСтр(ru = "" руб.""; en = "" roub."""));
|
|
10
Крошка Ру
11.08.14
✎
12:24
|
(4) Лень в СП залезть?
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой