Имя: Пароль:
1C
 
Поле табличного документа
0 Zlodey1С
 
03.03.09
08:06
Всем добрый день. Есть форма на ней поле табличного документа. в нем размещаю макет вывожу данные ( есть 4 области 2 горизонтально 2 вертикльно)Необходимо по выбору ( двойной клик по полю мышкой) получить данные строки и заполнить определенными значениями ячейку по которой тыкнули. Как посмотреть данные строки ячейки по которой тыкнули?
1 Zlodey1С
 
03.03.09
08:26
ап
2 Zlodey1С
 
03.03.09
08:39
Неужели никто не использовал Выбор() в поле табличного документа
3 sf
 
03.03.09
09:01
(2)
Элемент.ТекущаяОбласть.Значение - значение ячейки
а ты какие "данные строки ячейки" хочешь?
4 Zlodey1С
 
03.03.09
10:39
Элемент.ТекущаяОбласть.Значение недоступно для чтения
5 Zlodey1С
 
03.03.09
10:43
Мне нужно получить данные ячейки в столбце №1 и поместить их в ячейку во втором столбце.
6 Zlodey1С
 
03.03.09
10:44
Двойной клин будети происходить как раз по ячейки во втором столбце куда и надо поместить данные
7 НЕА123
 
03.03.09
10:49
Элемент.ТекущаяОбласть.Текст ?
8 Zlodey1С
 
03.03.09
10:55
А как добраться до данных ячейки которые в первой колонки
9 Point
 
03.03.09
10:58
(0) вообще такие вещи лучше делать через расшифровку
10 Zlodey1С
 
03.03.09
11:02
Есть у кого нибудь пример с расшифровкой (горю ппц, 2 часа осталось)?
11 Aprobator
 
03.03.09
11:17
Блин, народ, неужели так трудно читать СП? Событие для Отлова

ПолеТабличногоДокумента (SpreadsheetDocumentField)
Выбор (Selection)
Синтаксис:
Выбор(<Область>, <Стандартная обработка>)
Параметры:
<Область>
Тип: ОбластьЯчеекТабличногоДокумента. Область, с которой связано событие.
<Стандартная обработка>
Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина
Описание:
Возникает при двойном щелчке мыши (нажатии клавиши Enter) на ячейке или рисунке таблицы.

ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
Значение (Value)
Использование:
Чтение и запись.
Описание:
Тип: Произвольный. Содержит значение ячеек области.
Примечание:
Свойство доступно, только если ячейка содержит значение (СВОЙСТВО СодержитЗначение РАВНО Истина). Свойство применимо только для прямоугольных областей.

и

ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
Текст (Text)
Использование:
Чтение и запись.
Описание:
Тип: Строка. Содержит значение текста ячеек области.
Примечание:
1. Свойство доступно для записи, если ячейка не содержит значения (СВОЙСТВО СодержитЗначение равно Ложь).
2. Применимо только для прямоугольных областей.
12 Zlodey1С
 
03.03.09
11:57
Да читал я все это. Я могу получить данные ячейки по которой кликнул а надо получить еще данные первой ячейки которая в этой Области
13 Aprobator
 
03.03.09
12:08
(12) ну дык текщую область ты имеешь  в процедуре выбора.
СтрокаОбласти = ТекОбласть.Верх;
Элемент.Область(СтрокаОбласти,1) - тебе эту область надо поймать?
14 Zlodey1С
 
03.03.09
12:10
да
15 Zlodey1С
 
03.03.09
12:10
вернее нет
16 Zlodey1С
 
03.03.09
12:12
Мне надо поймать значение первого параметра из области ячейки по которой тыкнули.
Есть одна область в ней 2 параметра. По 2 параметру тыкаю и внего заносим значение из первого параметра.
17 Aprobator
 
03.03.09
12:16
Элемент.Область(СтрокаОбласти,1).ЭлементУправления.Значение - это?
18 Zlodey1С
 
03.03.09
13:09
Нет там не видно значений
19 Aprobator
 
03.03.09
13:28
А! дак тебе надо:
ОбластьНужнойЯчейки = Элемент.ПолучитьОбласть(СтрокаОбласти, 1, СтрокаОбласти, НомерПоследнейКолонки);
ПараметрыОбласти = областьНужнойЯчейки.Параметры;
20 Zlodey1С
 
03.03.09
17:21
Вроде с координатами разобрались маленько, а как теперь добавить значение в ячейку. Он ругается на : Поле объекта недоступно для записи
21 Zlodey1С
 
03.03.09
17:30
Уже ненадо.
22 Zlodey1С
 
03.03.09
17:35
ЯчейкаАдреса = Элемент.ПолучитьОбласть(КоординатаАдреса);
ЯчейкаКоличества = Элемент.ПолучитьОбласть(КоординатаСуммы);
Если  ЗначениеЗаполнено(ТекОбласть.Параметр) Или ЗначениеЗаполнено (ТекОбласть.Текст) Тогда
             ТекОбласть.Параметр=" ";
             ТекОбласть.Текст=" "; // Вот тут ругается
         Иначе
                 
       ТекОбласть.Параметр=ЯчейкаКоличества.ТекущаяОбласть.Текст;
   КонецЕсли;
23 Zlodey1С
 
03.03.09
17:37
После ТекОбласть.Параметр=ЯчейкаКоличества.ТекущаяОбласть.Текст; в ТекОбласть.Текст заносится значение ЯчейкаКоличества.ТекущаяОбласть.Текст, а как его очистить когда мы очищаем параметр?
24 Zlodey1С
 
03.03.09
17:40
Все больше не надо
25 Zlodey1С
 
03.03.09
19:01
А как в цикле очистить все ячейки текущей строки кроме той по которой кликаем, делаю вод так но все равно они не очищаются, хотя через отладчик вроде все нормально:

_сч=1;
       Пока _сч<ЧислоКолонок Цикл
                       
           Если _сч>2 Тогда
               
               КоординатаВодителя=Строка("R"+Строка(КоординатаСтроки)+"C"+Строка(_сч));
               
               числоКоордината=Число(КоординатаКолонки);
               
               Если Не _сч=числоКоордината  Тогда
                   
                   ЯчейкаОчистки=Элемент.ПолучитьОбласть(КоординатаВодителя);
                   
                   Если  ЗначениеЗаполнено(ЯчейкаОчистки.ТекущаяОбласть.Параметр)  Или ЗначениеЗаполнено(ЯчейкаОчистки.ТекущаяОбласть.Текст) Тогда
                       
                       ЯчейкаОчистки.ТекущаяОбласть.Параметр=" ";
                       ЯчейкаОчистки.ТекущаяОбласть.Текст=" ";
                   
                   КонецЕсли;
                   
               КонецЕсли;
               
           КонецЕсли;
           
           _сч=_сч+1;
           
       КонецЦикла;
26 Zlodey1С
 
04.03.09
01:55
Эже пробывал Область.Очистить() один фиг
27 Garkin
 
04.03.09
02:28
Попробуй
  ЯчейкаОчистки=Элемент.Область(КоординатаВодителя);
28 Zlodey1С
 
04.03.09
05:10
(27) Спасибо за помощь. Но всеравно не выходит очистить все ячейки на текущей строке, кроме активной
29 Zlodey1С
 
04.03.09
05:14
Блин жалко не у кого нет маленького примера
30 Zlodey1С
 
04.03.09
08:28
Да
31 НЕА123
 
04.03.09
09:15
в (25) зачем ПолучитьОбласть()? за лишние буковочки платят?
Область().
32 Aprobator
 
04.03.09
10:11
(31) Область() возвращает область ячеек, а у нее нету параметров. А ПолучитьОбласть() ТабличныйДокумент.
33 НЕА123
 
04.03.09
10:13
(32)
да один хер там параметрами и не пахнет.
34 Aprobator
 
04.03.09
10:15
А ЗначениеЗаполнено(ЯчейкаОчистки.ТекущаяОбласть.Параметр) - это че тогда?
35 Aprobator
 
04.03.09
10:16
Правда нафига текущаяобласть? Вообще конечно код странный и почему не хватило Текст и Значение - непонятно.
36 НЕА123
 
04.03.09
10:18
(34)
ЗначениеЗаполнено(ЯчейкаОчистки.ТекущаяОбласть.Параметр)
будет ЛОЖЬ.
офф.
кто сказал что нету у облати ячеек нет свойтства параметр?
37 Zlodey1С
 
04.03.09
12:09
Вроде с одной стороны не чего сложного, но с другой стороны не получается и не только у меня. Такое ощущение что не кто с динамическими отчетами не работал.
38 Garkin
 
04.03.09
12:31
"не получается и не только у меня"  - О_о   да у вас там эпидемия.

   _сч=1;    // почему бы не написать _сч=3;
       Пока _сч<ЧислоКолонок Цикл    //  <= ?
                       
           Если _сч>2 Тогда   // а это условие вообще убрать
               
               КоординатаВодителя=Строка("R"+Строка(КоординатаСтроки)+"C"+Строка(_сч));
               
               числоКоордината=Число(КоординатаКолонки);  // вынести за цикл
               
               Если Не _сч=числоКоордината  Тогда
                   
                   ЯчейкаОчистки=Элемент.Область(КоординатаВодителя);
                   
                   Если  ЗначениеЗаполнено(ЯчейкаОчистки.Параметр)  Или ЗначениеЗаполнено(ЯчейкаОчистки.Текст) Тогда
                       
                       ЯчейкаОчистки.Параметр=" ";  // непонятно нафига это
                       ЯчейкаОчистки.Текст=" ";
                   
                   КонецЕсли;
                   
               КонецЕсли;
               
           КонецЕсли;
           
           _сч=_сч+1;
           
       КонецЦикла;

?
39 MishaSan
 
04.03.09
13:19
Номерстроки = 1;
   СписокИсключаемыхКолонок = Новый СписокЗначений;
   СписокИсключаемыхКолонок.Добавить(2);
   Для НомерКолонки = 1 По ЭлементыФормы.ТабличныйДокумент.ШиринаТаблицы Цикл
       Если СписокИсключаемыхКолонок.НайтиПоЗначению(НомерКолонки) = Неопределено тогда
           Область=ЭлементыФормы.ТабличныйДокумент.Область(НомерСтроки,НомерКолонки,НомерСтроки,НомерКолонки);
           Область.Очистить(истина,истина,истина);
       КонецЕсли;
   КонецЦикла;
40 Zlodey1С
 
05.03.09
15:58
Всем Огромное и приогромное спасибо.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший