• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Заполнение Эелемента Справочника В 1с 8

  • Автор темы Paume
  • Дата начала
P

Paume

Добрый день!
Подскажите, пожалуйста, есть ли в 1С 8 какая-либо процедура, которая заполняет один элемент справочника на основнии другого? Или нужно ручками писать в коде присвоение на каждый реквизит?
 
Д

Дайнеко

Например у меня реквизиты нового эл-та спр-ка заполняются автоматом от Родителя
Код:
//----------------------------------------------------------
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

Если ЗначениеЗаполнено(ДанныеЗаполнения) Тогда
КопироватьРеквизитыРодителя(ЭтотОбъект, ДанныеЗаполнения.Родитель);
КонецЕсли;

КонецПроцедуры		// ОбработкаЗаполнения


//----------------------------------------------------------
//		В новый элемент из вышестоящего родителя
Процедура КопироватьРеквизитыРодителя(П_Элемент, П_Родитель, Кроме="") Экспорт
Для Каждого Поле Из П_Элемент.Метаданные().Реквизиты Цикл
Если НЕ Поле.Использование = Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляГруппыИЭлемента Тогда
Продолжить;
КонецЕсли;
Имя = Поле.Имя;
Если Входит(Кроме, Имя) Тогда
Продолжить;
КонецЕсли;

ЗначениеРодителя = П_Родитель[Имя];
Если НЕ ЗначениеЗаполнено(ЗначениеРодителя) Тогда
Продолжить; 
КонецЕсли;

П_Элемент[Имя] = ЗначениеРодителя;
КонецЦикла;
КонецПроцедуры	 // КопироватьРеквизитыРодителя
 
D

Darlock

Доброго времени суток.
Еще есть вариант использовать метод "ЗаполнитьЗначенияСвойств" (подробнее в СП).
 
P

Paume

Скопировать() у меня создавало новый элемент, а мне нужно было перезаполнить старый.
Помогло ЗаполнитьЗначенияСвойств, Darlock, спасибо вам!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!