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

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

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

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


// Обновляет запись в регистр сведений по переданным значениям структуры
//
// Параметры:
//  СтруктураЗаписи - Структура - структура, по значениям которой необходимо создать менеджер записи и обновить запись
//  ИмяРегистра     - Строка - имя регистра сведений, в котором необходимо обновить запись
// 
Процедура ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, Знач ИмяРегистра) Экспорт
	
	МетаданныеРегистра = Метаданные.РегистрыСведений[ИмяРегистра];
	
	// создаем менеджер записи регистра
	МенеджерЗаписи = РегистрыСведений[ИмяРегистра].СоздатьМенеджерЗаписи();
	
	// устанавливаем отбор по измерениям регистра
	Для Каждого Измерение ИЗ МетаданныеРегистра.Измерения Цикл
		
		// если задано значение в структуре, то отбор устанавливаем
		Если СтруктураЗаписи.Свойство(Измерение.Имя) Тогда
			
			МенеджерЗаписи[Измерение.Имя] = СтруктураЗаписи[Измерение.Имя];
			
		КонецЕсли;
		
	КонецЦикла;
	
	// считываем запись из базы данных
	МенеджерЗаписи.Прочитать();
	
	// заполняем значения свойств записи из переданной структуры
	ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураЗаписи);
	
	// записываем менеджер записи
	МенеджерЗаписи.Записать();
	
КонецПроцедуры


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

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