• Каким образом в Битриксе назначать стоимость доставок при синхронизации?

    @Evanescing
    Изменение стоимости доставки заказа с созданными отгрузками:
    $shipmentCollection = $orderBx->getShipmentCollection();
    $shipment = $shipmentCollection->createItem();

    или
    $shipmentCollection = $orderBx->getShipmentCollection();
    $shipment = $shipmentCollection->createItem(
    	Delivery\Services\Manager::getObjectById($deliveryID) // ID службы доставки
    );

    Установка стоимости доставки
    $price = 123;
    $shipment->setBasePriceDelivery($price);
    Ответ написан
    Комментировать
  • Узнать купоны введенные пользователем в Bitrix?

    @tgarl
    Я список купонов перед заказом получаю так:
    $basket  = \Bitrix\Sale\Basket::loadItemsForFUser(
       \CSaleBasket::GetBasketUserID(),
        "s1" 
    );
     $order  = Bitrix\Sale\Order::create( "s1" , \Bitrix\Sale\Fuser::getId());
     $order ->setPersonTypeId( 1 );
     $order ->setBasket( $basket );
     $discounts  =  $order ->getDiscount();
     $res  =  $discounts ->getApplyResult();
     foreach($res['COUPON_LIST'] as $cupo_n=>$ar_r){
    ...
    тут проводим манипуляцую с купоном
    ...
    }

    Примерно как нужно я показал, дальше отталкивайтесь от своей задачи.
    Ответ написан
    4 комментария
  • Реализация алгоритма нормализации XML для СМЭВ 3?

    @Danbka Автор вопроса
    Моя реализация алгоритма на PHP:

    https://github.com/Danbka/smev-transform
    Ответ написан
    Комментировать
  • Реализация алгоритма нормализации XML для СМЭВ 3?

    IvanU7n
    @IvanU7n
    Для будущих искателей: вот такой монстрик у меня получился (PHP 7.1). Он проходит все проверки из МР 3.5, но, возможно, некоторых нюансов не учитывает.
    <?php
    $in = new DOMDocument();
    $in->load($argv[1]);
    
    $out = new XMLWriter();
    $out->openMemory();
    
    $index = 0;
    $stack = [null, [$in->documentElement, []]];
    while (count($stack)) {
    	$item = array_pop($stack);
    	if ($item === null) {
    		$out->text('');
    		$out->endElement();
    		continue;
    	}
    	[$node, $nsList] = $item;
    	if ($node->nodeType == XML_ELEMENT_NODE) {
    		// Let the magic begin! ;)
    		// The element itself.
    		if ($node->namespaceURI !== null) {
    			$thisLevel = false;
    			if (($nsList[$node->namespaceURI] ?? null) === null) {
    				$thisLevel = true;
    				$nsList[$node->namespaceURI] = 'ns' . ++$index;
    			}
    			$out->startElement("{$nsList[$node->namespaceURI]}:{$node->localName}");
    			if ($thisLevel) {
    				$out->writeAttribute("xmlns:{$nsList[$node->namespaceURI]}", $node->namespaceURI);
    			}
    		}
    		else {
    			$out->startElement($node->localName);
    		}
    		// Attributes.
    		$attrs = iterator_to_array($node->attributes);
    		usort($attrs, function($a, $b) {
    			if ($a->namespaceURI !== null && $b->namespaceURI === null) return -1;
    			else if ($a->namespaceURI === null && $b->namespaceURI !== null) return 1;
    			else return strcmp($a->namespaceURI, $b->namespaceURI) ?: strcmp($a->localName, $b->localName);
    		});
    		foreach ($attrs as $attr) {
    			if ($attr->namespaceURI !== null && ($nsList[$attr->namespaceURI] ?? null) === null) {
    				$nsList[$attr->namespaceURI] = 'ns' . ++$index;
    				$out->writeAttribute("xmlns:{$nsList[$attr->namespaceURI]}", $attr->namespaceURI);
    			}
    		}
    		foreach ($attrs as $attr) {
    			if ($attr->namespaceURI !== null) {
    				$out->writeAttribute("{$nsList[$attr->namespaceURI]}:{$attr->localName}", $attr->nodeValue);
    			}
    			else {
    				$out->writeAttribute($attr->localName, $attr->nodeValue);
    			}
    		}
    	}
    	else if ($node->nodeType == XML_TEXT_NODE && strlen(trim($node->nodeValue))) {
    		$out->text($node->nodeValue);
    	}
    
    	if ($node->lastChild !== null) {
    		$stack[] = null;
    		for ($node = $node->lastChild; $node !== null; $node = $node->previousSibling) {
    			$stack[] = [$node, $nsList];
    		}
    	}
    }
    
    echo $out->outputMemory(), "\n";
    
    ?>
    Ответ написан
    9 комментариев
  • Существует ли API Кинопоиска?

    @1Bragim0ff
    Асинхронный и типизированный Python модуль для работы с kinopoiskapiunofficial.tech - KinopoiskApi.
    Ответ написан
    Комментировать
  • Как подписаться на событие подписки на товар?

    @run182 Автор вопроса
    Рано сдался)
    Событие - \Bitrix\Catalog\Subscribe::onAdd

    Помогла статья https://dev.1c-bitrix.ru/learning/course/index.php.... В ней говорится про событиях ORM. Класса Subscribe конечно нет, но есть SubscribeTable. С SubscribeTable не работает, но убрав Table заработало!
    Ответ написан
    Комментировать
  • Зачем нужен RDP, VNC и вообще разнообразие протоколов?

    @stratosmi
    Во первых:
    RDP != VNC, TeamViewer - так как RDP работает в отдельной сессии.
    На одном сервере может быть несколько подключений под RDP, они не видят экранов друг друга, их клавишы/мышь передаются независимо, у каждого в свою сессию.

    Во вторых:
    http передавать, например команды, нажатые клавиши и т.д. через JSON, картинки типа рабочий стол в png/jpg. Зачем для этого использовать отдельный протокол?

    http - протокол нижнего уровня.
    Если вы поверх него каким то образом собираетесь передавать клавишы и пр. - вам нужно будет придумать поверх http свой протокол

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

    В четвертых:
    http не очень хорош как протокол оперативного двустороннего обмена (что и вызвало появление WebSocket).

    В пятых:
    Team Viewer - http

    Это не так

    В шестых:
    Зачем они используют разные протоколы?

    Ну давайте все будем использовать ту технологию что придумана когда-то.
    Ну например, ездить на автомобилях без пневматических шин, с деревянными колесами.
    Множество протоколов возникает:
    а) как процесс совершенствования, как решение каких то дополнительных уникальных проблем.
    б) некоторые протоколы, как протокол TeamViewer - закрыты и недоступны для других разработчиков.

    Но, к примеру, тот же VNC (это единственных из трех вами упомянутых TeamViewer, VNC, RDP - открытый протокол) - используется в разном софте. Например, в локально запущенных виртуальных машинах для подключения к консоли или у хостеров для подключения к "локальной" консоли сервера клиента.

    А вообще:
    5c2c67f613da8346430356.jpeg
    Ответ написан
    Комментировать
  • Самопроизвольно открывается почтовый клиент на mac — почему и что делать?

    @muratx10
    Уже как полгода где-то наблюдаю такую хрень....бесит очень когда работаешь в каком-то приложении в полноэкранном режиме ни с того ни с сего в режиме SplitView открывается почта...macOS Mojave 10.14.5...все надежды на macOS Catalina
    UPD: я решил для себя эту проблему раз и навсегда) дефолтное приложение почты отключил к чертям и перешел на Spark, очень крутой почтовый клиент, в 100 раз лучше дефолтной. И на iPhone тоже самое сделал. Всем советую.
    Ответ написан
    4 комментария
  • Существует ли API Кинопоиска?

    @dead_sp
    kinopoiskapiunofficial.tech как вариант, вроде работает
    Ответ написан
    Комментировать
  • Живой поиск YII2?

    Marcuzy
    @Marcuzy
    php разработчик
    3 комментария
  • Почему большинство программистов выбирают Mac?

    Общая идея выше уже описана.
    Начинал с Windows, потом долго работал на Linux и в конце концов пересел на Mac.
    Как выше отметили переход на Mac для программиста оправдан если это web-разработка. Так сложилось что большая часть сайтов работают под unix-системами.

    По этой причине под windows не совсем удобно работать. Поэтому приходим к мысли что нужно что-то unix-like.
    Сейчас меня забросают минусами, но у всего unix-like IMHO не особо хорошо с интерфейсом (мне лично чего-то не хватает: порой кажется, что окошки зря расходуют место) и самое главное - если заниматься не только кодингом, то нет некоторого софта (типа photoshop etc).
    Вообще под linux вполне можно жить, но некоторых типов софта там либо нет, либо он еще развивается.

    Плюс нужно так или иначе заниматься ОС. Что-то настраивать/подстраивать. В общем, это как ни крути, а система для гиков. Не то чтобы мне это не нравится, но порой надоедает и хочется просто заниматься кодингом.

    Что касается Mac OS, то это UNIX с графической оболочкой которую разрабатывал профессиональный дизайнер. И как ни странно, она просто работает и многие вещи очень неплохо продуманы. Мне не надо постоянно что-то подкручивать после обновления. Думать как поставить какую-то программу потому что конфликт и тп. Устанавливать драйвера на железо через одно место.
    Плюс довольно неплохая поддержка производителями железа/софта. IMHO, не сильно хуже Windows.
    В общем фактически под этой ОС занимаешься своим делом, а не администрированием.
    Насчет цены, она конечно немного завышена (хотя как посмотреть, ведь полноценная ОС идет бесплатно). Но если сравнивать одинакового уровня железо, то разница до скачков курса была не такая уж и большая.

    В итоге обычно рано или поздно выбор становится вполне очевидным и осознанным. :)

    P.S. Нужно понимать что ОС - это всего лишь инструмент. Где-то есть свои уникальные фишки, софт. Кому-то нравятся инструменты от одной компании, кому-то от другой.
    Ответ написан
    Комментировать
  • Как скачать все видео с канала youtube?

    @InsiderZX
    Установить youtube-dl
    Открыть терминал
    youtube-dl Ссылка на канал или отдельное видео

    Список сайтов для youtube-dl
    Для скачивания в Windows через youtube-dl
    1.Выполнить команду cmd
    2.В консоли перейти в нужный диск и папку для сохранения видео ...Например на диск D: с помощью команды
    cd /d D:\<папка для сохранения>
    3. Пишем путь до файла программы youtube-dl.exe пробел ... ссылка на youtube канал или другой сайт из списка, при необходимости добавляем команды авторизации.
    4. Жмем Enter
    Ответ написан
    9 комментариев
  • Как изменить home на главная в Yii2?

    @Akellacom
    CTO
    Если вы говорите про хлебные крошки, то тогда вот так:

    <?= Breadcrumbs::widget([
            'homeLink' => ['label' => 'Главная', 'url' => '/'],
            'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
    ]) ?>
    Ответ написан
    3 комментария
  • Как обновить данные кэша CPHPCache в 1С-Битрикс?

    @vadamlyuk
    Действительно, в официальной документации этот вопрос не рассмотрен.
    Если с в кэше лежит валидный кэш с неистекшим TTL, то Вам не удастся его обновить.

    Правильное решение - очистить кэш и добавить новое значение,
    только не нужно вызывать ->clearDir(), достаточно вызвать ->clear() с соответсвующим тэгом
    Ответ написан
    Комментировать
  • Что нужно знать современному frontend-разработчику?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Вот подробно про навыки: ru.stackoverflow.com/a/459647/181240

    Про jQuery - не слушайте этот бред что jQuery не торт, или что jQuery устарел. Все это лишь эмоции отдельных разработчиков. Решая бизнес-задачи вы быстро поймете, что совершенно не нужно пытаться заново решить те проблемы которые уже решены и тщательно протестированы в этой библиотеке. Отказ от jQuery может быть оправдан лишь в 3 случаях:
    1. Если ваш проект будет выполнятся лишь на самых современных браузерах (никаких там IE 9, 10, 11 или упаси боже 7 и 8 и т.п.)
    2. Если вам реально нужно написать лишь пару строк кода
    3. Если вы используете какой-то большой фреймворк, который предлагает свой собственный API.

    Во всех остальных случаях jQuery полностью оправдан и необходим.
    Ответ написан
    Комментировать
  • Есть ли IT деревни на северо-западе РФ?

    @bugaguga
    Любопытно.

    А это реально кому-то интересно? У меня есть дом 300 м2 на участке 50 соток в 25 км. от Питера. Вокруг лес. До Невы 500 м.

    Интернет только мобильный МТС LTE 5мб up 4 down. Мегафон только 3g 2 и 2.

    Я тут подумываю на пару лет уехать заграницу. Не могу придумать что с домом сделать. IT деревня, возможно интересный вариант.
    Ответ написан
    2 комментария
  • Есть ли IT деревни на северо-западе РФ?

    @red-web
    В Псковской есть заброшенный детский лагерь с кучей домиков - в лесу, на берегу озера 1Га вытянут вдоль озера с песчаным пляжем. В собственности у чувака - года 3 назад продавали - так никто и не купил. Вот там вообще огонь, и инет кстати есть терпимого качества. Скинуться тостером да и купить :) Там даже столовка есть, пляж песчаный и все огорожено проезда сквозного нет, но на машине въехать можно.
    Ответ написан
    5 комментариев