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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

КонецЕсли;

КонецЦикла;

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

КонецЦикла;

Возврат НаборЗаписей;
КонецФункции
Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 39635
 +1 
Распечатать
Возможно, вас также заинтересует
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
Блокировка записей, невозможно изменить или удалить из регистра. Конфликт блокировок MS SQL + 1C 4
При попытке удалить запись из регистра сведений - получаю ошибку: она заблокирована, ошибка блокировок и т.д. Отключил всех пользователей, перезапустил сервер, пробую удалить - опять ошибка блокировки :( Путем тестов было вяснено, что проблема
Ввод данных по командировкам в программе ЗУП 0
Ввод сведений о командировках в программе 1С: Зарплата и управление персоналом 8 (ред.30) осуществляется в Разделе Кадры - Все кадровые документы - Создать - Командировка Откроется документ: Ввод сведений о командировках в программ
Ввод по строке - поиск по первым символам или в любом месте наименования 6
При разработке конфигурации, для упрощении ввода документов потребовалось настроить ввод номенклатуры по совпадению любой части наименования! В 1С 8.3 по умолчанию настройки справочника номенклатуры такие: При такой настройке, механизм поиска в
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.