Имя: Пароль:
1C
1С v8
как обратится к значению реквизита табл части документа. управляемое приложение
,
0 natali_800
 
14.04.14
16:43
Добрый день)Есть табличная часть в документе.Не могу понять, как к ней обратится( в режиме обычного приложения трудностей не возникало..а вот с управляемыми формами..Подскажите, кто знает)

&НаКлиенте
Процедура ГрафикРаботыВремяНачалаПриИзменении(Элемент)
      ТаблЧасть= ЭтаФорма.Объект.ГрафикРаботы;
    Если ЗначениеЗаполнено(ЭтаФорма.Объект.ГрафикРаботы.ВремяНачала) И ЗначениеЗаполнено(ЭтаФорма.Объект.ГрафикРаботы.ВремяОкончания) Тогда
        Если ЭтаФорма.Объект.ГрафикРаботы.ВремяНачала> ЭтаФорма.Объект.ГрафикРаботы.ВремяОкончания Тогда
            // Начало не должно быть больше окончания
                            Сообщить("Начало рабочего времени должно быть меньше окончания рабочего времени.", СтатусСообщения.Внимание);
                ЭтаФорма.Объект.ГрафикРаботы.ВремяНачала = '00010101';
        Иначе
            // Накапливаем продолжительность
            ЭтаФорма.Объект.ГрафикРаботы.продолжительность = '00010101' + (ЭтаФорма.Объект.ГрафикРаботы.ВремяОкончания- ЭтаФорма.Объект.ГрафикРаботы.ВремяНачала);
        КонецЕсли;
    КонецЕсли;

КонецПроцедуры
1 butterbean
 
14.04.14
16:46
да также почти как в обычном:
Элементы.ТабЧасть.ТекущиеДанные.ТвойРеквизит
2 natali_800
 
14.04.14
16:55
(1) пробовала, в общем так нельзя(
{Документ.ТабельРабНерабВремени.Форма.ФормаДокумента.Форма(29)}: Ошибка при вызове метода контекста (ЗначениеЗаполнено)
              Если ЗначениеЗаполнено(элементы.ГрафикРаботыВремяНачала) И ЗначениеЗаполнено(Элементы.ГрафикРаботыВремяОкончания) Тогда
по причине:
Проверка мутабельных значений на заполненность не поддерживается

{Документ.ТабельРабНерабВремени.Форма.ФормаДокумента.Форма(30)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
        Если элементы.ГрафикРаботыВремяНачала> Элементы.ГрафикРаботыВремяОкончания Тогда
3 Wobland
 
14.04.14
16:56
(2) это всё фотка мешает
4 natali_800
 
14.04.14
16:58
(3) были такие мысли))
она будет;)
5 Wobland
 
14.04.14
17:00
(4) все вы обещаете. а потом мы, отматросенные, остаёмся вглядыватся в пустые пискели ЛК
6 Asmody
 
14.04.14
17:01
я не устану давать эту ссылку http://v8.1c.ru/metod/books/book.jsp?id=231
7 natali_800
 
14.04.14
17:05
(6) время не ждет))но видать никто не поможет..
8 Wobland
 
14.04.14
17:05
(7) чем же?
9 Asmody
 
14.04.14
17:07
(7) объяснять надо очень много. начиная с принципов организации управляемого приложения, заканчивая представлением объектов на клиенте. не упустив при этом особенности обращения к текущей строке поля таблицы на сервере
10 ramir
 
14.04.14
17:21
(7) Надеюсь что-нибудь поймешь. В общем так. Есть реквизиты, которые хранят данные, а есть элементы формы, которые отображают данные. Т.е. для работы с данными  нужно работать с реквизитами формы.

ЭтаФорма.Объект.ГрафикРаботы.ВремяНачала

Логика верна, но ГрафикРаботы это ТЗ (для придирчивых данные формы коллекция), т.е. коллекция элементов (строк) таблицы. Можно обращаться ГрафикРаботы[НомерЭлемента].ВремяНачала, где номер элемента - номер строки, начиная с 0.

Тебе скорее всего нужно брать данные из выделенной строки на форме. Реквизит вообще не знает о том, что происходит на форме, поэтому чтобы понять какая строка сейчас выделена нужно обратиться к свойству ТекущиеДанные ЭЛЕМЕНТА формы, который отображает таблицу. Предположим Элемент называется ГрафикРаботы. Тогда делается так:

ЭтаФорма.Элементы.ГрафикРаботы.ТекущиеДанные.ВремяНачала
11 natali_800
 
14.04.14
17:32
(10) большое спасибо!))
12 natali_800
 
14.04.14
17:33
(10) двигалась в правильном направлении. но смущало, что после Текущих данных не выпадало контекстное меню)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.