Имя: Пароль:
1C
 
Обращение к строке таб части
,
0 Rossovich
 
15.09.16
22:54
Добрый вечер. Подскажите пожалуйста как решить сл. задачу.
При открытии документа, нужно заполнить в таб части определенные реквизиты.
Нахожу нужную строку в таб части через поискстрок получаю массив. а как обратится к этой найденной строке и изменить зн-е реквизита?
1 jsmith
 
15.09.16
22:58
УФ?
2 jsmith
 
15.09.16
22:58
Модифицировать документ при открытии разве не варварство?
3 hhhh
 
15.09.16
22:59
что за поискстрок?
4 jsmith
 
15.09.16
22:59
НайтиСтроки по ходу
5 Rossovich
 
15.09.16
23:00
Точно, найтиСтроки
6 Rossovich
 
15.09.16
23:01
(2) а когда лучше его модифицировать?
7 jsmith
 
15.09.16
23:03
(6) Ну как бы предполагается, что пользователь создает документ, заполняет его и записывает, а при следующем открытии любые изменения опять же вносятся с инициативы пользователя.
8 Михаил Козлов
 
15.09.16
23:04
В модуле объекта в ПередЗаписью.
Вы лучше напишите, что содержательно Вы хотите сделать.
9 Rossovich
 
15.09.16
23:07
При открытии документа , руководитель хочет видеть какие товары какие статусы имеют, я считываю из регистра статус товара.в таб части нужно поставить нужный статус
10 Rossovich
 
15.09.16
23:09
ТО есть эти данные только для информации и в документе не хранятся
11 jsmith
 
15.09.16
23:09
(9) Ну это не таб. часть заполнять надо, а данные формы, не связанные с объектом
Добавить в Объект.Товары новый реквизит в форме.
Это уж если быть формалистом.
12 zak555
 
15.09.16
23:10
> олучаю массив. а как обратится к этой найденной строке и изменить зн-е реквизита?

мас[0].МояКолонка = 1;
13 Rossovich
 
15.09.16
23:10
именно так и сделал, как к нему обратиться?
14 jsmith
 
15.09.16
23:11
МассивСтрок = Объект.Товары.НайтиСтроки(Отбор);
Для Каждого Строка Из МассивСтрок Цикл
Строка.Статус = ПолучитьСтатус(Строка);
КонецЦикла;
15 jsmith
 
15.09.16
23:12
МассивСтрок = Объект.Товары.НайтиСтроки(Отбор);
Если МассивСтрок.Количество() > 0 Тогда
МассивСтрок[0].Статус = Значение;
КонецЕсли;
16 zak555
 
15.09.16
23:13
(9) т.е. в табличном поле только данные регистра или ещё данные документа ?
17 Rossovich
 
15.09.16
23:14
(14) Я статусы все запросом получил, и хотелось бы без цикла по всем строкам, то есть нашел номенклатуру в таб части поставил статус.
(16) и данные документа
18 jsmith
 
15.09.16
23:15
Без цикла не получится.
19 zak555
 
15.09.16
23:16
(17) данные в табличном поле какие -- данные табличной части документа :?
20 Rossovich
 
15.09.16
23:18
(18) После запроса получаю тз "Товар*статус*
Беру из тз товар, нахожу в таб части и проставляю статус.
В таб части добавлен реквизит *колонка* статус.
Я нахожу нужную мне строку в таб части, а как потом к ней обратиться не знаю
21 jsmith
 
15.09.16
23:20
Так трудно?
22 zak555
 
15.09.16
23:22
(20) тогда записывать тебе надо в обработчике записи формы
23 jsmith
 
15.09.16
23:24
Не, думаю, Статус это не реквизит ТЧ
24 Rossovich
 
15.09.16
23:25
(23) все верно
25 jsmith
 
15.09.16
23:32
Отбор = Новый Структура("Номенклатура");
Для Каждого Стр Из ТЗ Цикл
Отбор.Номенклатура = Стр.Номенклатура;
МС = Объект.Товары.НайтиСтроки(Отбор);
Для Каждого СтрМС Из МС Цикл
СтрМС.Статус = Стр.Статус;
КонецЦикла;
КонецЦикла;

Пойдет?
26 Rossovich
 
15.09.16
23:34
*так отработало все верно, просто я с переменной напутал. спасибо  jsmith.
Для Каждого стртз из ТЗ_Документов цикл
            текСтатус=стртз.Статус;
            ПараметрыОтбора=Новый Структура;
            ПараметрыОтбора.Вставить("Услуга",стртз.услуги);
            массивСтрок=Объект.Услуги.НайтиСтроки(ПараметрыОТбора);
            массивСтрок[0].Статус=ТекСтатус;
КонецЦикла
27 Rossovich
 
15.09.16
23:42
(25) я не хотел использовать два цикла
28 jsmith
 
15.09.16
23:51
(27) Религия мешает?
29 Rossovich
 
16.09.16
00:06
(28) Так учили, циклы это вред, быстродействие и т. п.
30 jsmith
 
16.09.16
00:09
(29) Ох уж эти сказочники.
31 jsmith
 
16.09.16
00:11
А если в таб. части 2 строки с одинаковой номенклатурой? Пофигу - главное, чтобы на 0,00000000001 сек. быстрее отработало.
32 Rossovich
 
16.09.16
00:12
(31) двух строк не может это проверяется на этапе ввода документа.
33 jsmith
 
16.09.16
00:13
(32) Ну, это понятно.
34 Rossovich
 
16.09.16
00:16
помню на экзамене по 7,7 за лишний цикл стучали по шапке.
35 DDwe
 
16.09.16
04:02
(34) Глупости говорите.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.