Содержание:
1. Создание записи в регистре сведений
2. Изменение записи в регистре сведений
3. Как удалить записи из регистра сведений
4. Рекомендации по работе с регистрами сведений
Регистры сведений в 1С используются для хранения данных, привязанных к измерениям и ресурсам. Для управления ими программно (создание, изменение и удаление записей) применяется Менеджер записи регистра сведений. Рассмотрим основные действия:
1. Создание записи в регистре сведений
Для добавления новой записи используется метод НоваяЗапись.
Пример:
Процедура ДобавитьЗаписьВРегистр()
// Создаем объект записи регистра сведений
ЗаписьРегистра = РегистрыСведений.ИмяРегистра.НоваяЗапись();
// Заполняем измерения
ЗаписьРегистра.Измерение1 = Значение1;
ЗаписьРегистра.Измерение2 = Значение2;
// Заполняем ресурсы
ЗаписьРегистра.Ресурс1 = ЗначениеРесурса1;
ЗаписьРегистра.Ресурс2 = ЗначениеРесурса2;
// Заполняем реквизиты (если есть)
ЗаписьРегистра.Реквизит1 = ЗначениеРеквизита1;
// Сохраняем данные
ЗаписьРегистра.Записать();
КонецПроцедуры;
Объяснение:
1. НоваяЗапись — создает объект для новой записи.
2. Поля регистра (измерения, ресурсы, реквизиты) заполняются значениями.
3. Метод Записать сохраняет данные в регистре сведений.
2. Изменение записи в регистре сведений
Для изменения записи сначала необходимо найти её. Используются:
● объект Запрос;
● метод НайтиПоКлючу (если у регистра есть уникальный ключ).
Пример:
Процедура ИзменитьЗаписьВРегистре()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| События.КонтактноеЛицо КАК КонтактноеЛицо,
| События.Акаунт КАК Акаунт,
| События.Период КАК Период
|ИЗ
| РегистрСведений.События КАК События
|ГДЕ
| События.Акаунт = &Акаунт";
Запрос.УстановитьПараметр("Акаунт",Справочники.КонтактныеЛица.НайтиПоНаименованию("Контактное Лицо"));
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Запись = РегистрыСведений.События.СоздатьМенеджерЗаписи();
Пока Выборка.Следующий() Цикл
Запись.Период = Выборка.Период;
Запись.Акаунт = Выборка.Акаунт;
Запись.КонтактноеЛицо = Выборка.КонтактноеЛицо;
Запись.Прочитать();
Если Запись.Выбран() Тогда
Запись.КонтактноеЛицо = Справочники.КонтактныеЛица.НайтиПоНаименованию("Контактное Лицо");
Запись.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры;
Объяснение:
Для изменения записи сначала необходимо найти её.
Делаем запрос в условие которого прописываем по какому пользователю мы будем искать записи, в запросе выбираем все измерения и период если у нас регистр периодический, после этого в цикле присвоим данные выборки измерениям иначе будет ошибка. С помощью метода «Выбран» проверяем считана ли запись и уже после этого присваиваем нужное контактное лицо.
3. Как удалить записи из регистра сведений
Далее будут приведены примеры по удалению записей в регистре.
Пример:
Удаление всех записей регистра путем создания пустого набора и его записи.
Набор=РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей();
Набор.Записать();
Удаление записей в регистре по измерению - контактное лицо
&НаСервере
Процедура УдалениеЗаписейНаСервере()
КонтактЛицо = Справочники.ИмяСправочника.НайтиПоНаименованию("Имя контактного лица");
Набор = РегистрыСведений. ИмяРегистра.СоздатьНаборЗаписей();
Набор.Отбор.КонтактноеЛицо.Установить(КонтактЛицо);
Набор.Прочитать();
Для шаг = 1 - Набор.Количество() По 0 Цикл
Запись = Набор[- шаг];
Набор.Удалить(- шаг);
КонецЦикла;
Набор.Записать();
КонецПроцедуры
Объяснение:
Делаем отбор по контактному лицу и перебираем этот набор в цикле.
В цикле выполняется удаление записей в наборе.
4. Рекомендации по работе с регистрами сведений
1. Проверка данных: Перед добавлением или изменением записи убедитесь в корректности заполнения всех измерений и ресурсов.
2. Логирование: Ведение журнала операций поможет отслеживать изменения в регистре.
3. Использование транзакций: Для массовых операций (изменения или удаления) используйте транзакции для сохранения целостности данных.
4. Оптимизация запросов: При обработке больших объемов данных используйте индексы и минимизируйте выборку.
Программное управление регистрами сведений в 1С предоставляет гибкие инструменты для работы с данными.
Грамотное использование методов позволяет автоматизировать работу с регистрами сведений, обеспечивая эффективную обработку и учет данных.
Специалист компании ООО "Кодерлайн"
Иван Ильичев