• Как автоматизированно переименовать папки?

    @res2001
    Developer, ex-admin
    Вариант батника для файлов в одном каталоге и имена файлов не шаблонные:
    chcp 1251
    for /f "tokens=1,2 delims=<тут подставить символ TAB>" %%a in (file.txt) do (
        ren "<имя каталога>\%%a" "%%b"
    )

    список файлов для переименования складываете в файл file.txt кладете его рядом с батником. file.txt должен быть в кодировке 1251. Формат file.txt:
    <имя исходного файл с расширением><TAB><имя результирующего файла с расширением>

    В именах файлов не должно быть символа TAB
    В скрипт подставить соответствующие значения вместо комментариев в угловых скобках.
    В зависимости от того в каком виде вы можете предоставить список файлов, можно переделать скрипт.
    Скрипт не тестировал.
    Ответ написан
  • Как автоматизированно переименовать папки?

    Aetae
    @Aetae
    Тлен
    Берёте ваш список и преобразуете в вид
    chcp 65001
    ren "старое название" "новое название"
    ren "старое название 2" "новое название 2"
    pause
    сохраняете как .bat и запускаете.
    Ответ написан
  • Где создается A-запись?

    jamessvetsky
    @jamessvetsky
    Специалист по почтам и рассылкам
    Добрый день!
    У домена только одна рабочая DNS зона, та, на которую указывают ns-записи. В Вашем случае это хостинг. Если нужную запись добавить у регистратора, она не будет действовать
    Ответ написан
  • Где создается A-запись?

    Где угодно
    Физически это не имеет никакого значения
    Если у вас на сервере есть ДНС сервер и А запись осноного домена идет туда, то он может создать поддомены сам
    в вашем же случае проще будет создать поддомены там же где и А запись основного домена
    нааример

    site.ru  A  1.1.1.1
    www    A  1.1.1.1
    sub1      A  2.2.2.2

    Но тут уже зависит от веб морды которая у вас имееттся для редактирования ДНС
    Например у некоторых это будет по другому
    site.ru  A  1.1.1.1
    www.site.ru    A  1.1.1.1
    sub1.sute.ru      A  2.2.2.2

    или с @ что кстати вне стандарта RFC но используется
    @  A  1.1.1.1
    www.@    A  1.1.1.1
    sub1.@      A  2.2.2.2

    Не забывайте что DNS сервер всего -лишь сравнивает домен с А записью и в принципе ваш суб домен мог бы получить А запись еще на зоне RU если бы у вас там были такие подвязки и кто-то в их днс сервере смог ыб добавить эту А запись, по факту днс работает так
    www.site.ru.
    читаем с конца
    . нулевой уровень домена стоит в конце любого домена ( это вадельцы доменной зоны, да у нее есть физический владелец) и там днс сервер который знает всегоо лишь корневые домены, он знает зоны RU COM и тд и отдает их А запись, но он такой же днс сервер как и все остальные и мог бы уже отдать вашу а запись, но вместо этого ссылает этот вопрос другому днс серверу по NS записям пусть типа сам разбирается.
    соответственно RU уже ссылается на ваш домен и его НС сервер, он тоже может или сразу отдать записи или сослаться на другой днс сервер. и так далее, распределенная нагрузка.
    Соответственно все домены ниже купленного вами домена вы можете назначить в любой момент, или делегировать их на отдельный днс сервер.
    Ответ написан
  • Как добавить #SECTION_CODE# в url детальной страницы?

    taurus2790
    @taurus2790
    Я не программер я только учусъ
    Нашёл данный вопрос, но решение не помогло.

    Поэтому оставлю ответ о том, что помогло мне, может кому то поможет.

    Если у Вас в компоненте catalog.section в url не хочет подставляться #SECTION_ID# или #SECTION_CODE#, но при этом #ELEMENT_ID# и #ELEMENT_CODE# работает нормально, то нужно передать параметр 'SHOW_ALL_WO_SECTION' => 'Y' тогда всё будет отлично.

    А так же. Не обязательно в настройках инфоблока прописывать пути вообще, главное чтобы в компоненте был прописан правильный шаблон. И в файле urlrewrite.php было подходящее правило.
    Ответ написан
  • Не заполнен "Код по ОКЕИ" у единиц измерения?

    fosihas
    @fosihas
    Автоматизации учета на 1С.
    1. В разделе "Упаковка" для каждого товара создается своя единица измерения -

    У вас стоит в настройках "использовать упаковки", и это указано настройках в "Вид номенклатуры" который указывается для каждой номенклатуры. Итого для Номенклатуры задается отдельные ед.измерения.
    Это не ошибка это на выбор, кому как надо.

    2. Там же есть единицы измерения с незаполненным полем "Код по ОКЕИ". Т

    в Меню Администрирование...\ Обслуживание \ Корректировка данных \ Групповое изменение реквизитов
    можно до заполнить нужное значение.
    Ответ написан
  • Отправка почты с Yandex SMTP?

    jamessvetsky
    @jamessvetsky
    Специалист по почтам и рассылкам
    Пишет неправильные данные аутентификации, может быть логин неправильно вводите? Логин целиком почта должна быть.
    Вообще все почты, что яндекс, что майл ру, что гугл, периодически блокируют отправки с сайта, там все автоматизировано, и что может померещиться этой автоматике - сказать сложно. У кого то годами работает - потом вдруг блокировка. У кого то сразу.
    Почитайте вот тут, сравнение вариантов отправки
    https://7fk.ru/nastroyka-smtp/
    Ответ написан
  • С чем связаны такие ошибки SPF?

    А саму запись то можно ?
    Желательно вообще все
    Ответ написан
  • С чем связаны такие ошибки SPF?

    jamessvetsky
    @jamessvetsky
    Специалист по почтам и рассылкам
    Что то не так с SPF, можете домен написать?
    Ответ написан
  • Как правильно установить записи SPF и DMARC?

    jamessvetsky
    @jamessvetsky
    Специалист по почтам и рассылкам
    Добрый день!
    У Вас DNS-зон, где Вы можете редактировать записи, может быть несколько. В Вашем случае - у регистратора, на хостинге, на Яндексе. Рабочая из них только одна. В остальные сколько не вноси изменения, ничего не поменяется. Посмотреть какая из них рабочая, и проверить, какие записи там есть, можно например здесь www.kloth.net/services/nslookup.php или через кнопку выполнить и запрос типа nslookup -type=ns habr.com где ns тип записи а habr.com домен
    5eaa9cff5614c612807658.jpeg
    По самим записям:
    SPF - если отправка писем будет только с яндекса, все правильно. Если отправка будет идти с других серверов - с сайта, с CRM, с сервисов рассылок - ее нужно будет менять.
    DMARC - для новых почт я обычно ставлю что то типа v=DMARC1; p=none; sp=none; rua=mailto:abuse@vashdomen.com; ruf=mailto:abuse@vashdomen.com; fo=1 после какого то времени меняя на v=DMARC1; p=quarantine; sp=quarantine; rua=mailto:abuse@vashdomen.com; pct=1; ruf=mailto:abuse@vashdomen.com; fo=1 и потом за два-три шага поднимая ptr до 100
    Обязательно добавьте DKIM. На яндексе он часто до недели подключается, Вам все это время на почту abuse@ (или какую выберите для жалоб и ошибок, но рекомендую отдельную) будут сыпаться ошибки по DKIM
    Ответ написан
  • Как поставить ссылку на Телеграм?

    @vladryjoff
    Есть много сервисов для этого, и для тех кто не использует VPN )) Например такой. https://teleg.run
    Ответ написан
  • В чем ошибка при обходе дерева?

    nokimaro
    @nokimaro
    Проблема в том что если в самой функции делаете echo да ещё и рекурсию, то не нужно результат работы функции помешать внутрь другого echo так как в таком случае сперва отрабатывает функция, и делает echo, а потом уже отрабатывает внешнее echo.

    Чтобы избежать этого, и вставлять функцию как вы хотите, нужно изменить код функции так чтобы вместо echo там был return;

    Исправленный код с echo.
    <?php
    function draw($array)
    {
        foreach($array as $item)
        {
            if(isset($item['CHILD']))
            {
                echo '<li>'.$item['NAME'].'<ul>';
                draw($item['CHILD']);
                echo '</ul></li>';
            }
            else
            {
                echo '<li>'.$item['NAME'].'</li>';
            }
        }
    }
    
    $arr = [
        'CHILD' => [
            '16' => [
                'NAME'  => '1',
                'CHILD' => [
                    '17' => [
                            'NAME' => 'a'
                    ],
    
                    '18' => [
                            'NAME' => 'b'
                    ]
                ]
            ]
        ]
    ];
    
    echo '<ul>';
    draw($arr['CHILD']);
    echo '</ul>';
    Ответ написан
  • Альтернатива gap для webkit?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    CEO iAmStudio, предприниматель.
    Есть костыль. Ну хотя как костыль, где-то, может, элегантное решение:
    Скажем надо задать отступ в 50px.
    .wrapper {
    margin-top: -25px;
    margin-bottom: -25px;
    ..
    .child{
    margin-top: 25px;
    margin-bottom: 25px;


    По такому же принципу сделана сетка почти всех CSS-фреймворков. Но перед использованием почитай про схлопывание отступов.

    PS: ну а отступы в право и лево уже селекторами. Но это должно быть очевидным.
    Ответ написан
  • Кастомизация sale.order.ajax?

    @Evanescing
    C шаблоном .default в новой версии системы если толком, то это достаточно масштабная работа. Необходимо объединить блоки с данными пользователя в template.php и bx-soa-region и переписать все участки кода с блоком в скрипте order_ajax.js. Задача требует знания JS библиотеки Битрикс, а также принципов передачи данных из шаблона компонента в js объекты компонентов.
    Ответ написан
  • Можно ли получить head удаленной страницы?

    Aetae
    @Aetae
    Тлен
    Грузите вы в любом случае всё - это в первую очередь поток байт, во вторую простой текст, и только после парсинга движком браузера появляются какие-то там head и прочие body.
    В принципе, вы можете прервать загрузку, если посчитали что загрузили достаточно.
    XMLHttpRequest вызывает событие readystatechange\onprogress несколько раз с промежуточными результатами, а также имеет метод abort для остановки. Однако с современными скоростями интернета весь контент скорее всего будет загружен быстрее чем браузер сможет остановить зарос.

    Примерно так
    function parseHead(text) {
      if(!parseHead.parser) 
        parseHead.parser = new DOMParser();
    
      return parseHead.parser.parseFromString(
        text.match(/<head>[\s\S]*?<\/head>/i)[0], 
        "text/html"
      ).head;
    }
    
    function getHead(url) {
      return new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest();
        xhr.open('GET', url);
        xhr.onreadystatechange = function(event) {
          if (xhr.readyState === 3) { // если частично загружено
            if(/<\/head>/i.test(xhr.responseText)) { // если в загруженном есть закрывающий тег </head> 
              resolve(parseHead(xhr.responseText));  // парсим текст и возвращаем head
              xhr.onreadystatechange = null; // убираем дальнейшую обработку изменения состояния
              xhr.abort(); // останавливаем дальнейшую загрузку
            }
          } else if (xhr.readyState === 4){ // если запрос завршён
            if(xhr.status === 200) // если завершён успешно
              resolve(parseHead(xhr.responseText));   // парсим текст и возвращаем head
            else 
              reject(xhr); 
          }
        };
        xhr.send();
      }) 
    
    }
    
    getHead('/').then(console.log, console.error)
    Ответ написан
  • Странное поведение offset?

    jQuery(document).ready(function() {
      jQuery('span').on('mouseenter', function() {
        jQuery('div').show();
        jQuery('div').offset({top: 10, left: 10});
      }).on('mouseleave', function() {
      	jQuery('div').hide();
      });
    });
    Ответ написан
  • Не могу найти указанный ключ формы?

    himuro
    @himuro
    Full stack web developer
    AjaxForm всего лишь обертка для Formit, посмотрите у последнего значение submitVar, оно должно быть задано.
    Ответ написан