<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
Доброе время суток! Случайно не знаете команды для работы со встроенной камерой на андроиде, и можно подключится к ней и выводить результат например в элемент «Картинка» ?
(1)
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Фото = Новый СредстваМультимедиа;
Если Фото.ПоддерживаетсяФотоснимок() Тогда
Данные = Фото.СделатьФотоснимок();
Если Данные = Неопределено Тогда Возврат КонецЕсли; //Фото не сделали
Сообщить(Данные.РасширениеФайла + » » + Данные.ТипСодержимого);
Фото = ПоместитьВоВременноеХранилище(Данные.ПолучитьДвоичныеДанные()); //Реквизит формы строковый, вынесен на форму и поставленно тип поля — картинка
Иначе
Сообщить(«Данное устройство не поддерживает создание фото!»)
КонецЕсли;
КонецПроцедуры
для IOS как все это отработает? надо будет проверить.
(3) без понятия 🙂 проверите и расскажите 🙂
(2) Попробовал — ошибка: Тип не определен (СредстваМультимедиа)
1С:Предприятие 8.3 (8.3.4.437)
Управление небольшой фирмой для мобильной работы (1.1.1.1)
Назначение использования = Мобильное устройство
Куда посмотреть?
(5)полный код ошибки дайте
(6) Вот
{Документ.Заказ.Форма.ФормаДокумента.Форма(223,15)}: Тип не определен (СредстваМультимедиа)
Фото = Новый <<?>>СредстваМультимедиа; (Проверка: Тонкий клиент)
(7) ksvd, Фото = Новый <>СредстваМультимедиа; (Проверка: Тонкий клиент)
Вот ошибка 🙂
Напишите этот кусок в контексте мобильного клиента:
#Если МобильныйКлиент Тогда
//А между ними вставьте тот код. Или отключите проверку тонкого клиента.
#КонецЕсли
(8) Спасибо! Ошибка при компиляции пропала, но и не заходит туда.
В этом коде говорит — Не мобильный клиент.
Назначение использования = Мобильное устройство — это недостаточно?
&НаКлиенте
Процедура Сфотографировать(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если МобильныйКлиент Тогда
Фото = Новый СредстваМультимедиа;
Если Фото.ПоддерживаетсяФотоснимок() Тогда
Данные = Фото.СделатьФотоснимок();
Если Данные = Неопределено Тогда Возврат КонецЕсли; //Фото не сделали
Сообщить(Данные.РасширениеФайла + » » + Данные.ТипСодержимого);
Фото = ПоместитьВоВременноеХранилище(Данные.ПолучитьДвоичныеДанные()); //Реквизит формы строковый, вынесен на форму и поставленно тип поля — картинка
Иначе
Сообщить(«Данное устройство не поддерживает создание фото!»)
КонецЕсли;
#Иначе
Сообщить(«Не мобильный клиент!»)
#КонецЕсли
КонецПроцедуры
(9) ну так код надо запускать на телефоне 🙂
(10) Пятница — хороший день. Но все-таки
Вот например в этом случае у меня на смартфоне заголовок кнопки = 2
&НаКлиенте
Процедура ПриОткрытии(Отказ)
#Если МобильныйКлиент Тогда
Элементы.Сфотографировать.Заголовок = «1»;
#Иначе
Элементы.Сфотографировать.Заголовок = «2»;
#КонецЕсли
КонецПроцедуры
Что-то я в справке не нашел
#Если МобильныйКлиент Тогда
есть
#Если МобильноеПриложениеКлиент Тогда
с ним код выполняется, но до
Данные = Фото.СделатьФотоснимок();
на это говорит «В 1С:Enterprise произошла ошибка» и программа закрывается
(12) действительно, по памяти писал, ошибся.
Вылеты бывают, на некоторых вообще ничего не происходит. Попробуйте поменять версию мобильного приложения на более новую или старую. Или на другом устройстве попробуйте.
(12) ksvd, попробуй сначал проверять, поддерживает ели устрйоство фотоснимок
Показать
(14) Dimon93dimon, Так в примере такая проверка есть.
На двух HTC проверял разных. Версию приложения еще попробую поменять
(15) проверка указывает на возможность, а не на то, что фото 100% сделается.
У нас на ТСД — проверку тоже проходит, но фото не делает, т.е. как будто ничего не происходит
А 1С уже штатно позволяет отсылать СМСки со смартфонов? Что-то я отстал от жизни…
(17) не может 🙂
Только руки дошли проверить на другой платформе. Дело было в ней. На 8.3.4.17 все работает
добрый день,
А вы не знаете как проиграть выбранную мелодию?
получился вот такой код:
НО, при исполнении такого кода, открывается проигрыватель и мелодия начинает играть.
Мне же необходимо что бы мелодия проигралась без открывания проигрывателя, так скажем в фоне.
(21) Seeker, ну тогда только через утилиты. По другому не вижу вариантов.
(22) через какие утилиты можно по подробней?
(23) Seeker,http://infostart.ru/public/310565/#comm
Здравствуйте!
Не могли бы Вы дать небольшой совет.
пишу следующее
Возвращает ничего (количество 0)
чтяднт?
Спасибо.
(25) erutan, платформа для разработчиков стоит?
(26) конкретно это тестировал на тестовой сборке на «живом» телефоне.
Платформа для разработчиков — это где подгружается xml-файл с веб-сервера? Разворачивал на виртуалке, но что-то с отладкой мобильного приложения не разобрался. Вечером попробую еще подумать.
(26) получилось как-то вот так
Показать
Что меня печалит: если не делать попытка .. исключение .. конецпопытки, падает на строке «без имени», крича, что не объектный тип. То есть если у контакта имя не введено (не заполнено) — к этому полю вообще обратиться не выходит. Страннота.
(28) зарегистрируйте баг 🙂