Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 08:57

Как изменить запись в регистре сведений

Автор mashencev_anton, 19 мар 2015, 12:35

0 Пользователей и 1 гость просматривают эту тему.

mashencev_anton

Привет всем. подскажите пожалуйста как правильно ИЗМЕНИТЬ запись в РС.

k_aleks80

С регистрами нужно действовать аккуратно, обязательно ставьте отбор!, без него все похерится.
Чтобы внести изменения нужно, создать набор записей, установить отбор, прочитать их, сделать нужные изменения, записать.
Пример:
НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
НаборЗаписей.отбор.объект.Установить(СсылкаНаКонтрагента);
НаборЗаписей.Прочитать();

Для каждого ЗаписьНабора из НаборЗаписей Цикл
    ЗаписьНабора.ИмяПоляРегистра = НовоеЗначение;
КонецЦикла;

НаборЗаписей.Записать();

Нужно помнить что для отбора по измерению, он должен быть индексируемым.

mashencev_anton

Цитата: k_aleks80 от 19 мар 2015, 13:16НаборЗаписей.отбор.объект.Установить(СсылкаНаКонтрагента);
Если не сложно, можно чуть подробнее про отбор.Просто у меня в регистре есть три даты, два документа, справочник и перечисление. мне нужно изменить Перечисление("статус"), можно ли сделать отбор только по одному документу??? Делаю это обработкой в ТЧ которой я загружаю нужные мне документы с определенным статусом.Изменяю в ней статусы доков и перезаписываю


SkyNetYar

Дак куча обработок готовых есть на эту тему,или надо самому ?

mashencev_anton


k_aleks80

Из СП, про элемент отбора:
ЦитироватьЭлементОтбора (FilterItem)
Свойства:

ВидСравнения (ComparisonType)
Значение (Value)
ЗначениеПо (ValueTo)
ЗначениеС (ValueFrom)
Имя (Name)
Использование (Use)
Представление (Presentation)
ПутьКДанным (DataPath)
ТипЗначения (ValueType)

Методы:

Установить (Set)

Описание:

Используется для управления параметрами отбора по одному элементу отбора.
Объект предназначен для установки условия отбора по:
значению поля списка;
критерию отбора;
графе журнала (для журнала документов);
виду документа (для журнала документов).
Объект используется в качестве элемента коллекции Отбор для установки фильтрации в различных выборках, наборах записей и визуальных представлениях.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Вот тебе еще пример:     НаборКурсов = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
    Доллар = Справочники.Валюты.НайтиПоНаименованию("USD");
    НаборКурсов.Отбор.Валюта.Установить(Доллар);
    НаборКурсов.Отбор.Период.Установить(ТекущаяДата());
    НовЗапись = НаборКурсов.Добавить();
    НовЗапись.Валюта = Доллар;
    НовЗапись.Период = ТекущаяДата();
    НовЗапись.Курс = 27;
    НовЗапись.Кратность = 1;
    НаборКурсов.Записать();


Дальше - только разбираться еа конкретном твоем регистре ... учись

mashencev_anton

Цитата: k_aleks80 от 19 мар 2015, 14:35НаборКурсов = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
    Доллар = Справочники.Валюты.НайтиПоНаименованию("USD");
    НаборКурсов.Отбор.Валюта.Установить(Доллар);
    НаборКурсов.Отбор.Период.Установить(ТекущаяДата());
    НовЗапись = НаборКурсов.Добавить();
    НовЗапись.Валюта = Доллар;
    НовЗапись.Период = ТекущаяДата();
    НовЗапись.Курс = 27;
    НовЗапись.Кратность = 1;
    НаборКурсов.Записать();

Такой вариант работает...но не совсем так как хотелось бы. он добавляет новую запись не полной...не заполнены некоторые измерения

cska-fanat-kz

Цитата: mashencev_anton от 19 мар 2015, 14:48но не совсем так как хотелось бы. он добавляет новую запись не полной

см. первый пример.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск