Имя: Пароль:
1C
1C 7.7
v7: Проверка атрибутов на заполненность
0 Новичёк123123
 
21.07.11
11:10
Здравствуйте) Нужно что бы ткунули носом где лоханулся. Имеем 5 элементов формы справочника "АкционныйТовар1","АкционныйТовар2"..."АкционныйТовар5". Нужно что бы они проверялись на пустоту и выводилось сколько заполненных, можно конечно каждый отдельно проверить, но я решил выпендриться. Этот код можно починить или легче каждый в отдельности перебрать?

Процедура Проверить()
   СчетчикТоваров=0;
   Для Счет=1 по 5 Цикл
       ПередаваемыйПараметр="АкционныйТовар"+Счет;  
       Если Форма.ПолучитьАтрибут(ПередаваемыйПараметр)<>"" Тогда
           СчетчикТоваров=СчетчикТоваров+1;
       КонецЕсли;
   КонецЦикла;
   Предупреждение (СчетчикТоваров);
КонецПроцедуры
1 Simod
 
21.07.11
11:12
ПустоеЗначение()
2 Новичёк123123
 
21.07.11
11:14
пробовал( если мы пишем ПередаваемыйПареметр.ПустоеЗначение() то он ругается(
3 andrewks
 
21.07.11
11:15
ёптить... а СП почитать? или уже успел ДенисЧ украсть?
4 Leeloo
 
21.07.11
11:16
(2) А ПустоеЗначение(ПередаваемыйПараметр)?
5 chelentano
 
21.07.11
11:16
(3) СП для лохов
6 АЛьФ
 
21.07.11
11:18
СП не поможет.
7 АЛьФ
 
21.07.11
11:20
Процедура Проверить()
   СчетчикТоваров=0;
   Для Счет=1 по 5 Цикл
       ЗначениеПараметра = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(АкционныйТовар" + Счет + ")]));
       Если ПустоеЗначение(ЗначениеПараметра) = 0 Тогда
           СчетчикТоваров=СчетчикТоваров+1;
       КонецЕсли;
   КонецЦикла;
   Предупреждение (СчетчикТоваров);
КонецПроцедуры
8 andrewks
 
21.07.11
11:21
(6) это почему?
9 Новичёк123123
 
21.07.11
11:23
Заработало) Только почему то постоянно выдаёт "5"


Процедура Проверить()
   СчетчикТоваров=0;
   Для Счет=1 по 5 Цикл
       ПередаваемыйПараметр="АкционныйТовар"+Счет;  
       Если ПустоеЗначение(ПередаваемыйПараметр)=0 Тогда
           СчетчикТоваров=СчетчикТоваров+1;
       КонецЕсли;
   КонецЦикла;
   Предупреждение (СчетчикТоваров);
КонецПроцедуры

Альф не взлетело(
10 andrewks
 
21.07.11
11:25
(9) Только почему то постоянно выдаёт "5"  а сколько надо? 7?
11 АЛьФ
 
21.07.11
11:26
2(9) Че у тебя не взлетело?
2(8) Потому что (7).
12 aka AMIGO
 
21.07.11
11:26
(9) ПередаваемыйПараметр="АкционныйТовар"+Счет;

это у тебя - строка.. и она всегда не-пустая..
вот потому и выдает 5
13 1Сергей
 
21.07.11
11:27
(9) у тебя в ПередаваемыйПараметр всегда строка, и она не пуста
14 1Сергей
 
21.07.11
11:28
(7) одну кавычку пропустил :)
потому не взлетело :)
15 АЛьФ
 
21.07.11
11:29
2(14) Да, заметил когда уже отправил. Но если человек не сможет даже кавычку в нужном месте поставить... Тогда ему не только СП, а вообще ничего уже не поможет...
16 Новичёк123123
 
21.07.11
11:29
ЗначениеПараметра = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(АкционныйТовар" + Счет + ")]));<<?>>
{Справочник.Акции.Форма.Модуль(18)}: Пропущен символ '"' (двойная кавычка)
ЗначениеПараметра = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(АкционныйТовар" + Счет + ")]));<<?>>
{Справочник.Акции.Форма.Модуль(18)}: Ожидается символ ')'
ЗначениеПараметра = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(АкционныйТовар" + Счет + ")]));<<?>>
{Справочник.Акции.Форма.Модуль(18)}: Пропущен символ ';'
17 andrewks
 
21.07.11
11:29
(11)2. в данном случае измудряться ни к чему, можно ограничится и ПолучитьАтрибут
18 viktor_vv
 
21.07.11
11:29
(0) Ты бы еще уточнил у тебя это элементы формы или все же реквизиты справочника.
19 АЛьФ
 
21.07.11
11:30
Мда... Этого я и боялся...
2(16) 100 баксов и я тебе скажу где надо поставить кавычки.
20 АЛьФ
 
21.07.11
11:30
2(17) Да ну?! И не смущает, что он, как и строка всегда заполнен будет?
21 Новичёк123123
 
21.07.11
11:30
Я уже понял где нодо поставить) спасибо)
22 viktor_vv
 
21.07.11
11:32
(17) Вообще-то Форма.ПолучитьАтрибут() возращает ссылку на элемент формы, а не значение элемента.
23 Новичёк123123
 
21.07.11
11:36
ПолучитьАтрибут(<?>);
Синтаксис:
ПолучитьАтрибут(<ИмяРеквизита>)
Назначение:
Получить значение реквизита по имени идентификатора. Возвращает значение реквизита.
Параметры:
<ИмяРеквизита> - строковое выражение, содержащее имя реквизита, как оно задано в конфигураторе.
24 АЛьФ
 
21.07.11
11:37
2(23) Да не может этого быть! Вот ведь как оно...
25 Новичёк123123
 
21.07.11
11:38
Альф не издевайся) пока ещё много не опнимаю и туплю, но потихоньку учусь
26 1Сергей
 
21.07.11
11:39
(25) у тебя (7) работает?
27 Mikeware
 
21.07.11
11:40
(25) Ты просто внимательно читай СП.
28 Новичёк123123
 
21.07.11
11:41
Да с кавычками я разобрался оно постоянной ругается на скобку, сижу не могу понять что оно хочет...

ЗначениеПараметра = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр("АкционныйТовар" + Счет + ")]));

ЗначениеПараметра = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр("<<?>>АкционныйТовар" + Счет + ")])));
{Справочник.Акции.Форма.Модуль(18)}: Ожидается символ ')'
ЗначениеПараметра = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр("АкционныйТовар" + Счет + ")])));<<?>>
{Справочник.Акции.Форма.Модуль(18)}: Пропущен символ ';'

вот щас читаю жкк ищу там описание
29 1Сергей
 
21.07.11
11:42
(28) нифига ты не разобрался
30 Новичёк123123
 
21.07.11
11:42
аа помоему увидел
31 fedoss
 
21.07.11
11:43
(28) Нафига ты с Шаблоном заморачиваешься, сам же написал в (23)  -ПолучитьАтрибут("АкционныйТовар" + Счет)
32 1Сергей
 
21.07.11
11:44
ЗначениеПараметра = ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(АкционныйТовар" + Счет + ")]"));
33 Новичёк123123
 
21.07.11
11:45
сшаблонами ни разу не сталкивался(
34 Новичёк123123
 
21.07.11
11:47
Спасибо взлетело) Буду разбираться с шаблонами) Еще раз спасибо)
35 АЛьФ
 
21.07.11
12:03
2(32) Вот ты понимаешь, что сейчас лишил меня моих законно заработанных ста баксов? Как компенсировать планируешь?...
36 1Сергей
 
21.07.11
12:13
(35) шкуру непойманного медведя не делят
37 АЛьФ
 
21.07.11
12:15
2(36) Он был уже почти  меня в руках, а ты спугнул... Просто подставил... Не по-пацански это...
38 1Сергей
 
21.07.11
12:16
(37) почти не считается