Найти в Дзене
Программист 1С

Программируем в 1С 8.3. Регистры Сведений в 1С 8.3.Работа с ними.

_______________________________________________________________ Код для копирования: · Как отобрать записи из непериодического независимого регистра сведений по нескольким измерениям и удалить их // Допустим в ВашемРегистреСведений 2 Измерения : // 1Измерение=Номенклатура,2Измерение =Продукция и один Ресурс = Количество НаборЗаписей = РегистрыСведений.ИмяВашегоРегистраСведений.СоздатьНаборЗаписей(); // Объявляем переменные: ВыбраннаяНоменклатура = Справочники.Номенклатура.НайтиПоКоду("00000095981"); ВыбраннаяПродукция = Справочники.Номенклатура.НайтиПоКоду("00000012552"); //____ОТОБРАТЬ ЗАПИСИ РЕГИСТРА СВЕДЕНИЙ ПО НЕСКОЛЬКИМ ИЗМЕРЕНИЯМ_____________ НаборЗаписей.Отбор.Номенклатура.Установить(ВыбраннаяНоменклатура); НаборЗаписей.Отбор.Продукция.Установить(ВыбраннаяПродукция); //____УДАЛИТЬ ЗАПИСИ ОТБОРА__________________________________________________ // Удаляем отобранные выше строки из Вашего регистра сведений: НаборЗаписей.Записать(); _________________________________________________

_______________________________________________________________

Код для копирования:

· Как отобрать записи из непериодического независимого регистра сведений по нескольким измерениям и удалить их

// Допустим в ВашемРегистреСведений 2 Измерения :

// 1Измерение=Номенклатура,2Измерение =Продукция и один Ресурс = Количество

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

// Объявляем переменные:

ВыбраннаяНоменклатура = Справочники.Номенклатура.НайтиПоКоду("00000095981");

ВыбраннаяПродукция = Справочники.Номенклатура.НайтиПоКоду("00000012552");

//____ОТОБРАТЬ ЗАПИСИ РЕГИСТРА СВЕДЕНИЙ ПО НЕСКОЛЬКИМ ИЗМЕРЕНИЯМ_____________

НаборЗаписей.Отбор.Номенклатура.Установить(ВыбраннаяНоменклатура);

НаборЗаписей.Отбор.Продукция.Установить(ВыбраннаяПродукция);

//____УДАЛИТЬ ЗАПИСИ ОТБОРА__________________________________________________

// Удаляем отобранные выше строки из Вашего регистра сведений:

НаборЗаписей.Записать();

_______________________________________________________________

-2

Код для копирования:

_________________________________________________________________________________

· Как добавить новую запись в непериодический независимый регистр сведений

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

// Внимание!!! Обязательно нужно делать отбор, а иначе после записи

// все данные регистра удалятся и останется только одна добавленная запись

НаборЗаписей.Отбор.Номенклатура.Установить(ВыбраннаяНоменклатура);

НаборЗаписей.Отбор.Продукция.Установить(ВыбраннаяПродукция);

//Добавляем новую запись в регистр сведений

НоваяЗапись = НаборЗаписей.Добавить();

НоваяЗапись.Номенклатура = ВыбраннаяНоменклатура;

НоваяЗапись.Продукция = ВыбраннаяПродукция;

НоваяЗапись.Количество = 78;

// Записываем новую строку в регистр сведений

НаборЗаписей.Записать();

_______________________________________________________________

-3

_______________________________________________________________

Код для копирования:

· Как отобрать, прочитать, изменить записи в непериодическом независимом регистре сведений

ВыбраннаяПродукция = Справочники.Номенклатура.НайтиПоКоду("00000013452");

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

НаборЗаписей.Отбор.Продукция.Установить(ВыбраннаяПродукция);

// Прочитать записи из регистра

НаборЗаписей.Прочитать();

// Обойти записи регистра

Для Каждого Запись Из НаборЗаписей Цикл

Сообщить("Номенклатура =" +Строка(Запись.Номенклатура) + "Продукция= " + Строка(Запись.Продукция) +"Количество= "+ Строка(Запись.Количество));

// Как изменить запись регистра в зависимости от условия

// (Для примера, изменим в нашем регистре сведений у продукции одну номенклатуру на другую с другим

// количеством)

Если Запись.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00000000123")тогда

Запись.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00000000325");

Запись.Количество = 7;

КонецЕсли;

КонецЦикла;

НаборЗаписей.Записать();

_______________________________________________________________

-4

_______________________________________________________________

Код для копирования:

______________________________________________________________________________

· Как отобрать, прочитать, изменить записи в регистре сведений по регистратору

(регистр сведений, подчиненный регистратору)

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

ВыбранныйРегистратор = СсылкаВыбранныйДокумент;

НаборЗаписей.Отбор.Регистратор.Установить(ВыбранныйРегистратор);

// Прочитать записи из регистра

НаборЗаписей.Прочитать();

// Обход всех записей регистра

Для Каждого Запись Из НаборЗаписей Цикл

Сообщить("Номенклатура =" +Строка(Запись.Номенклатура) + "Продукция= " + Строка(Запись.Продукция) +"Количество= "+ Строка(Запись.Количество));

// Как изменить запись регистра в зависимости от условия

Если Запись.Номенклатура=Справочники.Номенклатура.НайтиПоКоду("00000000123")тогда

Запись.Количество = 55;

КонецЕсли;

КонецЦикла;

НаборЗаписей.Записать();

_______________________________________________________________

-5

_______________________________________________________________

Код для копирования:

_________________________________________________________________________________

· Как выгрузить регистр сведений в таблицу значений

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

НаборЗаписей.Отбор.Номенклатура.Установить(ВыбраннаяНоменклатура);

НаборЗаписей.Отбор.Продукция.Установить(ВыбраннаяПродукция);

// Прочитать записи из регистра

НаборЗаписей.Прочитать();

// Как выгрузить все записи регистра сведений в таблицу значений

ТаблицаЗначений = НаборЗаписей.Выгрузить();

// Как выгрузить коронку регистра сведений в массив

ВашМассив = Новый Массив;

ВашМассив = НаборЗаписей.ВыгрузитьКолонку("Номенклатура");

_________________________________________________________________________________

· Как удалить все записи из регистра сведений(полная очистка регистра сведений)

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

НаборЗаписей.Записать();

_________________________________________________________________________________

// 2-й способ (не программный)

Открыть 1С àРежим: Предприятие

В меню найти нужный регистр сведений

С помощью кнопок меню отобрать в регистре нужные строки (можно по одному или по нескольким измерениям)

Выделить все отобранные строки сочетанием клавиш Ctrl-A

Нажать кнопку Delete

_______________________________________________________________

Фото Pixabay
Фото Pixabay