Имя: Пароль:
1C
1С v8
Области табличного документа
0 Mashinist
 
02.02.15
09:08
На форме есть поле табличного документа
Туда выводятся данные по Макету, где есть несколько областей
На форме обрабатывается событие

ИзмененииСодержимогоОбласти(Элемент, Область)

Ни как не могу понять как мне в этой процедуре понять какая из областей макета редактируется

Область.Имя выдает типа "R14C6"
Понятно, что это 14-я строка. Но при разных данных это  может быть разная область из макета
1 Ёпрст
 
гуру
02.02.15
09:11
Пихай в расшифровку что это.. в ИзмененииСодержимогоОбласти имей это
2 Mashinist
 
02.02.15
09:17
Похоже, что так. Единственный способ отличить ячейки - это расшифровка.
Спасибо
3 Ёпрст
 
гуру
02.02.15
09:27
ну, есть еще способы, но запихать структуру в расшифровку - проще, одним из элементов структуры будет твоё имя, например, в остальных - значение..
4 Mashinist
 
02.02.15
10:51
(3) ну это понятно. можно и структуру

Теперь другой вопрос возник
Вывел я данные по макету

Как мне их потом прочитать? т.е. как перебрать табличный документ и получить значения (ну и расшифровку)?
5 Ёпрст
 
гуру
02.02.15
11:02
через Область..
только, зачем ?
6 Mashinist
 
02.02.15
11:33
(5) что-то пока через область не догоню как

ну суть такова. у документе есть печатная форма.
в документе не все данные содержаться, которые нужно напечатать. но 90% текста есть
по сути нужно добавить пару чисел. сделать чуть небольшой расчет и распечатать

Т.е. я делаю на форме табличный документ. Вывожу начально туда данные из документа, юзер забивает необходимые данные и печатает (ну за одно я сохраню xml и при следующем открытии подсуну уже этот xml)

Понятно что сейчас начнется крика - а что будет если документ изменится. Ну так не изменится. Они все с прошлого года и давно проведены и т.п. и т.д.
Добавлять туда реквизиты нет смысла. Все равно их не введут т.к. период закрыт. А кучу форм напечатать нужно, что бы тупо на них поставили печать... что бы было...
7 Ёпрст
 
гуру
02.02.15
11:37
ну ии..
цикл строка от 1 до ширины таблицы цикл колонка от 1 до высоты таблицы.. имеешь табДок.область(строка, колонка)...
делаешь что хочешь.
8 Mashinist
 
02.02.15
13:25
(7) Отлично, но...

    Для с = 1 По Таб.ВысотаТаблицы  Цикл
        Область = Таб.Область(с, 6);
        Расшифровка = Область.Расшифровка;
Значение = Область.Значение;
КонецЦикла;

Но если я пытаюсь Область.Значение = МоеЗначение
Поле объекта недоступно для записи (Значение)

Ну т.е. сообщение понятно... а как теперь безе перевывода таблицы изменить значение ячейки?
9 Ёпрст
 
гуру
02.02.15
13:26
А значение то тут при чем ?
Меняй Текст или Расшифровку
10 Ёпрст
 
гуру
02.02.15
13:26
в области
11 Mashinist
 
02.02.15
13:36
(9) Да. Текст меняется. ну вроде как все проблемы решены...
Спасибо, Ёпрст!
12 Mashinist
 
02.02.15
14:02
кстати
Но если я пытаюсь Область.Значение = МоеЗначение
Поле объекта недоступно для записи (Значение)

потому что забыл указать ячейке Содержит значение
так что лучше там число держать...
13 Mashinist
 
02.02.15
16:19
А вот еще скажите, други!
Как закрыть выборочно ячейки от редактирования?
14 Ёпрст
 
гуру
02.02.15
16:24
Защита есть и.. еще какая то шляпа
15 Mashinist
 
02.02.15
16:28
Так в макете защита стоит.
А что еще? какая шляпа:-)
16 Mashinist
 
02.02.15
16:32
Ага. Нужно было к элементу формы применить Таб.Защита = Истина;