Имя: Пароль:
1C
1С v8
табличное поле
0 Саша80
 
04.12.12
09:11
На форме есть реквизит ТабличноеПоле2 с типом значения ДокументСписок.ПлатежноеПоручениеИсходящее. Нужно пройтись по документам в этой ТЧ и изменить реквизит делаю так:

   для каждого стр из ЭлементыФОрмы.ТабличноеПоле2 цикл
   Док=стр.ссылка.получитьобъект();
   Док.СчетОрганизации=ПолеВвода1.ОсновнойБанковскийСчет;
   Док.записать();
   Сообщить("Изменен документ "+стр.ссылка);
   конеццикла;


не канает..что не так делаю?
1 Wobland
 
04.12.12
09:13
а об этом тебе расскажет текст ошибки
2 Саша80
 
04.12.12
09:14
{Форма.Форма.Форма(7)}: Итератор для значения не определен
   для каждого стр из ЭлементыФОрмы.ТабличноеПоле2 цикл
3 Wobland
 
04.12.12
09:14
а я бы для таких вещей сделал своё ТП со своей ТЗ, заполнял бы запросом, прикрутил бы ещё колонку про пометку и тащился бы
4 Wobland
 
04.12.12
09:15
(2) перевожу. пытаешься обойти циклом для каждого что-то, не являющееся коллекцией
5 MSII
 
04.12.12
09:16
(3) Для этого надо хотя бы понимать разницу между реквизитом и элементом формы, а с этим в (0) беда.
6 Саша80
 
04.12.12
09:16
да зачем запросом? и так отбор есть, в ТЧ отображаются только нужные данные, тупо недописал чего то
7 Wobland
 
04.12.12
09:17
(6) люблю я их. да и пометку к списку документов прикручивать как-то...
8 Килограмм
 
04.12.12
09:17
Внутри цикла нужно символы табуляции ставить, каждое слово начинать с большой буквы, т.е. то, что ты написал должно на вид быть таким:

Для Каждого Стр Из ЭлементыФОрмы.ТабличноеПоле2 Цикл
   Док = стр.ссылка.получитьобъект();
   Док.СчетОрганизации = ПолеВвода1.ОсновнойБанковскийСчет;
   Док.записать();
   Сообщить("Изменен документ " + Стр.Ссылка);
КонецЦикла;

Не подумай, что придераюсь, просто после тебя будет же кто-то другой наверняка ошибки в твоем коде искать и правит, ему так будет проще.

по самому вопросу, смотри в сторону ответа (5)
9 Саша80
 
04.12.12
09:21
ясно..короче не поможет никто
10 kosts
 
04.12.12
09:21
(0)
Получить значения полей отбора с документа списка.
В запросе выдернуть документы с указанным отбором.
Выполнить обработку полученного списка.
11 kosts
 
04.12.12
09:22
(9) То что ты хочешь сделать напрямую нельзя.
12 Mort
 
04.12.12
09:23
Сначала стоит научится отличать ТЗ, ТЧ, ТП и ДС между собой.
13 Саша80
 
04.12.12
09:23
ясно..ладно сделаю запросом...спасибо всем
14 hhhh
 
04.12.12
09:39
(13) надо писать

Для Каждого Стр Из ТабличноеПоле2 Цикл
15 Саша80
 
04.12.12
09:42
еще вопросик-как обратиться в запросе к полю если в документе он <Объект не найден> (7:9788a4badb2829a011e0a5ed2f71e43c)?
ПлатежноеПоручениеИсходящее.СчетОрганизации = ЗНАЧЕНИЕ(СПравочник.БанковскиеСчета.ПустаяСсылка);
не канает
16 Саша80
 
04.12.12
09:43
(14) писал уже та же ошибка
17 Wobland
 
04.12.12
09:47
(14) не надо так писать, ТП - это элемент управления
18 sidalexsandr
 
04.12.12
09:47
(0) Тебе поможет консоль запросов в ней ты увидиш всё что можно добавить в запрос.
19 Wobland
 
04.12.12
09:47
(15) а нету объекта. а ссылка на него есть
20 kosts
 
04.12.12
09:49
(19) Возможно нету доступа к соответствующему объекту. Ну или (19)
21 cw014
 
04.12.12
09:50
А с каких это по элемент управления формы имеет иттератор?
22 kosts
 
04.12.12
09:51
(15) Найти такие объекты можно сравнив на null реквизит ссылки.
ПлатежноеПоручениеИсходящее.СчетОрганизации.Наименование Есть null
23 Reset
 
04.12.12
09:52
(15) ПлатежноеПоручениеИсходящее.СчетОрганизации = &РванаяСсылка

В параметр передать значени ссылки из документа-объекта.

(Думаю, ты нихрена не понял, но я должен был ответить)
24 Wobland
 
04.12.12
09:52
(22) да ну?
25 Reset
 
04.12.12
09:53
да, или (22) - если нужно найти Все объекты с подобными (а не только этой) ссылками
26 Wobland
 
04.12.12
09:53
(24) ах, реквизит ссылки
27 kosts
 
04.12.12
09:53
(24) Не знаю я находил
28 Саша80
 
04.12.12
09:53
(23) да я то понял просто я уже так дела-не поканало
29 Reset
 
04.12.12
09:54
(28) да я в курсе, что ты не понял
30 Reset
 
04.12.12
09:55
+(22) только я бы проверял хз.Ссылка - чтоб не думать, есть там наименование, чи не.
31 cw014
 
04.12.12
09:57
(0) 1) У элемента формы по определению нет иттератора. Следует использовать реквизит формы, назначенный этому иттератору (значения поля "Данные" в палитре свойств). Ну или на худой конец "ЭлементыФОрмы.ТабличноеПоле2.Значение".
2) Ты получишь абстрактный объект с типом "ДокументСписок.<твойДокумент>". Теперь тебе в СП по пути: Прикладные объекты->Документы->ДокументСписок.<Имя документа> - поймешь что "Это нэвозможьно" (С) Смешарики - Пин.
3) Зато у тебя доступен отбор и список колонок этого объекта, на основании их можешь собрать текст запроса, выбрать нужные тебе доки и уже их модифицировать. Только не забудь после этого обновить этот элемент управления
32 Саша80
 
04.12.12
10:27
(31)-спасибо за развернутый ответ, разобрался
33 piter99
 
04.12.12
12:58
А можно еще задать вопрос, вчера точно с таким вопросом парился. ответ тоже "нету доступа к соответствующему объекту. и ...иттератор.. не соответствует..."
1) прошел курсы, тз понятно, а оказалось ТП мимо прошли.
Есть ли-ра, которая описывает ТП (помимо help). То что это - эл-т управления не ожидал.
2) первый раз термин Иттератор ??
3) и Вы используете скобочки (24), это ссылка на что?
34 Wobland
 
04.12.12
13:29
вот они - недопрограммисты ускоренного выпуска
35 Reset
 
04.12.12
13:40
(33) У тебя в профиле написано "Ci_Builder, MySql, InterBase, MsSql" и ты спрашиваешь, что такое итератор?

А, хотя Ci_Builder. Да. Ci.
36 Reset
 
04.12.12
13:42
(33) Скобочки с числом - это ссылка на номер сообщения в ветке форума
37 piter99
 
04.12.12
13:59
Не надо, у меня за плечами мединститут и аналоговые машины 81 г, это не так сяк.
38 Wobland
 
04.12.12
14:01
(37) это в медицинах тогда изучали Ci?
39 Wobland
 
04.12.12
14:01
вообще, Si - кремний
40 piter99
 
04.12.12
14:03
Я в 2004 подумал, что Делфи-слабовато, решил круче взять. Оказалось напрасно. Ошибка стратегии.
41 Reset
 
04.12.12
14:04
(40) Грубовато, но, похоже действительно - ошибка стратегии ;)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.