Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С Битрикс
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
AKA-Taurus
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 11
1

Пропадают значения свойств в товарах

25.10.2017, 13:19. Просмотров 932. Ответов 19

Здравствуйте, пропадают значения свойств в товарах. Подскажите плиз, с чем может быть связана проблема и как её решить.

Пропадают значения свойств в товарах
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2017, 13:19
Ответы с готовыми решениями:

Пропадают границы блоков div при задании им свойств
Здравствуйте! Не знаю почему, но у меня, когда я создаю два блока без стиля внутри блока...

Ключи отображает корректно, а значения нет (при новом товаре пропадают старые значения)
Добрый день! Имеется база для отпуска товаров с магазинного склада, учет товаров происходит по...

Пропадают значения isset($_GET['patid'])
Здравствуйте. Есть таблица которая передает значения методом $_GET на другую страницу. Там они...

В режиме Release пропадают значения переменных
Здравствуйте, уважаемые форумчане! Помогите разобраться с проблемкой. Программа запускается без...

Значения свойств
Доброго. На официальном сайте на этой странице первый листинг: <?php class SimpleClass { ...

19
yamba
4 / 4 / 0
Регистрация: 24.10.2017
Сообщений: 14
25.10.2017, 13:37 2
Нужно обязательно смотреть после каких действий они пропадают. Как вариант: неправильное использование метода SetPropertyValues.
1
voral
941 / 631 / 142
Регистрация: 16.03.2008
Сообщений: 2,979
25.10.2017, 13:37 3
обмен с 1с или какойто самопальный функционал
1
AKA-Taurus
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 11
25.10.2017, 15:16  [ТС] 4
подскажите пжл, можно ли посмотреть эти действия в логах (и в каких логах, их там немерянно) и где искать SetPropertyValues?

Добавлено через 1 час 5 минут
подскажите пжл, можно ли посмотреть эти действия в логах (и в каких логах, их там немерянно) и где искать SetPropertyValues?
0
25.10.2017, 15:16
yamba
4 / 4 / 0
Регистрация: 24.10.2017
Сообщений: 14
25.10.2017, 15:19 5
https://wiki.iphoster.net/wiki/Bitri...BE%D0%B3%D0%B8

далее смотрим дату и время изменения испорченного элемента, смотрим что в логах. вероятно, что ничего не будет, если скрипт без ошибок отрабатывает.

логи на хостинге можно посмотреть. но я бы сначала выяснила у админа при каких событиях элементы могут портиться.

посмотрите bitrix/php_interface/init.php, может быть там что-то есть. может быть
Цитата Сообщение от voral Посмотреть сообщение
обмен с 1с
при синхронизации такая ерунда происходит или при импорте.

масса вариантов, нужно только анализировать.
1
AKA-Taurus
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 11
25.10.2017, 15:32  [ТС] 6
синхронизации с 1с нет, ни чего не импортировалось

Добавлено через 3 минуты
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "MinMaxSKUPriceUpdate");
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "MinMaxSKUPriceUpdate");
 
function MinMaxSKUPriceUpdate(&$arFields){
 
if($arFields['IBLOCK_ID']==2){
   
    $MIN_PRICE=0;
    $MAX_PRICE=0;
 
    $resffer = CIBlockPriceTools::GetOffersArray(
      2, 
      $arFields['ID'], 
      array("NAME"=>"asc"), 
      array('IBLOCK_ID', 'ID', 'CATALOG_GROUP_1'), 
      array(), 
      0, 
      array("BASE"), 
      "N"
   );
   if(is_array($resffer)){
      foreach ($resffer as $key => $value) {
            if($MIN_PRICE==0) $MIN_PRICE=$value['CATALOG_PRICE_1'];
            if($MAX_PRICE==0) $MAX_PRICE=$value['CATALOG_PRICE_1'];
 
            if(!isset($MIN_PRICE)){$MIN_PRICE = $value['CATALOG_PRICE_1'];}
            if(!isset($MAX_PRICE)){$MAX_PRICE = $value['CATALOG_PRICE_1'];}
 
 
            if($MIN_PRICE > $value['CATALOG_PRICE_1']){
               $MIN_PRICE = $value['CATALOG_PRICE_1'];
            }
            if($MAX_PRICE < $value['CATALOG_PRICE_1']){
               $MAX_PRICE = $value['CATALOG_PRICE_1'];
            }
      }
   }
 
   $arPrice = CCatalogProduct::GetOptimalPrice($arFields['ID'], 1, array(1,2,3,4,5,6,7));
      $MIN_PRICE=floatval($MIN_PRICE);
      if($MIN_PRICE=="") $MIN_PRICE=$arPrice["DISCOUNT_PRICE"];
   if($arPrice["DISCOUNT_PRICE"]!="" && $arPrice["DISCOUNT_PRICE"]<$MIN_PRICE){
      $MIN_PRICE=$arPrice["DISCOUNT_PRICE"];
    }
 
 
      $arFields['PROPERTY_VALUES']['MINIMUM_PRICE'] = $MIN_PRICE;
      $arFields['PROPERTY_VALUES']['MAXIMUM_PRICE'] = $MAX_PRICE;
}
   
}
?>
0
voral
941 / 631 / 142
Регистрация: 16.03.2008
Сообщений: 2,979
25.10.2017, 16:22 7
Возможно где то в вашем коде используется CIBlockElement::SetPropertyValues для установки значений только части свойств (не всех). Особенность метода, что свойства элемента, которые не переданы затираются. В таких случаях надо использовать CIBlockElement::SetPropertyValuesEx
1
AKA-Taurus
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 11
25.10.2017, 16:32  [ТС] 8
Пропадают значения свойств в товарах

оно?

Добавлено через 5 минут
Цитата Сообщение от voral Посмотреть сообщение
Возможно где то в вашем коде используется CIBlockElement::SetPropertyValues для установки значений только части свойств (не всех). Особенность метода, что свойства элемента, которые не переданы затираются. В таких случаях надо использовать CIBlockElement::SetPropertyValuesEx
это я уже понял, но не пойму пока что понять где этот метод указан, т.к. не шарю в структуре битрикс
0
voral
941 / 631 / 142
Регистрация: 16.03.2008
Сообщений: 2,979
25.10.2017, 17:04 9
Ну оно то оно.... Поищите по файлам использование этой функции. Для начала в каталогах
/local/
/bitrix/templates/
/bitrix/php_interface/
/bitrix/components/* (кроме bitrix)
/bitrix/modules/* (кроме bitrix)

Далее пройдитесь по остаkьным каталогам, кроме /bitrix/ , /upload/ если не повезет придется искать по всему ядру: /bitrix/
1
yamba
4 / 4 / 0
Регистрация: 24.10.2017
Сообщений: 14
25.10.2017, 17:13 10
Цитата Сообщение от AKA-Taurus Посмотреть сообщение
синхронизации с 1с нет, ни чего не импортировалось
Добавлено через 3 минуты
PHPВыделить код

<?
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "MinMaxSKUPriceUpdate");
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "MinMaxSKUPriceUpdate");
Там, вроде, всё ок, если это полная версия файла.

ищите здесь:
Цитата Сообщение от voral Посмотреть сообщение
Ну оно то оно.... Поищите по файлам использование этой функции. Для начала в каталогах
/local/
/bitrix/templates/
/bitrix/php_interface/
/bitrix/components/* (кроме bitrix)
/bitrix/modules/* (кроме bitrix)
Далее пройдитесь по остаkьным каталогам, кроме /bitrix/ , /upload/ если не повезет придется искать по всему ядру: /bitrix/
попробуйте просто поиск в этих папках по ключевому слову SetPropertyValues

И еще из опыта: встречала код на изменение элементов во всяких неожиданных местах, поэтому искать нужно во всех указанных выше папках. если не найдёте, попробуйте поискать CIBlockElement::Update
1
AKA-Taurus
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 11
25.10.2017, 17:20  [ТС] 11
нашёл в /bitrix/modules/iblock/classes/mysql/iblockelement.php
0
Миниатюры
Пропадают значения свойств в товарах  
AKA-Taurus
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 11
25.10.2017, 17:22  [ТС] 12
нужно просто заменить на CIBlockElement::SetPropertyValuesEx? - не повлечёт ли это какие либо последствия на работающем сайте?
0
yamba
4 / 4 / 0
Регистрация: 24.10.2017
Сообщений: 14
25.10.2017, 19:00 13
Цитата Сообщение от AKA-Taurus Посмотреть сообщение
не повлечёт ли это какие либо последствия на работающем сайте
не повлечёт, меняйте.

Добавлено через 43 минуты
Цитата Сообщение от yamba Посмотреть сообщение
не повлечёт, меняйте.
Стоп, поторопилася я с ответом. Не нужно менять. Это файлы ядра:

Цитата Сообщение от AKA-Taurus Посмотреть сообщение
нашёл в /bitrix/modules/iblock/classes/mysql/iblockelement.php
Лучше скиньте скриншот содержимого папки modules, тогда можно будет сказать нужно там что-то искать или нет.
1
AKA-Taurus
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 11
26.10.2017, 11:42  [ТС] 14
Цитата Сообщение от yamba Посмотреть сообщение
Лучше скиньте скриншот содержимого папки modules, тогда можно будет сказать нужно там что-то искать или нет.
Пропадают значения свойств в товарах
0
AKA-Taurus
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 11
26.10.2017, 11:45  [ТС] 15
Цитата Сообщение от yamba Посмотреть сообщение
Стоп, поторопилася я с ответом. Не нужно менять. Это файлы ядра:
это же файлы модуля iblock
0
yamba
4 / 4 / 0
Регистрация: 24.10.2017
Сообщений: 14
26.10.2017, 13:13 16
Цитата Сообщение от AKA-Taurus Посмотреть сообщение
это же файлы модуля iblock
Это файлы, которые лучше не трогать. Просто не посмотрела на путь к файлу.

Обновите систему.

Касательно левых модулей, которые стоит проверить:
justmozg.*, kda.*, nbrains.*

ну, и далее

/local/
/bitrix/templates/
/bitrix/php_interface/
/bitrix/components/* (кроме /bitrix/components/bitrix*)
по всем каталогам, кроме /bitrix/* , /upload/*

Ищем SetPropertyValues. Не помогло, ищем CIBlockElement::Update, в конце концов просто CIBlockElement по всем каталогам, кроме /bitrix/* , /upload/*
0
AKA-Taurus
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 11
30.10.2017, 16:34  [ТС] 17
провёл поиск по всему сайту, нашло 119 совпадений по SetPropertyValues
0
Миниатюры
Пропадают значения свойств в товарах  
AKA-Taurus
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 11
30.10.2017, 16:39  [ТС] 18
Цитата Сообщение от yamba Посмотреть сообщение
Ищем SetPropertyValues. Не помогло, ищем CIBlockElement::Update, в конце концов просто CIBlockElement по всем каталогам, кроме /bitrix/* , /upload/*
это оно?
\bitrix\modules\iblock\classes\mysql\iblockelement.php
Код
				CIBlockElement::SetPropertyValues($ID, $ar_element["IBLOCK_ID"], $arFields["PROPERTY_VALUES"]);
	function SetPropertyValues($ELEMENT_ID, $IBLOCK_ID, $PROPERTY_VALUES, $PROPERTY_CODE = false)
		foreach (GetModuleEvents("iblock", "OnIBlockElementSetPropertyValues", true) as $arEvent)
		foreach (GetModuleEvents("iblock", "OnAfterIBlockElementSetPropertyValues", true) as $arEvent)
0
yamba
4 / 4 / 0
Регистрация: 24.10.2017
Сообщений: 14
31.10.2017, 16:00 19
Не знаю, актуален ли будет ответ на сегодняшний день, но...
Писала же:
Цитата Сообщение от AKA-Taurus Посмотреть сообщение
кроме /bitrix/* , /upload/*
Чуете подвох?
Цитата Сообщение от AKA-Taurus Посмотреть сообщение
это оно?
\bitrix\modules\iblock\classes\mysql\iblockelement.php
0
AKA-Taurus
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 11
31.10.2017, 16:24  [ТС] 20
в других местах не чего подобного я не нашёл
0
31.10.2017, 16:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2017, 16:24

Не получаю значения из свойств
Добрый день помогите разобратся почему в методе getContent() , не поподают данные присвоенные в...

Не подставляются значения свойств обьекта
class simpleHouse { public $model= &quot;&quot;; public $square =0; public $floor =0; ...

MS SQL выборка свойств максимального значения
Доброго времени суток. Подскажите, как запросить остальные поля максимального значения по каждому...


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

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

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