|
Изменить реквизит табличной части | ☑ | ||
---|---|---|---|---|
0
sportoman
17.12.13
✎
21:51
|
Сильно не пинайте, только осваиваю 1С и стоит задача изменить реквизит табличной части Товары документа ПриходнаяНакладная. Так вот, при попытке изменения выдает (Поле объекта недоступно для записи (Наименование)). Самое интересное, что реквизиты самого документа меняются без проблем. Соответствие типов проверил - совпадают. Вот код:
МассивДокументов=Метаданные.Документы; Для каждого СтрМас Из МассивДокументов Цикл Если СтрМас.Имя = "ПриходнаяНакладная" Тогда ДокТип=СтрМас.Имя; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | "+ДокТип+".Ссылка |ИЗ | Документ."+ДокТип+" КАК "+ДокТип; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Докум = Выборка.Ссылка.ПолучитьОбъект(); Для каждого СтрокаУслуги Из Докум.Товары Цикл КодТов=СтрокаУслуги.Номенклатура.Код; СсылкаНайдТовараНоменкл= Справочники.Номенклатура.НайтиПоКоду(КодТов); ОбъектНайдТовараНоменкл=СсылкаНайдТовараНоменкл.ПолучитьОбъект(); Докум.Товары[СтрокаУслуги.НомерСтроки-1].ЕдиницаИзмерения.Наименование=ОбъектНайдТовараНоменкл.ОсновнаяЕдиницаИзмерения.Наименование; Докум.Записать(РежимЗаписиДокумента.Проведение); КонецЦикла; КонецЦикла; КонецЕсли; КонецЦикла; |
|||
1
sportoman
17.12.13
✎
21:52
|
Что не так делаю?
|
|||
2
sportoman
17.12.13
✎
21:53
|
Ошибка в этой строке
Докум.Товары[СтрокаУслуги.НомерСтроки-1].ЕдиницаИзмерения.Наименование=ОбъектНайдТовараНоменкл.ОсновнаяЕдиницаИзмерения.Наименование; |
|||
3
Ork
17.12.13
✎
21:59
|
(2) По ссылке - можно прочитать реквизиты. Но изменить их можно только у объекта.
|
|||
4
Галахад
гуру
17.12.13
✎
21:59
|
Что сделать-то надо?
В строке изменить единицу измерения? Или у единицы измерения изменить наименование? |
|||
5
Мимохожий Однако
17.12.13
✎
22:02
|
Сначала получи объект, а потом меняй
|
|||
6
sportoman
17.12.13
✎
23:17
|
(5) Вот же он получен - Докум = Выборка.Ссылка.ПолучитьОбъект();
Я же пишу, что реквизиты документа изменяются без проблем, а вот ТЧ никак. (4) Да нужно изменить этот реквизит |
|||
7
Ork
17.12.13
✎
23:20
|
(6) А казалось - чего проще взять и отладчиком посмотреть какого типа вот это вот : Докум.Товары[СтрокаУслуги.НомерСтроки-1].ЕдиницаИзмерения
|
|||
8
sportoman
17.12.13
✎
23:20
|
ЕдиницаИзмерения - реквизит ТЧ Товары Документа ПриходнаяНакладная и его нужно изменить
|
|||
9
Одесса
17.12.13
✎
23:23
|
Лучше спросить здесь: http://govnokod.ru/1c
|
|||
10
sportoman
17.12.13
✎
23:23
|
(7) Тип - Справочник.Ссылка.Единицы.Измерения
|
|||
11
Ork
17.12.13
✎
23:25
|
(10) "Справочник.Ссылка" - о чем нибудь говорит?
Или вам еще не разу не сказали - сначала получить объект - потом менять реквизиты? |
|||
12
Ork
17.12.13
✎
23:26
|
+ (11) И это... "Единицы.Измерения" скорее всего на экране выглядит без точки. Зачем вы сюда точку нарисовали?
|
|||
13
sportoman
17.12.13
✎
23:27
|
(11) Какой именно получить - этот получен Докум = Выборка.Ссылка.ПолучитьОбъект();
|
|||
14
sportoman
17.12.13
✎
23:27
|
(12) ЕдиницыИзмерения - ошибся
|
|||
15
Толич
17.12.13
✎
23:37
|
Докум.Товары[СтрокаУслуги.НомерСтроки-1].ЕдиницаИзмерения.Наименование=ОбъектНайдТовараНоменкл.ОсновнаяЕдиницаИзмерения.Наименование;
Если Вы хотите изменить что-то в строке, то у вас уже есть "СтрокаУслуги" в которой и меняйте. Докум.Товары[СтрокаУслуги.НомерСтроки-1].ЕдиницаИзмерения = СтрокаУслуги.ЕдиницаИзмерения А ошибка ваша заключается в том, что в рассматриваемой строке, вы обращаетесь к ссылке ЕдиницаИзмерения и пытаетесь поменять в ней реквизит "Наименование". Для этого необходимо получить объект ссылки ЕдиницаИзмерения и в ней уже менять наименование. |
|||
16
sportoman
17.12.13
✎
23:43
|
(15) Спасибо, все получилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |