helpf.pro
Регистрация
 0 
Распечатать

Универсальные функции работы с регистрами сведений

Разработка любой конфигурации потребует использования регистров сведений! Чтобы упростить запись и чтение данных в регистре сведений, Вы можете использовать универсальные функции:

Код 1C v 8.х
 // Добавляет одну запись в регистр сведений по переданным значениям структуры
//
// Параметры:
//  СтруктураЗаписи - Структура - структура, по значениям которой необходимо создать набор записей и заполнить этот набор
//  ИмяРегистра     - Строка - имя регистра сведений, в который необходимо добавить запись
// 
Процедура ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, Знач ИмяРегистра, Загрузка = Ложь) Экспорт

НаборЗаписей = СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, ИмяРегистра);

// добавляем только одну запись в новый набор записей
НоваяЗапись = НаборЗаписей.Добавить();

// заполняем значения свойств записи из переданной структуры
ЗаполнитьЗначенияСвойств(НоваяЗапись, СтруктураЗаписи);

НаборЗаписей.ОбменДанными.Загрузка = Загрузка;

// записываем набор записей
НаборЗаписей.Записать();

КонецПроцедуры


// Обновляет запись в регистр сведений по переданным значениям структуры
//
// Параметры:
//  СтруктураЗаписи - Структура - структура, по значениям которой необходимо создать менеджер записи и обновить запись
//  ИмяРегистра     - Строка - имя регистра сведений, в котором необходимо обновить запись
// 
Процедура ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, Знач ИмяРегистра) Экспорт

МетаданныеРегистра = Метаданные.РегистрыСведений[ИмяРегистра];

// создаем менеджер записи регистра
МенеджерЗаписи = РегистрыСведений[ИмяРегистра].СоздатьМенеджерЗаписи();

// устанавливаем отбор по измерениям регистра
Для Каждого Измерение ИЗ МетаданныеРегистра.Измерения Цикл

// если задано значение в структуре, то отбор устанавливаем
Если СтруктураЗаписи.Свойство(Измерение.Имя) Тогда

МенеджерЗаписи[Измерение.Имя] = СтруктураЗаписи[Измерение.Имя];

КонецЕсли;

КонецЦикла;

// считываем запись из базы данных
МенеджерЗаписи.Прочитать();

// заполняем значения свойств записи из переданной структуры
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураЗаписи);

// записываем менеджер записи
МенеджерЗаписи.Записать();

КонецПроцедуры


// Удаляет набор записей в регистре по переданным значениям структуры
//
// Параметры:
//  СтруктураЗаписи - Структура - структура, по значениям которой необходимо удалить набор записей
//  ИмяРегистра     - Строка - имя регистра сведений, в котором необходимо удалить набор записей
// 
Процедура УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, ИмяРегистра, Загрузка = Ложь) Экспорт

НаборЗаписей = СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, ИмяРегистра);

НаборЗаписей.ОбменДанными.Загрузка = Загрузка;

// записываем набор записей
НаборЗаписей.Записать();

КонецПроцедуры

// Создает набор записей регистра сведений по переданным значениям структуры. Добавляет одну запись в набор
//
// Параметры:
//  СтруктураЗаписи - Структура - структура по значениям которой необходимо создать набор записей и заполнить этот набор
//  ИмяРегистра     - Строка - имя регистра сведений
// 
Функция СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, ИмяРегистра) Экспорт

МетаданныеРегистра = Метаданные.РегистрыСведений[ИмяРегистра];

// создаем набор записей регистра
НаборЗаписей = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей();

// устанавливаем отбор по измерениям регистра
Для Каждого Измерение ИЗ МетаданныеРегистра.Измерения Цикл

// если задано значение в структуре, то отбор устанавливаем
Если СтруктураЗаписи.Свойство(Измерение.Имя) Тогда

НаборЗаписей.Отбор[Измерение.Имя].Установить(СтруктураЗаписи[Измерение.Имя]);

КонецЕсли;

КонецЦикла;

Возврат НаборЗаписей;
КонецФункции
Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 6496
 0 
Распечатать
Возможно, вас также заинтересует
1C: Enterprise Development Tools 35
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 2
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р,...
Cклонения по падежам 4
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) ...
Cообщение: "Не удалось удалить чеки ККМ!" 2
Пользователь с правами Администратор ККМ проводит Закрытие кассовой смены (Z). Выходит сообщение: " Не удалось удалить чеки ККМ!" ФР печатает Z -отчет, но Отчет о рознчничных продажах не формируется. Необходимо дать...
Google maps, поиск оптимального маршрута 2
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; *...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.