Имя: Пароль:
1C
1С v8
Программное изменение наименования элемента справочники
,
0 Григорополисец
 
26.08.22
15:52
Уважаемые форумчане, ни раз мне уже помогавшие!

Вот у меня, казалось бы, элементарный вопрос. Как программно изменить стандартный реквизит элемента справочника?
В общем, предыстория. На предприятии есть уже весьма старенькая 1С Бухгалтерия 8.3 (8.3.10.2667) 2017 года для целей управленческого учёта. В ней когда-то, ещё до меня, был создан справочник "Объекты направления". По сути, он очень похож на справочник "Подразделения", но имеет свои особенности, и поэтому он отдельный.

Недавно выяснилось, что ситуация зашла в тупик. Понасоздавали кто что горазд и путаются. Теперь меня попросили это дело выровнять, присвоив отдельным элементам такое же наименование, что и у соответствующего подразделения. А оставшимся "без пары" добавить к началу наименования дописку "не исп." И вот тут самое интересное.

Скажу сразу: в справочнике "Объекты направления" реквизит "Наименование" стандартный.

Сам код, который, пожалуй, трудным не является, выглядит вот так.

Элемент_ОбъектаНапр_Из_ПравойКолонки_ТЧ = Справочники.ОбъектыНаправления.ПолучитьПоНаименованию("Ла-ла-ла", Истина);
Элемент_ОбъектаНапр_Из_ПравойКолонки_ТЧ.ПолучитьОбъект();

Элемент_ОбъектаНапр_Из_ПравойКолонки_ТЧ.Наименование = Подразделение_Из_ЛевойКолонки_ТЧ.Наименование;
Элемент_ОбъектаНапр_Из_ПравойКолонки_ТЧ.Записать();

Вот тут выдаётся ошибка "Поле объекта недоступно для записи (Наименование)".

Пробовал, полазив по форумам, добавить непосредственно перед строкой переименования моё любимое.
Элемент_ОбъектаНапр_Из_ПравойКолонки_ТЧ.ОбменДанными.Загрузка = Истина;

Но итог уже с другой ошибкой: Поле объекта не обнаружено (ОбменДанными)!

Я ещё полазил по форумам. И на этом всё! Пишу вам в каком-то недоумении! Ведь решение, как всегда, очевидное, но только я его не могу найти!

Буду очень сильно признателен за ваши ответы и мнения!
1 Kassern
 
26.08.22
15:54
(0) "ПолучитьПоНаименованию" - это что, новый метод какой-то платформенный?
2 Beduin
 
26.08.22
15:55
Ты в ссылку пишешь
3 Григорополисец
 
26.08.22
15:55
(1) Прошу прощения!!! Описка! Писал по памяти. НайтиПоНаименованию() конечно же!!!
4 Kassern
 
26.08.22
15:56
Откройте отладку и проверьте типы данных. С ходу у вас ошибка. Вы получаете объект, но не присваиваете его какой либо переменной.
5 МКК
 
26.08.22
15:56
+(2)
6 Kassern
 
26.08.22
15:56
Поэтому вы пытаетесь ссылку записать, а записывать можно только объекты
7 Kassern
 
26.08.22
15:57
ТвойОбъект=Элемент_ОбъектаНапр_Из_ПравойКолонки_ТЧ.ПолучитьОбъект();
8 Kassern
 
26.08.22
15:57
И вот это дело - прям кровь из глаз "Элемент_ОбъектаНапр_Из_ПравойКолонки_ТЧ"
9 Григорополисец
 
26.08.22
16:00
(2) Подождите, так я же вроде прописал в коде

Элемент_ОбъектаНапр_Из_ПравойКолонки_ТЧ.ПолучитьОбъект();

Разве после этого я не выхожу на редактирование самого объекта?
10 Kassern
 
26.08.22
16:01
(9) нет, это не клюшки.
11 Kassern
 
26.08.22
16:01
В отладке вы можете прекрасно в этом убедиться
12 Григорополисец
 
26.08.22
16:16
(11) Да. совершенно верно!

А помогла конструкция

Объект = Элемент_ОбъектаНапр_Из_ПравойКолонки_ТЧ.ПолучитьОбъект();
Объект.Наименование = Подразделение_Из_ЛевойКолонки_ТЧ.Наименование;
Объект.Записать();

Даже стыдно теперь, что не разобрался!

Сердечно благодарю за то, что помогли!!!
13 rudnitskij
 
26.08.22
19:25
(12) не ждал вопросов такого уровня сложности в 22м году)
14 mikecool
 
26.08.22
20:17
(12) не используй Объект, УФ тебя поругают