|
Работа с Табличными Частями | ☑ | ||
---|---|---|---|---|
0
Azxcvbn
23.04.13
✎
14:08
|
Имеется Табличная часть ОС Документа с 3 колонками
ОС,Количество,Подразделение. Нужно проверить заполнена ли она? и Если да то добавить подразделение(Ибо оно по умолчанию не заполнено). Объект = Документы.Поступление.НайтиПоКоду(1).получитьОбъект(); Форма = Объект.ПолучитьФорму("ФормаДокумента"); ТекДанные = Форма.ЭлементыФормы.ОС.ТекущиеДанные; Если ЗначениеЗаполнено(ТекДанные.ОсновноеСредство) Тогда ТекДанные.МОЛОрганизации = МОЛ; ТекДанные.ПодразделениеОрганизации = Подразделение; Объект.Записать(); КонецЕсли; Выдает ошибку Значение не является значением объектного типа (ОсновноеСредство) Что я сделал не так? |
|||
1
Rie
23.04.13
✎
14:10
|
(0) Зачем форму-то открываешь?
Получил Объект - ну и смотри ему в табличную часть. А ТекущиеДанные - они только когда строка выбрана. А у тебя - никакая строка не выбрана, поскольку форма только что открыта. |
|||
2
Maxus43
23.04.13
✎
14:11
|
ну всё не так. Удаляй, и начинай сначала
|
|||
3
Maxus43
23.04.13
✎
14:13
|
ДокОбъект = Документы.Поступление.НайтиПоКоду(1).получитьОбъект();
Для каждого СтрокаТЧ Из ДокОбъект Цикл Если ЗначениеЗаполнено(СтрокаТЧ)... правда я не помню чтоб код у документов был Числовой... |
|||
4
Maxus43
23.04.13
✎
14:13
|
+ там пустая ссылка наверно
|
|||
5
Azxcvbn
23.04.13
✎
14:15
|
Объект.ОС.? а дальше как проверить что у него там, через выбоку?
|
|||
6
Azxcvbn
23.04.13
✎
14:16
|
выборки оказывается нету...
или можно непосредственно к колонки обращаться? |
|||
7
Rie
23.04.13
✎
14:21
|
(3) Документ.Поступление.НайтиПоКоду() - это само по себе круто. А точно ли ТС на 1С работает?
|
|||
8
Maxus43
23.04.13
✎
14:25
|
(7) я даже внимание не обратил) нйатиПоНомеру там должно быть)
|
|||
9
Rie
23.04.13
✎
14:28
|
(8) Да я тоже сначала не обратил внимания.
Но это означает, что ТС показывает не тот код, который реально работает. |
|||
10
Azxcvbn
23.04.13
✎
14:29
|
Сам разобрался
Объект = Документы.Поступление.НайтиПоНомеру(1).ПолучитьОбъект; Для каждого СтрокаОС из Объект.ОС Цикл Если ЗначениеЗаполнено(СтрокаОС.ОсновноеСредство) Тогда Сообщить("Записываю на МОЛ, Подразделение"); СтрокаОС.МОЛОрганизации = МОЛ; СтрокаОС.ПодразделениеОрганизации = Подразделение; Объект.Записать(); КонецЕсли; КонецЦИкла; Спасибо (1) |
|||
11
Птица
23.04.13
✎
14:32
|
(10)а зачем записывать после каждой строки?
|
|||
12
Azxcvbn
23.04.13
✎
14:52
|
(11) уберу за цикл )
|
|||
13
cw014
23.04.13
✎
14:55
|
ЖЕСТЬ
|
|||
14
cw014
23.04.13
✎
14:55
|
А что, ОС может быть в строке не заполнена? А зачем тогда такая строка?
|
|||
15
Рэйв
23.04.13
✎
14:57
|
Если заполненна ли таб часть то просто
Если ОС.количество()>0 Тогда ... |
|||
16
cw014
23.04.13
✎
15:11
|
(15) Да тут даже проверять не надо, код на 6 строк:
Объект = Документы.Поступление.НайтиПоНомеру(1).ПолучитьОбъект; ТаблицаОбъекта = Объект.ОС.Выгрузить(); ТаблицаОбъекта.ЗаполнитьЗначения(МОЛ, "МОЛОрганизации"); ТаблицаОбъекта.ЗаполнитьЗначения(Подразделение, "ПодразделениеОрганизации"); Объект.ОС.Загрузить(ТаблицаОбъекта); Объект.Записать(); |
|||
17
drcrasher
23.04.13
✎
15:14
|
(16) на 4 =)
|
|||
18
cw014
23.04.13
✎
15:15
|
(17) Зато с плюсом
|
|||
19
hhhh
23.04.13
✎
15:16
|
(18) тормозная вещь. В (10) побыстрее и строк столько же.
|
|||
20
drcrasher
23.04.13
✎
15:17
|
(18) имелось ввиду выпилить выгрузку/загрузку таблицы =)
|
|||
21
zladenuw
23.04.13
✎
15:19
|
а зачем выгружать еще в ТЗ, у таб части есть метод загрузить колонку.
|
|||
22
Azxcvbn
30.04.13
✎
10:13
|
(15) Спасибо, правильная вещь, мне просто нужна была проверка на заполнение ТЧ, если ОС не заполнена то вся ТЧ пустая. Но думаю ваша проверка правильная, учту.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |