г. Санкт-Петербург
Войти
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Заказать звонок
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности


1
3
4
5
6
7
8
9
10
11
12
Модуль обмена для передачи Скидок из 1С в БУС Битрикс, Основная проблема порталов в отсутствии данных о скидках передаваемых из системы 1С в Битрикс, предлагаемое решение решает вопросы выгрузки данных из 1С
 
Очень много написано о выгрузке битрикс но весьма пространно затронута часть по работе скидок в системе битрикс-1С.

БУС или (Битрикс Управление Сайтом) - в базе умеет работать со скидками, но напрочь отсутствует функционал позволяющий загружать эти скидки и уж тем более синхронизировать это с пользователями.

При создании модуля мы учли три типа скидок наиболее часто используемые компаниями

Это скидки:

[LIST=1]
[*]По самой Номенклатуре ( Конкретной позиции)
[*]Скидка целиком на Бренд
[*]Скидка на Раздел (Товарный каталог)
[/LIST]Созданный модуль позволяет выгружать в сторону 1С и в последствии получать цену клиентов в заказы обратно в 1С.

Со стороны 1С мы выгружаем файлы содержащие идентификатор каждого контрагента, а именно 1С UID что обеспечивает 100% совпадение при загрузке.

Т.к на этапе загрузки выясняется что контрагенты могут иметь одинаковые ИНН, е-мейлы и прочие реквизиты, что не дает 100% гарантии, что такой элемент будет уникален.


[B]Выгрузка позволяет:
[/B]
Возможности:
Выгружать целиком всех контрагентов с признаком "Клиент b2b"

Выгружать е-мейл адреса, договоры контрагентов, ИНН , Наименование и прочие сопутствующие реквизиты Справочника 1С - "Номенклатура"

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

Выгружать взаиморасчеты в виде акта с динамическим отбором по датам.



Модуль уведомляет менеджера на почту (при необходимости SMS, о поступлении нового заказа из Битрикс b2b - кабинета)

[B]Совместимость:[/B]

Выгрузка строится на любой стандартной конфигурации 1С, Тестированные конфигурации УТ10.3 , УТ11,4 , КАА

[B]Совместимость с решениями Битрикс:
[/B]
Для снижения стоимости разработки модуль - Скидок - Цен - Клиентов может быть интегрирован в любое решение на базе Битрикс Управление сайтом - с поддержкой корзины и личного кабинета.

[B]Оптимизация
[/B]
На этапе выгрузки данных о контрагентах в базовой версии корзины и каталога можно будет столкнуться с проблемой быстродействия.

Даже на самых быстрых конфигурация хостинга в базовой версии реализации корзины присутствуют проблемы производительности, а скорость работы каталога свыше 300 пользователей будет не приемлима.

Для ускорения решения от 1С-Битрикс, Добавлена версия модуля позволяющая ускорить вывод каталога со скидками и бонусами более чем в 10раз по сравнению с базовым функционалом.

[B]Стандартизация
[/B]
Модуль построен с соблюдением стандартизации и методики разработки битрикс, но без условно на каком то из этапов потребуется выбирать либо пользоваться штатным функционалом получения цен, либо получить новые возможности.

[B]Дополнительные возможности:
[/B]
[LIST]
[*]Модуль позволяет выгружать данные и скидки контрагентов частично, для более быстрой передачи информации по ценам.
[*]Выгружаться могут как Скидки - (Персональные цены контрагентов), так и "Бонусы", для передачи бонуса при покупке.
[*]Система уведомлений предоставляет данные по каждой прогрузке, таким образом вы всегда знаете какие клиенты находятся в базе сайта.
[/LIST]
Изменено: pilot - 18.05.2021 09:45:41
Поступление антекс май 2021, Ожидается поступление Антенн антенкс
 
Перечень

Антенна AGATA-2 MIMO miniBOX (GSM-1800/3G/WiFi/LTE2600) 17Дб/2*SMA-male/удлинитель USB 10м/без адаптеров 10 Антенна PETRA Lite BOX HOME/ MIMO/ F=1700-2700 МГц./ КУ=9dBi./ удлинитель USB 10м/ Разъемы 2*CRC9 4шт
Антенна MAGNITA-1ЧЕРНАЯ (GSM-1800/3G/WiFi/4G)/круговая/магнитная/7Дб/RG58 3м/SMA-male 8шт
Антенна MAGNITA-2 (GSM-900,1800/3G/WiFi/4G)/круговая/антивандальная/КУ 7Дб/RG-58 2м/SMA-male 4шт
Антенна PETRA BB 75 4шт
Антенна Petra Broad Bend MIMO UniBox-2 (GSM-1800/3G/Wi-Fi+4G MIMO), направленная, тип-панельная/15Дб/USB удлинитель 10м/без адаптеров 20шт
Антенна Petra Broad Bend MIMO UniBox-2 (GSM-1800/3G/Wi-Fi+4G MIMO ), направленная, тип-панельная/15Дб/гермоввод AX-RJ45 Антэкс/ SIM-удлинитель/ без удлинителя USB/без адаптеров 10шт
Антенна Petra Broad Bend MIMO 2x2 (3G + 4G MIMO) ,направленная, тип-панельная/14Дб,2*N-female 4шт
Антенна Petra Broad Bend 75 MIMO 2x2 (3G + 4G MIMO) ,направленная, тип-панельная/14Дб,2*F-female 10шт
Антенна AGATA MIMO 2x2 (3G MIMO + 4G MIMO) , направленная, тип-панельная/17Дб/2*N-female 2шт
Антенна AGATA MIMO BOX (GSM-1800/3G/WiFi/LTE2600) 17Дб/2*SMA-male/удлинитель USB 10м/без адаптеров 4шт
AXS-1 - подставка для панельной антенны Антэкс 2шт
Антенна AGATA-2F MIMO 2x2 (3G MIMO + 4G MIMO 2х2) , направленная, тип-панельная/17Дб/2*F-female 7шт

приобрести можно через каталог: [URL=https://s-alpha.ru/catalog/usilenie_internet_i_mobilnogo_4g_lte_3g/]https://s-alpha.ru/catalog/usilenie_internet_i_mobilnogo_4g_lte_3g/[/URL]
Оптимизация работы со скидками в Битрикс при повышении количества пользователей с разными типами скидок, Необходимость в оптимизации возникает уже после того, как количество активных пользователей переваливает за 100.
 

Необходимость в оптимизации возникает уже после того, как количество активных пользователей переваливает за 100.

В стандартном варианте скидки (правила корзины) считаются динамически, при каждом обновлении страницы.

И при повышении числа пользователей b2b портала или корзины до 1000

Приводит к фактически полному зависанию работы корзины даже на самых мощных конфигурациях

При этом наличие задаваемых вручную скидок, а также мультивалютности еще более осложняет ситуацию со скоростью отображения страницы.

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

В итоге, механизм получения данных и последующего вывода выглядит следующим образом:

1. При выгрузке скидок из 1с для каждого пользователя рассчитываются все его цены из созданных для него правил, и складываются в отдельную таблицу (в текущем варианте в MySQL, работа с другими хранилищами - дело отдельного этапа).

Цены рассчитываются достаточно продолжительное время в сравнении с адекватным временем отображения страницы, поэтому это наиболее удачное место для осуществления данной операции.

2. В компоненте Каталога корзины осуществляется выборка этих данных в JS-переменную, а в JS-компоненте - вывод.

При этом данные выбираются один раз, а дальше кешируются.


Механизм кэширования может пересматриваться в дальнейшем, в зависимости от насущных потребностей в скорости отображения. В текущем варианте используется APC cache, поскольку это стандартный механизм, идущий вместе с самим PHP.

Для работы кэша необходимо поставить соответствующее расширение.
В CentOS 7, на которой построена BitrixVM, это команды:

yum install php-pecl-apcu.x86_64
yum install php-pecl-apcu-bc.x86_64

3. В дальнейшем при росте числа пользователей планируется осуществлять мониторинг и доработки в соответствии с полученными данными (отдельным этапом).

Проблема с удаление оплат и отгрузок на Битрикс при обмене с 1С, УДаляются оплаты после синхронизации заказов с Битрикс (БУС)
 
Иногда возникает проблема и 1С при обмене с Битрикс Управление сайтом затирает оплаты, причём так что их даже не поставить на место

проблема решается не очень красиво но полностью исправлением в модуле

/home/bitrix/www/bitrix/modules/sale/lib/exchange > importonecpackage.php

Инструкцию надо выполнить строго так как написано ниже внимательно!
[CODE]//766-776 строки комментируем

/**if(static::$config & static::DELETE_IF_NOT_FOUND_RELATED_PAYMENT_DOCUMENT)
{
$paymentResult = $this->onBeforePaymentCollectionModify($orderImport, $items);
if(!$paymentResult->isSuccess())
$result->addWarnings($paymentResult->getErrors());
}

$shipmentResult = $this->onBeforeShipmentCollectionModify($orderImport, $items);

if(!$shipmentResult->isSuccess())
$result->addWarnings($shipmentResult->getErrors());**/

778 строка согласно логике комментируем отгрузки и оплаты

/*|| !$shipmentResult->isSuccess() || !$paymentResult->isSuccess()*/
[/CODE]
Взято с форума Битрикс [URL=https://dev.1c-bitrix.ru/support/forum/messages/forum26/topic82031/message531053/#message531053]https://dev.1c-bitrix.ru/support/forum/messages/forum26/topic82031/message531053/#message531053[/URL]
Восстановление оплат и после синхронизации Битрикс с 1С, Иногда при синхронизации Битрикс и БУС (Сайта на битрикс) происходит удаление оплат и отгрузок
 
Есть модуль sale, версии 17.8.14. Есть модуль обмена с 1С, версии 7.0.13.
В текущей реализации модуля при импорте заказов есть только 1 проверка:
если оплата/отгрузка отсутствует в импортируемом файле - то она удаляется. Что и происходит при отключенных выгрузках оплат/отгрузок.

Вариант решения - запоминать и восстанавливать.
Для этого цепляем обработчики на события 'OnBeforeCollectionDeleteItem' и 'OnSaleOrderBeforeSaved' модуля 'sale'.

Первое из них происходит перед удалением элемента коллекции оплат/отгрузок, второе - перед сохранением заказа. Что интересно, для элемента коллекции оплат есть отдельное событие перед удалением: 'OnBeforeSalePaymentEntityDeleted', но вот для элемента коллекции отгрузок аналога нет.


[CODE]use \Bitrix\Main\EventManager;
use \Bitrix\Main\Event;
use \Bitrix\Main\Entity;
use \Bitrix\Sale\Order;
use \Bitrix\Sale\Payment;
use \Bitrix\Sale\PaySystem\Manager;
use \Bitrix\Sale\Shipment;
use \Bitrix\Sale\Helpers\Admin\Blocks\OrderBasketShipment;


$inst = EventManager::getInstance();
$inst-> addEventHandler('sale', 'OnBeforeCollectionDeleteItem', 'saveInfo');
$inst-> addEventHandler('sale', 'OnSaleOrderBeforeSaved', 'reverseInfo');

//Небольшая прослойка, возвращает доступные поля
/**
* @param array $arValues
* @param array $allowedFields
* @return array $result
*/
function checkFields( $arValues, $allowedFields) {
$result = array();
foreach ( $arValues as $key => $value ) {
if ( in_array( $key,$allowedFields ) && !in_array($key, array('ACCOUNT_NUMBER')) ) {
$result[$key] = $value;
}
}
return $result;
}

function saveInfo(\Bitrix\Main\Event $event ) {
/**
* @var \Bitrix\Sale\Shipment|\Bitrix\Sale\Payment $entity
*/
if ( $_SESSION['BX_CML2_EXPORT'] ) {
$entity = $event->getParameter('ENTITY');
if ( $entity instanceof Shipment ) {
if ( !is_array( $_SESSION['BX_CML2_EXPORT']['DELETED_SHIPMENTS'] ) )
$_SESSION['BX_CML2_EXPORT']['DELETED_SHIPMENTS'] = array();
if ( !$entity->isSystem() )
$_SESSION['BX_CML2_EXPORT']['DELETED_SHIPMENTS'][] = checkFields( $entity->getFields()->getValues(), Shipment::getAvailableFields() );
}
if ( $entity instanceof Payment ) {
if ( !is_array( $_SESSION['BX_CML2_EXPORT']['DELETED_PAYMENTS'] ) )
$_SESSION['BX_CML2_EXPORT']['DELETED_PAYMENTS'] = array();
$_SESSION['BX_CML2_EXPORT']['DELETED_PAYMENTS'][] = checkFields( $entity->getFields()->getValues(), Payment::getAvailableFields() );
}
}
else {
return;
}
}

function reverseInfo(\Bitrix\Main\Event $event ) {
/**
* @var \Bitrix\Sale\Order $order
* @var \Bitrix\Sale\ShipmentCollection $shipmentCollection
* @var \Bitrix\Sale\Shipment $shipment
* @var \Bitrix\Sale\PaymentCollection $paymentCollection
* @var \Bitrix\Sale\Payment $payment
* @var \Bitrix\Sale\PropertyValue $somePropValue
* **/
if ( $_SESSION['BX_CML2_EXPORT'] ) {
$order = $event->getParameter("ENTITY");
if ( $_SESSION['BX_CML2_EXPORT']['DELETED_SHIPMENTS'] ) {
//Вернем отгрузки
$shipmentCollection = $order->getShipmentCollection();
$systemShipmentItemCollection = $shipmentCollection->getSystemShipment()->getShipmentItemCollection();$products = array();
$basket = $order->getBasket();
if ($basket)
{
/** @var \Bitrix\Sale\BasketItem $product */
$basketItems = $basket->getBasketItems();
foreach ($basketItems as $product)
{
$systemShipmentItem = $systemShipmentItemCollection->getItemByBasketCode($product->getBasketCode());
if ($product->isBundleChild() || !$systemShipmentItem || $systemShipmentItem->getQuantity() <= 0)
continue;

$products[] = array(
'AMOUNT' => $product->getQuantity(),
'BASKET_CODE' => $product->getBasketCode()
);
}
}
/** @var \Bitrix\Sale\Shipment $obShipment */
/** @var array $shipmentFields */
foreach ( $_SESSION['BX_CML2_EXPORT']['DELETED_SHIPMENTS'] as $shipmentFields ) {
$fg = true;
foreach( $shipmentCollection as $obShipment ) {
if ($obShipment->isSystem())
continue;
$usedFields = checkFields($obShipment->getFields()->getValues(), Shipment::getAvailableFields() );
if ( count( array_diff_assoc( $shipmentFields, $usedFields) ) == 0 )
$fg = false; //доставка с такими полями уже есть
}
if ( $fg ) {
$shipment = $shipmentCollection->createItem();
$shipment->setFields( $shipmentFields );
OrderBasketShipment::updateData($order, $shipment, $products);
}
}
unset( $_SESSION['BX_CML2_EXPORT']['DELETED_SHIPMENTS'] );
}
if ( $_SESSION['BX_CML2_EXPORT']['DELETED_PAYMENTS'] ) {
//Вернем оплаты
$paymentCollection = $order->getPaymentCollection();
/** @var \Bitrix\Sale\Payment $obPayment */
/** @var array $paymentFields */
foreach ( $_SESSION['BX_CML2_EXPORT']['DELETED_PAYMENTS'] as $paymentFields ) {
$fg = true;
foreach( $paymentCollection as $obPayment ) {
$usedFields = checkFields( $obPayment->getFields()->getValues(), Payment::getAvailableFields() );
if ( count( array_diff_assoc( $paymentFields, $usedFields) ) == 0 )
$fg = false; //такая оплата уже есть
}
if ( $fg ) {
$payment = $paymentCollection->createItem();
$payment->setFields( $paymentFields );
}
}
unset( $_SESSION['BX_CML2_EXPORT']['DELETED_PAYMENTS'] );
}
//Проверим сумму заказа
$paymentCollection = $order->getPaymentCollection();
if ( ($sumP = $paymentCollection->getSum() ) != ($sumO = $order->getPrice() ) ) {
$diff = $sumO - $sumP;
$innerPayID = Manager::getInnerPaySystemId();
foreach ( $paymentCollection as $payment ) {
if ( $payment->getPaymentSystemId() != $innerPayID) {
$newVal = floatval($payment->getField("SUM")) + floatval($diff);
$payment->setField("SUM", $newVal);
}
}
}
}
}[/CODE]
БИТРИКС ОБРАБОТЧИКИ СОБЫТИЙ. OnAfterIBlockElementUpdate
 
БИТРИКС ОБРАБОТЧИКИ СОБЫТИЙ. ONAFTERIBLOCKELEMENTUPDATE.

Для решения задачи обновления свойств элементов в Битрикс иногда может понадобится использовать события Битрикса.

Сейчас мы рассмотрим работу с событием OnAfterIBlockElementUpdate.

Идем по порядку.

Пример использования OnAfterIBlockElementUpdate:[CODE]AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("UpdateElement", "Update"));
class UpdateElement
{
//Чтобы у нас не было 504 ошибки необходимо прописать этот код, он не дает зациклится нашему скрипту
public static $disableHandler = false;

function Update(&$arFields)
{
if (self::$disableHandler)
return;

CModule::IncludeModule("iblock");

//Обновляем только элементы из определенного инфоблока
if( $arFields["ID"]> 0 && $arFields["IBLOCK_ID"] == "7")
{

$el = new CIBlockElement;

$arLoadProductArray = Array(
"ACTIVE" => "Y", //делаем элемент активным
);

self::$disableHandler = true; //отключаем
if($res = $el->Update($arFields["ID"], $arLoadProductArray))

{
//Здесь может быть ваш код, echo написанное здесь выводится не будет
echo 'Обновление завершено';
}

}

}
}
?>
[/CODE]

События Битрикса очень мощьный инструмент, который во многих случаях может облегчить жизнь разработчику! На этом все, в следующих статьях обязательно опишу пример с событиями поинтереснее.

О событиях, которые возникают при импорте каталога из 1С в Битрикс
 
О событиях, которые возникают при импорте каталога из 1С в Битрикс

В контексте интеграции 1С Предприятия и Битрикс не утихают споры по поводу того, какие события при этом отрабатывают, а какие не отрабатывают. А спорить, в общем-то, не о чем – благо, Битрикс поставляется нам в исходных кодах.
Класс импорта CIBlockCMLImport, который я так люблю наследовать, описан в файле
\bitrix\modules\iblock\classes\general\cml2
Открыв этот файл, мы ясно видим, что элементы инфоблока товаров, как и элементы инфоблока предложений добавляются функцией CIBlockElement::Add
, а изменяются функцией CIBlockElement::Update

Исходные коды этих функций мы можем посмотреть в файлах (в одном описан класс CAllIBlockElement в другом – его наследник CIBlockElement)
\bitrix\modules\iblock\classes\general\iblockelement.php
\bitrix\modules\iblock\classes\mysql\iblockelement.php

Что же мы видим там?
В функции Add имеется вот такая конструкция – перед самым сбросом управляемого кеша:

$events = GetModuleEvents("iblock", "OnAfterIBlockElementAdd");
while ($arEvent = $events->Fetch())
ExecuteModuleEventEx($arEvent, array(&$arFields));

То есть вызывается и отрабатывает событие OnAfterIBlockElementAdd Причем каждый из описанных обработчиков этого события. Как мы можем видеть, вызов этого события происходит всегда – безусловно, то есть каждый раз при отработке функции CIBlockElement::Add и не важно, вызвана ли она в классе импорта или где-то еще.

Кроме этого в этой же функции вызывается другое событие

if(!isset($arFields["WF_PARENT_ELEMENT_ID"]) && $arIBlock["FIELDS"]["LOG_ELEMENT_ADD"]["IS_REQUIRED"] == "Y")
{
$USER_ID = is_object($USER)? intval($USER->GetID()) : 0;
$db_events = GetModuleEvents("main", "OnBeforeEventLog");
$arEvent = $db_events->Fetch();

}Но не каждый раз, а по условию. Это не что иное, как событие при записи в журнал событий. И оно выполняется, если в настройках инфоблока указано журналировать добавление элемента.

А вот вызова события OnBeforeIBlockElementAdd я в функции Add не нашла (оно там есть, но вызвано не напрямую). Нет его и в классе импорта CIBlockCMLImport

Посмотрим теперь, что у нас имеется в функции CIBlockElement::Update

$events = GetModuleEvents("iblock", "OnAfterIBlockElementUpdate");
while ($arEvent = $events->Fetch())
ExecuteModuleEventEx($arEvent, array(&$arFields));

Вызов события OnAfterIBlockElementUpdate – имеется
Вызова события OnBeforeIBlockElementUpdate – не имеется

Зато вызовы событий OnBeforeIBlockElementUpdate и OnBeforeIBlockElementAdd присутствует в методе класса CAllIBlockElement CheckFields, который в свою очередь вызывается и в Add, и в Update Но функция CheckFields вызывается в них уже по условию.

Из вышесказанного я делаю следующие выводы: безусловно, при импорте каталога из 1С Предприятия в Битрикс отрабатывают обработчики событий OnAfterIBlockElementAdd и OnAfterIBlockElementUpdate, они отрабатывают уже после вставки/обновления элемента и, в принципе, могут быть использованы для модификации данных в инфоблоке, но ценой дополнительных запросов к базе. А дополнительные запросы к базе при импорте – это порой убийство импорта.

События OnBeforeIBlockElementUpdate и OnBeforeIBlockElementAdd так же могут отрабатывать при импорте при определенных условиях, однако уже по тому, каким образом они вставлены в исходный код битрикс, видно, что они задуманы не для модификации данных перед вставкой/обновлением, а для какой-то необычной кастомной проверки, возможно, какого-то поля необычного формата.

Поэтому, как я уже писала в одной из предыдущих статей, мне однозначно не нравится кастомизация импорта посредством использования этих событий – я для этих целей предпочитаю кастомизировать компонент импорта и наследовать класс CIBlockCMLImport, добавив наследнику требуемый функционал. Еще лучшим решением было бы конечно, написание, композитного класса, но это очень трудоемко. (Кстати, как видно из исходных кодов, разработчики Битрикс не гнушаются использовать наследование, значит и нам – сам Бог велел).

О событиях, возникающих при добавлении/обновлении раздела инфоблока, а так же при обновлении/добавлении цены товара я писать здесь не буду – нужно вклиниться в них – открываем исходники и смотрим, где они и как.

О событии
foreach(GetModuleEvents("catalog", "OnSuccessCatalogImport1C", true) as $arEvent)
ExecuteModuleEventEx($arEvent);которое Битриксоиды вставили прямо на последний шаг работы своего стандартного компонента импорта из 1С, наверное, знают все. Но если вы используете его для кастомизации импорта … это плохо.

Единственное, что можно безболезненно повесить на это событие – это, к примеру, отправку письма администратору сайта о том, что импорт успешно завершен или что-то иное в этом роде. Но, к примеру, обходить в обработчике этого события весь многотысячный каталог и что-то там перераспределять – пересчитывать…. я думаю, все уже поняли, каково мое мнение на этот счет, так что я воздержусь от нелитературных выражений.

Я думаю, к интеграции 1С Предприятия и Битрикс нельзя подходить по принципу «если работает, то ничего не нужно менять». Нужно оптимизировать, оптимизировать и еще раз оптимизировать.

статья взята с сайта: [URL=http://bedrosova.blogspot.com/2013/04/1.html]http://bedrosova.blogspot.com/2013/04/1.html[/URL]
Если битрикс требует обязательно авторизации при оформлении заказа, Если при входе в оформление заказа bitrix начинает спрашивать принудительно авторизацию
 
Нужно снять галку

В настройках основного модуля:

[TABLE][TR][TD]Запрашивать подтверждение регистрации по email ([URL=https://s-alpha.ru/bitrix/admin/message_admin.php?lang=ru&set_filter=Y&find_type_id=NEW_USER_CONFIRM]почтовые шаблоны[/URL]):

[/TD][/TR][/TABLE]
Битрикс Если необходимо копировать значение реквизита в свойство например ШтрихКод, Выгрузка в свойство реквизита из 1С для БУС Битрикс
 
Задача:

Необходимо выгружать штрихкод яндекс маркета из 1С на сайт и при выгрузке из 1с если поле это не пустое копировать в свойство штрихкод

Если же все же оно пустое то копировать не надо.

Решается добавлением двух хандлеров на обновление элемента и добавление

и функции OnAfterIBlockEl

//Функция при добавлении или изменении элемента выполняется код функции

[CODE]AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "OnAfterIBlockEl");
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnAfterIBlockEl");

function OnAfterIBlockEl(&$arFields) {

if (CModule::IncludeModule("iblock")):
$res = CIBlockElement::GetByID($arFields['ID']);
if($obRes = $res->GetNextElement())
{
$ar_res = $obRes->GetProperty("SHTRIKHKOD_DLYA_MARKETA");

//В вашем случае SHTRIKHKOD_DLYA_MARKETA - нужно заменить на символьный код нужного св-ва

$setProperty = $ar_res['VALUE'];
}

endif;

//проверка, если setProperty не пустая то значение копируется в свойство CML2_BAR_CODE

if(!empty($setProperty)){
CIBlockElement::SetPropertyValuesEx (
$arFields['ID'],$arFields['IBLOCK_ID'],array (
'CML2_BAR_CODE' => $setProperty
)
);
}

}
[/CODE]
//В вашем случае CML2_BAR_CODE - нужно заменить на символьный код нужного св-ва
Замена перевыпущенного сертификата Exchange 2010 в связке с TMG, Замена производится при обновлении сертификата перевыпуске и в связке с эксченджем и тмг
 

1. перевыпуск сертификата производим заранее т.к обычно это занимает не менее 4-6 часов в зависимости от поставщика

В первую очередь потребуется доступ к administrator@ваш_домен т.к обычно именно на эту почту высылают запросы на подтверждение выпуска сертификата и таким образом вы подтверждаете права на домен.

потребуется : подтвердить перевыпуск.
потом подтвердить выпуск


Получив сертификат в виде crt

обычно это файл crt , bundle и закрытый ключ

нам потребуется сертификат PKCS#12

Его легко можно за минуту собрать через сайт:


распакуйте ваш архив с сертификатом в первое поле установите файл crt

во второе .key (закрытый ключ)

[URL=https://www.leaderssl.ru/tools/ssl_converter]https://www.leaderssl.ru/tools/ssl_converter[/URL]

2. Получив pfx (Pks12) файл идем на сервер exchange

mmc - открываем сертификаты - компьютер (см фото)

Импортируем в раздел личные (компьютера) новый сертификат

ВНИМАНИЕ! нужно обязательно ставить галку для экспорта т.к в этом случае в сертификат будет включен закрытый ключ.

3. в exchange идем в раздел Настройка серверов
раздел "сертификаты exchange" видим нужны сертификат (проверяем по дате) настраиваем на него все службы

IMAP, POP, IIS ,SMTP

4. Настройка TMG в mmc - открываем сертификаты - компьютер (см фото)
Импортируем в раздел личные новый сертификат.(так же как в пункте 2) но TMG обычно установлен на другом компьютере и там тоже потребуется его добавить

идем в консоль ТМГ выбираем веб-прослушиватель Exchange(в вашем случае он может  называться иначе) в нем перевыбираем новый сертификат.

Правило можно сразу протестировать, если сертификат вы не видите то скорей всего вы его импортировали без закрытого ключа
Изменено: pilot - 09.03.2021 18:45:48
1
3
4
5
6
7
8
9
10
11
12