• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Запись значения в атрибут

  • Автор темы Gudzon
  • Дата начала
G

Gudzon

Приветствую вас!
При выполнении очередной задачи у меня возникли проблемы ...

В документе есть атрибут "Основание" он является ссылкой на справочник "Основания"

Я знаю что если атрибут является строкой то значение этого атрибута можно забить программно таким способом :

Документ=СоздатьОбъект("Документ."+вид);
Если Документ.НайтиПоНомеру(ном,НачГода(ТекущаяДата()),)=1 Тогда
Документ.УстановитьАтрибут("Основание",осн);
Документ.Записать();
КонецЕсли;

А как сделать это для атрибута являющейся ссылкой ?
 
P

puh14

Скорее всего через
Осн = создатьОбъект(ну что там надо)

например

Документ=СоздатьОбъект("Документ."+вид);
Если Документ.НайтиПоНомеру(ном,НачГода(ТекущаяДата()),)=1 Тогда
Основание = СоздатьОбъект(Метаданные.Документ(вид).РеквизитШапки("Основание").Тип);
Осн.Найти(что надо).// тут можно еслей наделать на разные типы данных, и найти соответственно с разным синтаксисом
Документ.УстановитьАтрибут("Основание",осн);
Документ.Записать();
КонецЕсли;

Если атрибут ссылка, то и надо скармливать ссылку. А как ты её сделаешь - способы разные есть.
 
G

Gudzon

Большое спасибо, все работает!!!!

Документ=СоздатьОбъект("Документ."+вид);

Если Документ.НайтиПоНомеру(ном,НачГода(ТекущаяДата()),)=1 Тогда
Основание = СоздатьОбъект("Справочник.ОснованияПоКассе");

Если (Основание.НайтиПоНаименованию(Осн,,1) = 1) и (пустаястрока(осн)=0) Тогда
Документ.УстановитьАтрибут("Основание",Основание.ТекущийЭлемент());
Документ.Записать();
КонецЕсли;

КонецЕсли;
 
Мы в соцсетях:

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