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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

КонецЕсли;

КонецЦикла;

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

КонецЦикла;

Возврат НаборЗаписей;
КонецФункции
Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 6524
 0 
Распечатать
Возможно, вас также заинтересует
Cообщение: "Не удалось удалить чеки ККМ!" 2
Пользователь с правами Администратор ККМ проводит Закрытие кассовой смены (Z). Выходит сообщение: " Не удалось удалить чеки ККМ!" ФР печатает Z -отчет, но Отчет о рознчничных продажах не формируется. Необходимо дать...
Блокировка записей, невозможно изменить или удалить из регистра. Конфликт блокировок MS SQL + 1C 1
При попытке удалить запись из регистра сведений - получаю ошибку: она заблокирована, ошибка блокировок и т.д. Отключил всех пользователей, перезапустил сервер, пробую удалить - опять ошибка блокировки :( Путем тестов...
В учетной политике не указан вид тарифа страховых взносов. Как указать? 0
Создайте новую запись учетной политики с начала года - Например 01.01.2013 В учетной смотрите дату начала учетной политики. Поставьте дату начала года (например 01.01.13) закладка появиться должна. Проверьте Тариф страховых...
Ввод данных по командировкам в программе ЗУП 0
Ввод сведений о командировках в программе 1С: Зарплата и управление персоналом 8 (ред.30) осуществляется в Разделе Кадры - Все кадровые документы - Создать - Командировка Откроется документ: Ввод сведений о...
Выгрузка в PDF из 1С (Средствами OpenOffice) 0
Возникла задача отправлять счета почтой. PDFcreator не подошел поскольку не удалось вместить счет на одну страницу по ширине. Решил попробовать OpenOffice. Как сохранять в PDF нашел быстро, а вот как уместить счет на одну страницу...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.