Имя: Пароль:
1C
 
Изменение наименования элемента справочника при изменении реквизита
0 Андрюха
 
20.12.05
09:04
Требуется динамически измениь наименование элемента справочника, при изменении одного из его реквизитов в форме (например, добавить в наименование ед.изм. в скобочках).

Казалось бы несложный вопрос, но как я не пытаюсь, 1С-ка постоянно ругается, что "поле объекта недоступно для записи (Наименование)". Поиск по форуму/сети в этом направлении ничего не дал. Помогите.

Процедура СправочникСписокТоварыПриИзменении(Элемент)
 Строка = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;
 НовоеНаименование = Строка.КраткоеНаименование + " (" + Строка.ЕдИзм + ")";

 // Попытка 1
 Строка.Наименование = НовоеНаименование;

 // Попытка 2
 Спр = Справочники.Товары.НайтиПоКоду(Строка.Код);
 Спр.Наименование = НовоеНаименование;
 Спр.Записать();

КонецПроцедуры
1 igork1966
 
20.12.05
09:06
(0) ИХМО: Получи _объект_(!) для изменения.
2 FLENDGER
 
20.12.05
09:11
Спр = Справочники.Товары.НайтиПоКоду(Строка.Код).ПолучитьОбъект();
//а просто НайтиПоКоду - возвращает только ссылку на объект
3 Андрюха
 
20.12.05
09:17
(1) (2) С ПолучитьОбъект() все прошло отлично. Спасибо! Но теперь новая ошибка - "Не удалось заблокировать запись" - это на Спр.Записать().
4 Андрюха
 
20.12.05
09:20
Хе. Надо эту процедуру было просто повесить на событие ПриОкончанииРедактирования(). Вопрос снят :)))
5 Андрюха
 
20.12.05
09:26
Но опять же - лишняя движуха по базе, как то - взять реквизит Код, найти объект, присвоить значение реквизиту и записать объект. Герр Волшебник сказал бы, что тут 4 запроса. По идее, строка и так редактируется, почему же нельзя "за компанию" поменять один из реквизитов (в данном случае Наименование)???
2 + 2 = 3.9999999999999999999999999999999...