• Как показать информацию при клике на метку яндекс карты?

    @smoln Автор вопроса
    Посмотрев получше документацию, пришле к решению, сначал через таргет получаем ссылку на объект с параметрами, потом вытаскиваем параметр который нужен
    var target = e.get('target');
    	console.log(target.properties.get('WarehouseId'));
    Ответ написан
    Комментировать
  • Как ускорить создание большого прайса?

    @smoln Автор вопроса
    Наконец то добрался! Спасибо всем за обсуждение, отметил решение данного вопроса, может кому пригодится. Создание прайса 300 тыс строк (17мб ) теперь занимает две минуты! Решение в библиотеке https://github.com/box/spout
    Ответ написан
    Комментировать
  • Как из цикла сделать такую структуру?

    @smoln Автор вопроса
    Есть два цикла
    $return_arr = [];
    while ($myrow = mysqli_fetch_array($result)){
      $return_arr[]=[
            "Партнер_Key"=>"$myrow[4]",
        "Контрагент_Key"=>"$myrow[2]",
        "Организация_Key"=>"8dc9cf36-424b-11e8-bde7-99eede49b4b6", 
        "Склад_Key"=>"03460e63-af82-11e8-ba81-7c8bca035cde",
        "Валюта_Key"=>"80f5e10f-d438-11e7-988b-ece0db457431",
        "Соглашение_Key"=>"$myrow[5]",
        "ЦенаВключаетНДС"=>true,
        "СуммаДокумента"=>"$total_price",
        "РегистрироватьЦеныПоставщика"=>true,
        "Согласован"=>true,
        ];
    
     $k=1;
      while ($tmyrow = mysqli_fetch_array($tresult)){ 
     $return_arr['Tовары'][] = [
              "LineNumber"=>"$k",
              "НоменклатураПоставщика_Key"=>"$items_id_1c",
               "Номенклатура_Key"=>"$item_id_1c",
               "Количество"=>"$tmyrow[5]",
               "ВидЦеныПоставщика_Key"=>"00000000-0000-0000-0000-000000000000",
               "Цена"=>"$tmyrow[7]",
               "Сумма"=>"$summ_orderline",
               "СтавкаНДС"=>"НДС18",
               "КодСтроки"=>"$tmyrow[6]",
               "Отменено"=>false,
               "Склад_Key"=>"03460e63-af82-11e8-ba81-7c8bca035cde"
            ];
    $k++;
    }
    
    }
    
    print "<pre>";
    print_r($return_arr);
    print "</pre>";

    В этом коде все товары выводятся после первого прохода, а должны быть в каждом цикле.
    Вот что выводит
    Array
    (
        [0] => Array
            (
                [Партнер_Key] => ba302cf9-b0db-11e8-ba81-7c8bca035cde
                [Контрагент_Key] => ba302cfa-b0db-11e8-ba81-7c8bca035cde
                [Организация_Key] => 8dc9cf36-424b-11e8-bde7-99eede49b4b6
                [Склад_Key] => 03460e63-af82-11e8-ba81-7c8bca035cde
                [Валюта_Key] => 80f5e10f-d438-11e7-988b-ece0db457431
                [Соглашение_Key] => ba302cfc-b0db-11e8-ba81-7c8bca035cde
                [ЦенаВключаетНДС] => 1
                [СуммаДокумента] => 2062.9000244140625
                [РегистрироватьЦеныПоставщика] => 1
                [Согласован] => 1
            )
    
        [Tовары] => Array
            (
                [0] => Array
                    (
                        [LineNumber] => 1
                        [НоменклатураПоставщика_Key] => 
                        [Номенклатура_Key] => 
                        [Количество] => 2
                        [ВидЦеныПоставщика_Key] => 00000000-0000-0000-0000-000000000000
                        [Цена] => 615.76
                        [Сумма] => 1231.52
                        [СтавкаНДС] => НДС18
                        [КодСтроки] => 5778
                        [Отменено] => 
                        [Склад_Key] => 03460e63-af82-11e8-ba81-7c8bca035cde
                    )
    
                [1] => Array
                    (
                        [LineNumber] => 2
                        [НоменклатураПоставщика_Key] => 
                        [Номенклатура_Key] => 
                        [Количество] => 1
                        [ВидЦеныПоставщика_Key] => 00000000-0000-0000-0000-000000000000
                        [Цена] => 831.38
                        [Сумма] => 831.38
                        [СтавкаНДС] => НДС18
                        [КодСтроки] => 5777
                        [Отменено] => 
                        [Склад_Key] => 03460e63-af82-11e8-ba81-7c8bca035cde
                    )
    
                [2] => Array
                    (
                        [LineNumber] => 1
                        [НоменклатураПоставщика_Key] => 
                        [Номенклатура_Key] => 
                        [Количество] => 2
                        [ВидЦеныПоставщика_Key] => 00000000-0000-0000-0000-000000000000
                        [Цена] => 896
                        [Сумма] => 1792
                        [СтавкаНДС] => НДС18
                        [КодСтроки] => 5772
                        [Отменено] => 
                        [Склад_Key] => 03460e63-af82-11e8-ba81-7c8bca035cde
                    )
    
                [3] => Array
                    (
                        [LineNumber] => 1
                        [НоменклатураПоставщика_Key] => 
                        [Номенклатура_Key] => 
                        [Количество] => 2
                        [ВидЦеныПоставщика_Key] => 00000000-0000-0000-0000-000000000000
                        [Цена] => 58.5
                        [Сумма] => 117
                        [СтавкаНДС] => НДС18
                        [КодСтроки] => 5769
                        [Отменено] => 
                        [Склад_Key] => 03460e63-af82-11e8-ba81-7c8bca035cde
                    )
    
            )
    
        [1] => Array
            (
                [Партнер_Key] => 148fa494-6011-11e8-bbb0-cc0593f2be79
                [Контрагент_Key] => a5c28eea-9eef-11e8-ba81-7c8bca035cde
                [Организация_Key] => 8dc9cf36-424b-11e8-bde7-99eede49b4b6
                [Склад_Key] => 03460e63-af82-11e8-ba81-7c8bca035cde
                [Валюта_Key] => 80f5e10f-d438-11e7-988b-ece0db457431
                [Соглашение_Key] => 81aadc13-af44-11e8-ba81-7c8bca035cde
                [ЦенаВключаетНДС] => 1
                [СуммаДокумента] => 1792
                [РегистрироватьЦеныПоставщика] => 1
                [Согласован] => 1
            )
    
        [2] => Array
            (
                [Партнер_Key] => 65776b2c-b4cb-11e8-ba81-7c8bca035cde
                [Контрагент_Key] => 65776b2d-b4cb-11e8-ba81-7c8bca035cde
                [Организация_Key] => 8dc9cf36-424b-11e8-bde7-99eede49b4b6
                [Склад_Key] => 03460e63-af82-11e8-ba81-7c8bca035cde
                [Валюта_Key] => 80f5e10f-d438-11e7-988b-ece0db457431
                [Соглашение_Key] => 65776b2f-b4cb-11e8-ba81-7c8bca035cde
                [ЦенаВключаетНДС] => 1
                [СуммаДокумента] => 117
                [РегистрироватьЦеныПоставщика] => 1
                [Согласован] => 1
            )
    
    )

    Как мне вывести правильно?
    Ответ написан
  • Как сделать mysql запрос?

    @smoln Автор вопроса
    Всем спасибо, уже решил
    where INSTR('$files',filter_name)
    В принципе LOCATE тоже плдходит
    Ответ написан
    Комментировать
  • Как правильно настроить выгрузку заказов в 1С?

    @smoln Автор вопроса
    Вообщем есть такой пример я его поправил
    В методе run я вызываю данные по порядку
    1- авторизация
    2 -проверка
    3- загрузка заказов в 1С
    Заказы выводятся структуре xml документа , то есть по ссылке напрямую query получаю структуру xml точно такую же как в примере

    Подскажите что нужно делать дальше
    class Exchange1c {
     
            private $mode;
            private $filename;
     
     
            public function __construct() {
                    // принимаем значение mode
                    $this->mode = $_GET['mode'];
                    $this->filename = $_GET['filename'];
            }
     
            public function run(){
            $mode = $this->mode;
    
            if($mode=='checkauth'){
                    echo "success\n";
                    echo session_name()."\n";
                    echo session_id()."\n";      
            }
            elseif($mode=='int'){
                    $zip = extension_loaded('zip') ? 'yes' : 'no';
                    echo 'zip='.$zip."\n";
                    echo "file_limit=0\n";
            }
    
            elseif($mode=='query'){
     $ex=toorder_1c();
     //echo $ex;
     echo htmlentities($ex, ENT_QUOTES|ENT_HTML401);
    
            }
    
    
     $this->$mode();
    
            }//run
     
     
            /*
             * Этап 1. Авторизовываем 1с клиента
             */
            public function checkauth() {
                    echo "success\n";
                    echo session_name()."\n";
                    echo session_id()."\n";
                    exit;
            }
     
            /*
             * Этап 2. Говрим 1с, умеем или не умеем работать с архивами
             * в нашем случае - умеем :)
             */
            public function init() {
                    $zip = extension_loaded('zip') ? 'yes' : 'no';
                    echo 'zip='.$zip."\n";
                    echo "file_limit=0\n";
                    exit;
            }
     
            /*
             * Этап 3. Принимаем файл и распаковываем его
             */
            public function file() {
     
                    // вытаскиваем сырые данные
                    $data = file_get_contents('php://input');
     
                    //Сохраняем файл импорта в zip архиве
                    file_put_contents($this->filename, $data);
                   
                    // распаковываем
                    if(file_exists($this->filename)) {
                            // работаем с zip
                            $zip = new ZipArchive;
                            //все в порядке с архивом?
                            if($res = $zip->open($this->filename, ZIPARCHIVE::CREATE)) {
     
                                    // распаковываем два файла в формате xml куда-то
                                    // в нашем случае в этот же каталог
                                    $zip->extractTo(__DIR__);
                                    $zip->close();
     
                                    // удаляем временный файл
                                    unlink($this->filename);
                                    //Всё получилось?
                                    echo "success\n";
                                    exit;
                            }
                    }
                    // если ничего не получилось
                    echo "failure\n";
                    exit;
            }
     
            /*
             * Этап 3 
             */
            public function import() {
                    // используем читалку xml
                    $xml = simplexml_load_file($this->filename);
                    if($xml && $this->filename == 'orders.xml') {
                            /// обрабатываете import.xml как простой xml
                            //Считываете данные, подключаетесь к своей БД, записываете и т.д
                            //во время работы скрипта можете отправлять progress
                            // если все успешно закончилось отправляете успех
                       echo "success\n";
                            echo session_name()."\n";
                            echo session_id()."\n";
                            exit;
     
                    }
                    else{
                            echo "Ошибка загрузки XML\n";
                            foreach (libxml_get_errors() as $error) {
                                    echo "\t", $error->message;
                            }
                            exit;
                    }
            }
    		
    		
    
    		
    		
    		
    		
     
    }
    session_start();
    $exaple = new Exchange1c();
    $exaple->run();
    Ответ написан
  • Свое почтовое событие при выборе доставке?

    @smoln Автор вопроса
    Вопрос закрыт, разобрался.
    Нужно в sale.order.ajax в component.php добавить при изменении доставки разные почтовые события
    Ответ написан
  • Где здесь ошибка?

    @smoln Автор вопроса
    переменная определена, просто в этот кусок не вставил
    $boundary = "--".md5(uniqid(time())); 
     move_uploaded_file() никаких ошибок не выдает, насчет бинар. буду проверять
    Ответ написан
    Комментировать
  • Как загрузить файл изображения по внешней ссылке?

    @smoln Автор вопроса
    Все заработало, в результате на хостинге стояли настройки блокирующая file_get_contents.
    Ответ написан
  • Показать все даты, в интервале, как сделать?

    @smoln Автор вопроса
    Спасибо всем за ответы, но почему то не хочет у меня работать вот такой пример
    $begin = new DateTime( '2015-07-01' );
    $end = new DateTime( '2015-07-24' );
    
    $interval = DateInterval::createFromDateString('1 day');
    $period = new DatePeriod($begin, $interval, $end);
    
    foreach ( $period as $dt ){
      echo $dt->format( "l Y-m-d H:i:s\n" );
    }

    версия php 5.4
    Ответ написан
  • Как передать несколько данных посредством ajax?

    @smoln Автор вопроса
    Да, это очень похоже, но я плохо разбираюсь в аяксе, я понимаю что нужно передавать массив через json, а как мне передать id, то есть чтоб у меня получилось td1_$tr и td2_$tr, где tr номер строки, я понимаю что в php каждая строчка делается так $tr++; а как мне это в этот массив впихнуть?
    Ответ написан