Форум программистов, компьютерный форум, киберфорум
1С Битрикс
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/12: Рейтинг темы: голосов - 12, средняя оценка - 4.83
sMockingbird
282 / 282 / 72
Регистрация: 06.05.2013
Сообщений: 1,613
1

Деактивировать элемент при незаполненном поле

25.09.2013, 12:25. Просмотров 2187. Ответов 2
Метки нет (Все метки)

Добрый день.
Возможно ли сделать так, чтоб элемент каталога деактивировался автоматически, если у него не заполнены определённые поля?
Кроме варианта написАть скрипт, который переберёт все элементы, проверит и деактивирует, если надо)
Может есть какой то штатный способ?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 12:25
Ответы с готовыми решениями:

Как при незаполненном поле выводить все записи в отчет
Такая задача. Имеется некий отчет, который формируется на основе регистра остатков. В...

Можно ли деактивировать форму, при этом не деактивировать MainMenu и PopupMenu?
Здравствуйте. Проблема такая: мне нужно чтобы нельзя было кликать по форме, но при этом можно было...

Оповещение о незаполненном поле
Мне нужно сделать чтобы при отправке пустого сообщения выводилось сообщение над формой отправки...

Как деактивировать макрос при входе в Office. Переустановка не помогает
Добрый день, уважаемые. Не уверен что тема по адресу но все же. Написал на VB макрос для outlook...

2
tgarl
383 / 367 / 92
Регистрация: 15.02.2012
Сообщений: 1,478
25.09.2013, 16:12 2
штатно только если по умолчанию проставить у вновь создаваемого неактивен, и если забыл перевести активность элемент будет неактивным

иначе писать обработчик
1
sMockingbird
282 / 282 / 72
Регистрация: 06.05.2013
Сообщений: 1,613
25.09.2013, 16:44  [ТС] 3
tgarl, да, уже пытаюсь, спасибо)

Добавлено через 26 минут
tgarl, вроде набросал скрипт, но не работает.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$arSelect = Array("ID");
$arFilter = Array("IBLOCK_ID"=>"3", "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
$db_props = CIBlockElement::GetProperty("3", $arFields["ID"], array(), Array("CODE"=>"IMAGES"));
    if($ar_props = $db_props->Fetch()) {
if (!$ar_props["VALUE"]) {
$el = new CIBlockElement;
$arLoadProductArray = Array(
    "ACTIVE" => "N"
);
$PRODUCT_ID =  $arFields["ID"];
echo $PRODUCT_ID;
$res = $el->Update($PRODUCT_ID, $arLoadProductArray);
}
}
}
 
 
?>
Если вместо $arFields["ID"] задать строго id элемента, то всё норм, он его находит и деактивирует.
А так нет. В конце выводит правильный id, но только один, самый первый по ходу. Его деактивирует и всё.
Даже футер не грузит на этой страничке)
Вся проблема в последней строке, update. Наверное слишком много изменений сразу, примерно 2000 элементов)
0
25.09.2013, 16:44
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2013, 16:44

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как деактивировать ячейку, не потеряв при этом выбранный диапазон
Здравствуйте! Нужна помощь. Но основе выбранного (вручную) диапазона нужно построить график с...

Вывести сообщение о незаполненном Edit
В Edit вводится имя и необходимо, чтобы если ничего в него не было записано вывести сообщение...

Как "деактивировать" popupmenu при наведении на другой компонент
Обычно оно деактивируется когда кликаешь куда-нибудь,а потом при вызове опять появляется. А мне...

Написать сценарий, который при вводе текста в текстовом поле будет формировать элемент списка с этим текстом
Напишите сценарий, который при вводе текста в текстовом поле (&lt;input type=”text”&gt;), после нажатия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.