• Как загрузить номенклатуру из Exel?

    fosihas
    @fosihas
    Автоматизации учета на 1С.
    1. не меняй структуру таблицы котороя отобразилась после выбора справочника, просто вставь нужные колонки. Ну точно недолжнобыть разрывов между колонками
    2. забей на вычисления, сделай это в экселе и полученный результат вставь в таблицу 1С.
    Ответ написан
    Комментировать
  • Как восстановить поврежденные фотографии?

    opium
    @opium
    Просто люблю качественно работать
    Так там одни единички, что восстанавливать
    Ответ написан
    Комментировать
  • Как восстановить поврежденные фотографии?

    fzfx
    @fzfx
    18,5 дм
    > Transend
    либо вы ошиблись с написанием фирмы-производителя, либо это поддельная карта памяти.
    p. s.: если не ошиблись - это ещё не означает, что карта не поддельная.

    судя по скрину, восстанавливать нечего.
    Ответ написан
    Комментировать
  • В чем суть роутера на php?

    onqu
    @onqu
    weasy
    1. Здесь пугают всякими контроллерами, ларавелями. Давайте жить проще. Для начала дадим определение модному слову роутер. Это маршрутизатор. Что делает маршрутизатор? Правильно. Обрабатывает маршруты, являясь связующим звеном. Маршрутом для web сайта принято считать метод запроса [GET, POST, PUT и другие] и компоненты URI.

    например: https://ru.wikipedia.org/wiki/URI?foo=bar#title
    [схема: https] :// [источник: ru.wikipedia.org] [путь: /wiki/URI] [запрос: ?foo=bar] [фрагмент: #title]


    Но для определения маршрута может браться любая другая информация передаваемая серверу, определение выше это лишь наиболее употребляемые параметры.

    Сама работа, как правило проста: от клиента приходит запрос, маршрутизатор перебирает все заданные ему пути до первого совпадения. При совпадении вызывается определенная вами функция, которая возвращает ответ клиенту.

    2. Он необходим, если в приложении одна точка входа, когда любой запрос приходит на один файл.

    3. Простой пример
    // файл index.php
    
    // Маршруты
    // [маршрут => функция которая будет вызвана]
    $routes = [
        // срабатывает при вызове корня или /index.php
        '/' => 'hello',
        // срабатывает при вызове /about или /index.php/about
        '/about' => 'about',
        // динамические страницы
        '/page' => 'page'
    ];
    
    // возвращает путь запроса
    // вырезает index.php из пути
    function getRequestPath() {
        $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    
        return '/' . ltrim(str_replace('index.php', '', $path), '/');
    }
    
    // наш роутер, в который передаются маршруты и запрашиваемый путь
    // возвращает функцию если маршшрут совпал с путем
    // иначе возвращает функцию notFound
    function getMethod(array $routes, $path) {
        // перебор всех маршрутов
        foreach ($routes as $route => $method) {
            // если маршрут сопадает с путем, возвращаем функцию
            if ($path === $route) {
                return $method;
            }
        }
    
        return 'notFound';
    }
    
    // функция для корня
    function hello() {
        return 'Hello, world!';
    }
    
    // функция для страницы "/about"
    function about() {
        return 'About us.';
    }
    
    // чуть более сложный пример
    // функция отобразит страницу только если
    // в запросе приходит id и этот id равен
    // 33 или 54
    // [/page?id=33]
    function page() {
    
        $pages = [
            33 => 'Сага о хомячках',
            54 => 'Мыши в тумане'
        ];
    
        if (isset($_GET['id']) && isset($pages[$_GET['id']])) {
            return $pages[$_GET['id']];
        }
    
        return notFound();
    }
    
    // метод, который отдает заголовок и содержание для маршрутов,
    // которые не существуют
    function notFound() {
        header("HTTP/1.0 404 Not Found");
    
        return 'Нет такой страницы';
    }
    
    
    // Роутер
    // получаем путь запроса
    $path = getRequestPath();
    // получаем функцию обработчик
    $method = getMethod($routes, $path);
    // отдаем данные клиенту
    echo $method();


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

    4. Обойтись без него можно. Если каждая страница в вашем приложении будет являться отдельным файлом, который отвечает за отдачу информации.
    index.php
    about.php
    contact.php
    ...


    Это олдскульная структура, в новых проектах почти не применяется.
    Ответ написан
    13 комментариев
  • Почему не доходят письма от яндекса и рамлера на почтовый сервер?

    @feanor7
    Системный администратор
    Проверяйте ответы от днс серверов, можете воспользоваться 2whois

    задайте вопрос по MX своему днс, днс гугла, и днсу яндекса, ответ везде должен быть одинаковый - MX смотрит в Ваш сервер.
    Дальше смотеть логи Вашего МТА.
    Ответ написан
    Комментировать
  • Как правильно установить openvpn server в сеть?

    @Drno
    Для openvpn клиента надо лишь открыть порт на исходящие по номеру порта openvpn. Ставить его можно за любой NAT, будет работать.И не ясно, какую задачу должен выполнять openvpn клиент...
    Ответ написан
    2 комментария
  • Как правильно установить openvpn server в сеть?

    @res2001
    Developer, ex-admin
    Обычно используют второй вариант или третий.
    Третий - это когда на шлюзе (у вас это Керио) разворачивают и ВПН сервер.
    На счет раздачи адресов внутри ВПН - этот функционал встроен в OpenVPN сервер, диапазоны адресов настраиваются конфигом, ничего дополнительно поднимать не нужно.

    Первый вариант - ВПН сервер открыт для атак снаружи, там придется настраивать фаервол практически аналогично Керио. А это уже превращает этот вариант в третий :-) и керио становится не нужен.
    Ответ написан
    Комментировать
  • Как правильно перенести письма с yandex на iredMail и настроить почтовый сервер?

    sashkets
    @sashkets
    Прекратил отвечать после 24.02.2022
    ну я бы так сказал
    1. если время жмет-наймите специалиста
    2. если нет, создайте тестовый домен и пробуйте настроить связку postfix/postfixadmin/dovecot. Хорошо б, чтоб сервак был выделеный и имел белый адрес. По ходу придется проникнуться ДНСом и базой данных. Когда сервак заработает, можно прицепить spf/dkim/rspamd/шифрование/smtp-auth. В результате этих действий у Вас есть понимание как все работает. Тогда можно и imapsync заюзать и переносить почту.
    Ответ написан
    Комментировать
  • Как правильно работать с URI запросами в PHP? Как грамотно настроить роутинг?

    Stalker_RED
    @Stalker_RED
    выглядеть будет https://site.ru/?city=spb/post?id=23

    Вы конечно можете в адресную строку браузера любую ересь написать, но тогда и серверную часть придется изобретать, ну чтобы она смогла разобрать эту вашу хитрую строку.
    Чтобы не изобретать это для каждого проекта заново придумали стандарты.
    https://tools.ietf.org/html/rfc3986

    И если вам нужно передать два параметра, то выглядеть оно будет так:
    https://site.ru/?city=spb&postid=23

    при отправке submit будет отправлять на страницу существующую физически - spb.php затем post.php
    Вы конечно можете это сделать, но зачем? Вы действительно хотите создавать физически существующие страницы для каждого города? У меня в текущем проекте их более 10 тысяч, например. Замучался бы создавать.
    Можете начать отсюда: Как хранят свои страницы крупные сайты?
    Ответ написан
    3 комментария
  • Как правильно работать с URI запросами в PHP? Как грамотно настроить роутинг?

    Почитайте про .httaccess и mod_rewrite
    Ответ написан
    Комментировать
  • Как правильно работать с URI запросами в PHP? Как грамотно настроить роутинг?

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

    maxsite.org/page/routing

    (во всё можно не вникать, поймите просто модуль mod_rewrite и что с ним делать)
    Ответ написан
    Комментировать
  • Какой нынче самый популярный reset для css?

    Как представитель людей, выковыривающих каждый лишний килобайт из билда, могу посоветовать
    postcss-normalize и postcss-autoreset
    В комбинации с postcss-uncss результат шикарен, особенно если используете всякие css-фреймворки. Первые два помогают забыть о глобальных селекторах вида *{box-sizing: border-box} и сбросе стилей под конкретные браузеры, последний вырезает из билда все неиспользуемые стили.
    Ответ написан
    6 комментариев