|
Обращение к строке таб части
|
Я
|
|
Rossovich 15.09.16 - 22:54 | Добрый вечер. Подскажите пожалуйста как решить сл. задачу.
При открытии документа, нужно заполнить в таб части определенные реквизиты.
Нахожу нужную строку в таб части через поискстрок получаю массив. а как обратится к этой найденной строке и изменить зн-е реквизита? |
jsmith 1 - 15.09.16 - 22:58 | УФ?
|
jsmith 2 - 15.09.16 - 22:58 | Модифицировать документ при открытии разве не варварство?
|
hhhh 3 - 15.09.16 - 22:59 | что за поискстрок?
|
jsmith 4 - 15.09.16 - 22:59 | НайтиСтроки по ходу
|
Rossovich 5 - 15.09.16 - 23:00 | Точно, найтиСтроки
|
Rossovich 6 - 15.09.16 - 23:01 | ( 2) а когда лучше его модифицировать? |
jsmith 7 - 15.09.16 - 23:03 | ( 6) Ну как бы предполагается, что пользователь создает документ, заполняет его и записывает, а при следующем открытии любые изменения опять же вносятся с инициативы пользователя. |
Михаил Козлов 8 - 15.09.16 - 23:04 | В модуле объекта в ПередЗаписью.
Вы лучше напишите, что содержательно Вы хотите сделать.
|
Rossovich 9 - 15.09.16 - 23:07 | При открытии документа , руководитель хочет видеть какие товары какие статусы имеют, я считываю из регистра статус товара.в таб части нужно поставить нужный статус
|
Rossovich 10 - 15.09.16 - 23:09 | ТО есть эти данные только для информации и в документе не хранятся
|
jsmith 11 - 15.09.16 - 23:09 | ( 9) Ну это не таб. часть заполнять надо, а данные формы, не связанные с объектом
Добавить в Объект.Товары новый реквизит в форме.
Это уж если быть формалистом. |
zak555 12 - 15.09.16 - 23:10 | > олучаю массив. а как обратится к этой найденной строке и изменить зн-е реквизита?
мас[0].МояКолонка = 1; |
Rossovich 13 - 15.09.16 - 23:10 | именно так и сделал, как к нему обратиться?
|
jsmith 14 - 15.09.16 - 23:11 | МассивСтрок = Объект.Товары.НайтиСтроки(Отбор);
Для Каждого Строка Из МассивСтрок Цикл
Строка.Статус = ПолучитьСтатус(Строка);
КонецЦикла; |
jsmith 15 - 15.09.16 - 23:12 | МассивСтрок = Объект.Товары.НайтиСтроки(Отбор);
Если МассивСтрок.Количество() > 0 Тогда
МассивСтрок[0].Статус = Значение;
КонецЕсли; |
zak555 16 - 15.09.16 - 23:13 | ( 9) т.е. в табличном поле только данные регистра или ещё данные документа ? |
Rossovich 17 - 15.09.16 - 23:14 | ( 14) Я статусы все запросом получил, и хотелось бы без цикла по всем строкам, то есть нашел номенклатуру в таб части поставил статус.
( 16) и данные документа |
jsmith 18 - 15.09.16 - 23:15 | Без цикла не получится.
|
zak555 19 - 15.09.16 - 23:16 | ( 17) данные в табличном поле какие -- данные табличной части документа :? |
Rossovich 20 - 15.09.16 - 23:18 | ( 18) После запроса получаю тз "Товар*статус*
Беру из тз товар, нахожу в таб части и проставляю статус.
В таб части добавлен реквизит *колонка* статус.
Я нахожу нужную мне строку в таб части, а как потом к ней обратиться не знаю |
jsmith 21 - 15.09.16 - 23:20 | Так трудно?
|
zak555 22 - 15.09.16 - 23:22 | ( 20) тогда записывать тебе надо в обработчике записи формы |
jsmith 23 - 15.09.16 - 23:24 | Не, думаю, Статус это не реквизит ТЧ
|
Rossovich 24 - 15.09.16 - 23:25 | |
jsmith 25 - 15.09.16 - 23:32 | Отбор = Новый Структура("Номенклатура");
Для Каждого Стр Из ТЗ Цикл
Отбор.Номенклатура = Стр.Номенклатура;
МС = Объект.Товары.НайтиСтроки(Отбор);
Для Каждого СтрМС Из МС Цикл
СтрМС.Статус = Стр.Статус;
КонецЦикла;
КонецЦикла;
Пойдет? |
Rossovich 26 - 15.09.16 - 23:34 | *так отработало все верно, просто я с переменной напутал. спасибо jsmith.
Для Каждого стртз из ТЗ_Документов цикл
текСтатус=стртз.Статус;
ПараметрыОтбора=Новый Структура;
ПараметрыОтбора.Вставить("Услуга",стртз.услуги);
массивСтрок=Объект.Услуги.НайтиСтроки(ПараметрыОТбора);
массивСтрок[0].Статус=ТекСтатус;
КонецЦикла |
Rossovich 27 - 15.09.16 - 23:42 | ( 25) я не хотел использовать два цикла |
jsmith 28 - 15.09.16 - 23:51 | |
Rossovich 29 - 16.09.16 - 00:06 | ( 28) Так учили, циклы это вред, быстродействие и т. п. |
jsmith 30 - 16.09.16 - 00:09 | ( 29) Ох уж эти сказочники. Рекламное место пустует |
jsmith 31 - 16.09.16 - 00:11 | А если в таб. части 2 строки с одинаковой номенклатурой? Пофигу - главное, чтобы на 0,00000000001 сек. быстрее отработало.
|
Rossovich 32 - 16.09.16 - 00:12 | ( 31) двух строк не может это проверяется на этапе ввода документа. |
jsmith 33 - 16.09.16 - 00:13 | |
Rossovich 34 - 16.09.16 - 00:16 | помню на экзамене по 7,7 за лишний цикл стучали по шапке.
|
DDwe 35 - 16.09.16 - 04:02 | |