Имя: Пароль:
1C
 
Вопрос по обычным формам
, ,
0 maptbln
 
15.08.18
15:43
День добрый,добавил в общий модуль функцию подсчёт выделенных ячеек

Функция СуммаПриВыделенииЯчеек (ПолеТабличногоДокумента) Экспорт
Сумма = 0;
Для Каждого Область Из ПолеТабличногоДокумента.ВыделенныеОбласти Цикл
   Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") Тогда
      Для ИндексСтрока = Область.Верх По Область.Низ Цикл
         Для ИндексКолонка = Область.Лево По Область.Право Цикл
            Попытка
              Сумма = Сумма + Число(СтрЗаменить(ПолеТабличногоДокумента.Область("R" + Формат(ИндексСтрока, "ЧГ=0") + "C" + Формат(ИндексКолонка, "ЧГ=0")) .Текст, " ", ""));
           Исключение
           КонецПопытки;
          КонецЦикла;
      КонецЦикла;
   КонецЕсли;
КонецЦикла;
Возврат Сумма
КонецФункции


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

Процедура СуммаПриВыделении()  
      
      Сумма= ПЛ_Омега.СуммаПривыделенииЯчеек(ПолеТабличногоДокумента);
      СуммаВыдЯч = Сумма;

ругается на то ,что ПолеТабличногоДокумента не определено
как его правильно обозначить?
1 Cool_Profi
 
15.08.18
15:44
ЭлементыФОрмы.* ?
2 Малыш Джон
 
15.08.18
15:46
(0) функции ПолеТабличногоДокумента - это параметр функции,
а в процедуре эта переменная как определяется?
3 Малыш Джон
 
15.08.18
15:46
+(2) *в функции, ПолеТабличногоДокумента - это параметр функции
4 maptbln
 
15.08.18
15:48
(3) я привёл полный текст функции,если использовать его в качестве текста процедуры на форме,то работает
5 Малыш Джон
 
15.08.18
15:49
(4) молодец. Но как это связано с тем, что написано в (2)?
6 maptbln
 
15.08.18
15:50
(5)
так я и не знаю,как её правильно определить
7 Малыш Джон
 
15.08.18
15:51
(4)
Функция СуммаПриВыделенииЯчеек (ПолеТабличногоДокумента)

здесь ПолеТабличногоДокумента - в параметрах функции есть, 1с понимает откуда его брать - из параметров функции

а вот здесь:

Процедура СуммаПриВыделении()  
      
      Сумма= ПЛ_Омега.СуммаПривыделенииЯчеек(ПолеТабличногоДокумента);

ПолеТабличногоДокумента - это что такое? это неизвестная переменная, о чем тебе и пишет
8 Малыш Джон
 
15.08.18
15:52
(6) укажи, что такое ПолеТабличногоДокумента
9 Малыш Джон
 
15.08.18
15:53
(6) если это элемент формы, значит и ищи его в коллекции элементов форм, как в (1) советуют
10 maptbln
 
15.08.18
16:17
(9) понял , но не совсем ПолеТабличногоДокумента=ЭлементыФормы.Результат.ВыделенныеОбласти.Получить(0);

Результат - имя поля табличного документа
11 maptbln
 
15.08.18
17:13
ПолеТабличногоДокумента=ЭлементыФормы.Результат.ВыделенныеОбласти

не отрабатывает , подскажите как,я уже не знаю
12 Михаил Козлов
 
15.08.18
17:17
А просто ЭлементыФормы.Результат не подходит?
13 hhhh
 
15.08.18
17:19
(11) вот это вы тоже чего-то учудили

ПолеТабличногоДокумента.Область("R" + Формат(ИндексСтрока, "ЧГ=0") + "C" + Формат(ИндексКолонка, "ЧГ=0"))

пишите

ПолеТабличногоДокумента.Область(ИндексСтрока, ИндексКолонка)
14 maptbln
 
15.08.18
17:22
(12) Результат не подходит , мне ведь нужны Выделенные ячейки
15 maptbln
 
15.08.18
17:26
(14) да и тоже ошибку выдает
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс