PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 18
BespredeL Отправлено: 20 Февраля, 2015 - 12:36:28 • Тема: Составить логическую конструкцию • Форум: Вопросы новичков

Ответов: 1
Просмотров: 221
Проспался и решил проблему =)))))
BespredeL Отправлено: 20 Февраля, 2015 - 12:31:10 • Тема: Подскажите с 1С • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 225
Большое спасибо за помощь =))
разобрался =)))

skiphog пишет:
Код с примером внизу поста
--

Для работы с обменом 1С и вашим сайтом, нужно хотя бы маломальски уметь работать с xml.
Особых знаний не нужно, нужно только взять файл, прочитать, пробежать в цикле по узлам и занести в базу нужные данные.

Протокол обмена данными и как все происходит, почитать можно здесь http://v8[dot]1c[dot]ru/edi/edi_stnd/131/

Далее немного рассмотрим только обмен товаров на сайт. Рассматривать обмен заказами не будем, т.к. если поймете обмен товарами, то с обменом заказов проблем не будет.

Сначала создайте у вас на сайте php файлик(допустим 1c_exchange.php) для обмена данных и каталог, куда будете загружать файлы обмена.

В 1с настройте обмен данными с web-сайтом. Указав какие товары, цены, остатки будете выгружать.
Отмечайте чекбокс - Выгрузка товаров.
В поле Адрес сайта укажите путь http://site.ru/1c_exchange.php
Логин и пароль пока оставьте пустым.

Сам процесс. Простыми словами.
Обмен товаров происходит в 4 этапа. На каждом этапе 1С будет отправлять разные http-запросы, и ждать ответ от сервера.

1. Начало сеанса

1С пуляет вам http-запрос запрос на аторизацию: /1c_exchange.php?type=catalog&mode=checkauth
*type=catalog - говорит о том, что будет осуществляться выгрузка товаров.
*mode=checkauth - запрос на авторизацию.
Естественно все это дело попадет в массив $_GET.
Далее 1с ждет ответ от сервера в виде строки success или failure
Если вы не проверяете на логин и пароль и не указываете их в 1С, просто отправьте обратно строку echo "success\n";
Если вы хотите работать с авторизацией, то логин и пароль будет лежать в $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'];
Достаете, проверяете на соответствие и оправляете ответ.
Если 1C получает success,- продолжает процесс.

2. Запрос параметров от сайта

1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=init
Тут она спрашивает, умеет ли ваша система работать с zip архивами?
PHP прекрасно работает с ZIP, поэтому отвечаем 1C - zip=yes
Иначе, 1с будет загружать файлы не в архиве.

3. Выгрузка на сайт файлов обмена

1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=file&filename=<имя файла>
На этом этапе принимаем файл, распаковываем его. Достаем из архива два xml файла.
import.xml и offers.xml
отвечаем 1С success, ну и соответственно failure, если что-то не получилось.

И начинается самая важная часть.

4.1 Пошаговая загрузка каталога

1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=import&filename=<имя файла>
В <имя файла> будет храниться значение import.xml
На этом этапе вы берете файл import.xml и начинаете его парсить.
Как известно, самая простая читалка - это simpleXml, но здесь на ваш вкус и цвет Улыбка
Читаете файл, берете данные, записываете себе в базу данных.

Здесь лирическое отступление и вот на что стоит обратить внимание.
1с формирует 2 файла для отправки import и offers
В import она кладет каталоги(категории), товары, а в offers - цены и всякие опции....цвет, размер и т.д.
Естественно у каждой категории и товара 1с дает уникальный идентификатор, по которому идет связь.

НО!
Версии 1с могут отличаться и может случиться так, что выгрузка будет разная, все будет наоборот. Цены с товарами в import, а каталоги в offers.
В общем, перед выгрузкой изучите эти файлы и переделайте загрузчик под себя.

И так. Как только вы распарсили первый файл. отдаем 1с ответ success

4.2 Пошаговая загрузка каталога

Здесь 1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=import&filename=<имя файла>
где <имя файла> уже offers.xml
Точно так же берем файл. Парсим, вставляем в базу.
И говорим 1Ске success

Всё. На этом весь процесс заканчивается и 1С говорит вам - Выгрузка товаров успешно завершена

Привожу пример. Файлик 1c_exchange.php, в котором все происходит.
Оформил в виде простого класса, да бы было все более менее понятно.
Реализация ни в коем случае не претендует на боевые условия, сделан специально для понимания. Хотя вполне себе рабочий вариант, можно поиграться Улыбка Аторизовывает, скачивает файлы, распаковывает. Но ничего не парсит, а эмулирует success))))
Спойлер (Отобразить)


Вот и всё.
За ошибки и кривое повествование простите. Если что-то непонятно - пишите в личку Улыбка
BespredeL Отправлено: 18 Февраля, 2015 - 18:28:19 • Тема: Составить логическую конструкцию • Форум: Вопросы новичков

Ответов: 1
Просмотров: 221
Товарищи знатоки, надеюсь на вашу помощь.
Третий день мучаюсь с проблемой, никак не могу решить.
Дали задачу интегрировать 1С с самописной системой управления.
В 1С обмен идет через модуль 1С-Битрикс
Из за сложной и своеобразной системы CMS все получается громоздко и запутанно.

1С передает на сайт 6 файлов.(опишу только то что необходимо)
1. Файл со свойствами и значениями свойств (цвет: красный, зеленый и т.д)
2. Файл с основными товарами (включая значения их свойств)
3. ненужный мне файл
4. Файл с дочерними товарами и значениями свойств

Сейчас работа получается такая:
1. Скрипт добавляет свойства в базу (id : значение свойства(напр.красный) : 1cID свойства : 1сID значения свойства)

2.
Цикл1:
Добавляем основной товар
Цикл2:
Ищем значение свойства по id1C_значения_свойства
Добавляем к товару
/Цикл2
/Цикл1

3.
Цикл1:
Добавляем дочерний товар со значениями свойств основного товара
Цикл2:
Ищем значение свойства по id1C_значения_свойства
Обновляем в товаре
Если в основном товаре значения цвета и/или размера пусты то добавляем из первого дочернего
/Цикл2
/Цикл1

Постарался в кратце описать что и как работает.

Проблема вот в чем.
Мне необходимо добавлять значения свойств из первого дочернего товара к основному товару.
Но никак не могу составить логическое условие.

Если у основного товара нет цвета но он есть у дочернего нужно добавить при условии что размеры совпадают либо размер основного пуст

Если у основного товара нет размера но есть у дочернего нужно добавить при условии что цвета совпадают либо цвет основного пустой

Если цвет и размер основного пустой, то нужно добавить из первого дочернего.


Надеюсь понятно объяснил суть проблемы.

Понимаю что задачка простая, но голова у меня совсем забита работой, не могу сосредоточится и обдумать такую вот нелепую проблемку.
Подскажите кто чем может =)))))
BespredeL Отправлено: 04 Февраля, 2015 - 11:29:09 • Тема: Подскажите с 1С • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 225
Всем приветы!
Ребят, измучился весь уж.
Подскажите как сделать обмен 1с с сайтом.
Если не жалко киньте примеров.

Касательно Google и Yandex я уже искал.
К сожалению ничего не нашел подходящего, либо я лошара =)))

Как говориться помогите кто чем может =)))

ps: Версия 1С 8.3
BespredeL Отправлено: 11 Января, 2014 - 17:35:23 • Тема: Система Online бизнеса • Форум: Корзина

Ответов: 0
Просмотров: 854
Всем доброго времени суток.
Решил обратиться к знатокам =)
У меня уже давно вертится в голове одна идея, на реализацию которой не хватает знаний или рук из нужного места =))) даже не знаю
Вообщем идея заключается в создании CMS для продажи, либо сервиса,
который будет предоставлять различный полезный функционал для управления бизнесом онлайн.
По большей мере это касается фирм занимающихся розничными продажами или чем то подобным.
Я сам работал в одной компании, для которой делал такую систему (компания так себе, и при увольнении со мной не хорошо поступили и система разработанная мной осталась у меня)
Так вот я бы хотел продолжить развитие данной системы, и мне нужна помощь.
К сожалению оплачивать я не смогу, поэтому ищу желающих добровольно помочь и разделить будущую (надеюсь будет) прибыль =)))
з.ы: я пробовал обратиться в разные компании (например в яндекс.стартап) но ответа от них не получил к сожалению.
Но на мой взгляд идея хорошая, и если правильно ее развить, то будет успех =)))
Прикреплю несколько скринов (в архиве) созданной мной сстемы, а так же вот ссылка на них: http://yadi[dot]sk/d/_OUqO1CQFr48b
BespredeL Отправлено: 20 Марта, 2013 - 16:52:22 • Тема: Выборка данных из нескольких таблиц и обьединение • Форум: Вопросы новичков

Ответов: 5
Просмотров: 238
Dark-def пишет:
PHP:
скопировать код в буфер обмена
  1. while($obj = DB::fetch_array($result)
  2. {
  3.  echo $obj['user.id'];
  4.  echo $obj['sotrudniki.id'];
  5.  echo $obj['tabel_smen.date'];
  6. }

Подставьте свои поля и попробуйте так


Сейчас попробую. Спасибо тебе ОГРОМНОЕ добрый человек =))))
(Добавление)
Dark-def пишет:
PHP:
скопировать код в буфер обмена
  1. while($obj = DB::fetch_array($result)
  2. {
  3.  echo $obj->user.id;
  4.  echo $obj->sotrudniki.id;
  5.  echo $obj->tabel_smen.date;
  6. }

Подставьте свои поля и попробуйте так


Что то все ровно ничего не работает =(. Уже 2 дня мозг на пределе. с этой хренью.

Смотри вот чуть изменил:

PHP:
скопировать код в буфер обмена
  1. SELECT * FROM `users`
  2. INNER JOIN `sotrudniki`
  3. ON sotrudniki.mfc = users.id
  4. INNER JOIN `tabel_smen_fakt`
  5. ON tabel_smen_fakt.id_users = sotrudniki.mfc");
  6.  
  7.  
  8. while($obj = DB::fetch_array($q){
  9.  
  10.                 echo $obj->users.id;
  11.                 echo $obj->sotrudniki.id;
  12.                 echo $obj->tabel_smen_fakt.date;
  13.  
  14.         }




CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE IF NOT EXISTS `tabel_smen_fakt` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `id_user` varchar(16) NOT NULL,
  4.   `mfc` varchar(10) NOT NULL,
  5.   `date` int(8) NOT NULL,
  6.   `time_open` int(6) DEFAULT NULL COMMENT 'Время открытия',
  7.   `time_close` int(6) DEFAULT NULL COMMENT 'Время закрытия',
  8.   PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=192 ;
  10.  
  11.  
  12.  
  13. CREATE TABLE IF NOT EXISTS `users` (
  14.   `id` int(11) NOT NULL AUTO_INCREMENT,
  15.   `nick` varchar(32) NOT NULL,
  16.   `passwd` varchar(32) NOT NULL,
  17.   `level` enum('0','1','2','3','4') DEFAULT '0',
  18.   `pol` enum('0','1') DEFAULT '0',
  19.   `ank_name` varchar(64) DEFAULT NULL,
  20.   `ank_famil` varchar(64) DEFAULT NULL,
  21.   `ank_phone` varchar(12) DEFAULT NULL COMMENT 'Номер рабочего телефона',
  22.   `ank_email` varchar(64) DEFAULT NULL COMMENT 'Эл.почта',
  23.   `mfc` varchar(128) DEFAULT NULL COMMENT 'ID салонов закрепленных за ТД и УМ',
  24.   PRIMARY KEY (`id`),
  25. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=50 ;
  26.  
  27.  
  28. CREATE TABLE IF NOT EXISTS `sotrudniki` (
  29.   `id` int(3) NOT NULL AUTO_INCREMENT,
  30.   `mfc` varchar(10) NOT NULL COMMENT 'ФС',
  31.   `name` varchar(32) NOT NULL COMMENT 'Имя',
  32.   `famil` varchar(32) DEFAULT NULL COMMENT 'Фамилия',
  33.   `pol` enum('0','1') NOT NULL DEFAULT '0' COMMENT 'Пол: 0 - жен, 1 - муж',
  34. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=153 ;
  35.  
  36.  

(Добавление)
INSERT INTO `tabel_smen_fakt` (`id`, `id_user`, `mfc`, `date`, `time_open`, `time_close`) VALUES
(116, '1,0,3', '2', 15032013, 954, 2155);
BespredeL Отправлено: 20 Марта, 2013 - 16:43:53 • Тема: Выборка данных из нескольких таблиц и обьединение • Форум: Вопросы новичков

Ответов: 5
Просмотров: 238
Dark-def пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `user`
  2. INNER JOIN `sotrudniki`
  3. ON sotrudniki.id = user.mfc
  4. INNER JOIN `tabel_smen`
  5. ON tabel_smen.id_user = sotrudniki.mfc

Если я конечно правильно понял вашу структуру БД...
ПЫСЫ: не тестил



Рассматривал подобное, но вот как реализовать не запрос а код вывода.
Я посмотрел свой, и ох.... охренел.
4 цикла вложенные друг в друга. Это ж капец
BespredeL Отправлено: 20 Марта, 2013 - 16:29:01 • Тема: Выборка данных из нескольких таблиц и обьединение • Форум: Вопросы новичков

Ответов: 5
Просмотров: 238
Ребят, всем привет!
Возникла капец какая грандиозная проблема для меня.

У меня есть 3 таблицы: user, sotrudniki, tabel_smen

Структура таблиц такова:

user => id
nick
pass
level
ank_name
ank_famil
mfc


sotrudniki = > id
mfc
name
famil
status

tabel_smen => id
id_user
mfc
date



Теперь о таблицах:

user - зарегистрированные пользователи (если привилегированные то в поле mfc записаны id из этой же таблицы через запятую)

sotrudniki - здесь записаны сотрудники и в mfc записаны id из user

tabel_smen - здесь записываются данные о их выходах в id_user записываются через запятую id из таблицы sotrudniki и в mfc записываются id из user

Мне нужно все это сообразить на одной страничке, что бы вывод был такой:

Салон 1
Петров - 12 смен
Иванов - 20 смен
Салон 2
Пупкин - 19 смен

и.тд

Помогите плиз сообразить. А то что то никак не получается. Напичкал код циклами, и не работает один пень. Голова кипит уже.
BespredeL Отправлено: 12 Марта, 2013 - 09:03:23 • Тема: Работа с Excel • Форум: Напишите за меня, пожалуйста

Ответов: 0
Просмотров: 24
Ребята, всем привет.
Очень нужна ваша помощь.
Я не разу не работал с excel в php, и не могу никак понять как создать скрипт, который будет записывать данные из базы в таблицу excel.
Нужно для личной работы.
Поиски в Google не особо помогли.
Точнее я нашел информацию по работе с excel но не понял как реализовать это.
Помогите плиз кто чем может Радость

Вот ссылка на таблицу: T13[dot]XLS
BespredeL Отправлено: 23 Ноября, 2012 - 08:03:21 • Тема: Поместить текст в массив • Форум: Вопросы новичков

Ответов: 2
Просмотров: 215
avtor.fox пишет:
BespredeL как вариант говнокода -

Разбиваем "это" через explode -
CODE (text):
скопировать код в буфер обмена
  1. Number = $new[0]
  2. Full Name = $new[1],$new[2],$new[3]
  3. ---
  4. а всё что не попало в определённые "ячейки" по определению попадёт в текст
  5. ---
  6. $text01 = $new[count($new) - 2];
  7. $date = $new[count($new) - 1];


Но говнокод не с моей стороны, а с Вашей.


а если не говнокодом делать? Можно что то более нормальное сделать. просто у меня эти данные через explode разделяются построчно. вообщем вот код:

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.                 $text = scan_output($_POST['text']);
  4.  
  5.                 $str = explode("\n", $text);
  6.  
  7.                         foreach($str as $key=>$val){
  8.                        
  9.                                 echo $val.'<br />';
  10.  
  11.                         }
  12.  
  13.                 }
  14.                 else $err='Ошибка';
  15.  
  16.  
BespredeL Отправлено: 23 Ноября, 2012 - 07:34:47 • Тема: Поместить текст в массив • Форум: Вопросы новичков

Ответов: 2
Просмотров: 215
Всем привет.
Ребят, подскажите пожалуйста как занести в массив вот такую строчку:
90546382 Фамилия Имя Отчество Тут тоже текст разной длинны 8794563549 23819603546372854 31342577 Текст01 04.11.2012

, только что бы получилось:
1. 90546382
2. Фамилия Имя Отчество
3. Тут тоже текст разной длинны
4. 8794563549
5. 23819603546372854
6. 31342577
7. Текст01
8. 04.11.2012

Проблема у меня возникла в том что эти данные тоже вытягиваются через explode, и я не могу сделать шаблон по которому будет строка разбиваться.

Т.е работа скрипта заключается в том что пользователь заходит на страницу, вставляет данные в textarea и нажимает добавить. Скрипт разбивает данные построчно, и должен еще эту строку преобразовать в массив что бы записать в базу для дальнейшего вывода из нее.
BespredeL Отправлено: 10 Ноября, 2012 - 15:46:33 • Тема: Шаблон • Форум: Вопросы новичков

Ответов: 6
Просмотров: 211
Спасибо большое ребят!!!! Попробую ща. Спасибо!!
BespredeL Отправлено: 10 Ноября, 2012 - 15:39:13 • Тема: Шаблон • Форум: Вопросы новичков

Ответов: 6
Просмотров: 211
avtor.fox пишет:
http://forum.php.su/topic.php?fo...35&topic=785
В этой теме можно посмотреть как осуществлён вывод на примере календаря.


не догоню никак =( . уже видел недавно эту тему

(Добавление)

Вот такой у меня говнокодик

$i=0;
#$i=0;

foreach ($_POST['mobile'] as $values){

if (mysql_result(mysql_query("SELECT COUNT(*) FROM `all_mobile` WHERE `id` = '".$values."' LIMIT 1"), 0)==1){

$mobil=mysql_fetch_assoc(mysql_query("SELECT * FROM `all_mobile` WHERE `id` = '".$values."' LIMIT 1"));

#if (++$i2%4){

#$div = 'cс';

#}else{

# $div = 'cс2';

#}

echo '<div class="cс">';

echo '<div class="c_head">'.$_POST['f'].'</div>';

echo '<div class="c_title">'.$mobil['name'].'</div>';
echo '<div class="c_price">'.$mobil['price'].'р.</div>';
echo '
<table>
<tr>
<td><div class="c_desc_left">'.$mobil['desc1'].'</div></td>
<td><div class="c_desc_right">'.$mobil['desc2'].'</div></td>
</tr>
<tr>
<td><div class="c_desc_left">'.$mobil['desc3'].'</div></td>
<td><div class="c_desc_right">'.$mobil['desc4'].'</div></td>
</tr>
<tr>
<td><div class="c_desc_left">'.$mobil['desc5'].'</div></td>
<td><div class="c_desc_right">'.$mobil['desc6'].'</div></td>
</tr>
</table>';
$motiv = $mobil['price'] * $set['motivacia'] / 100;
# echo '<div class="c_foot_motiv">'.$motiv.'</div>';
echo '<div class="c_foot">Процент '.$todey.' ('.round($motiv).')</div>';
echo '</div>';


if (!(++$i%4)) {

echo '<P CLASS="breakhere">';

}

}

}
BespredeL Отправлено: 10 Ноября, 2012 - 15:30:56 • Тема: Шаблон • Форум: Вопросы новичков

Ответов: 6
Просмотров: 211
Я отметил интерации. Примерно так должно выглядеть. ну диз эт ерунда, у меня готов, только как реализовать вывод такой, не знаю.
(Добавление)
halsoft пишет:
Может все таки нарисуете? )
и если можно не на Вы. Закатив глазки
BespredeL Отправлено: 10 Ноября, 2012 - 15:17:27 • Тема: Шаблон • Форум: Вопросы новичков

Ответов: 6
Просмотров: 211
Всем привет. Ребят, подскажите как можно реализовать одну систему.
Мне нужно вывести через цикл, что то типа таблицы.
Представьте вот как здесь на форуме панель со смайлами слева, мне нужно что бы такой так сказать квадратик выводился на странице 4 раза в один столбец слева, потом по середине, потом справа.
Смысл вот в чем. мне нужно что бы выводились по 12 таких квадратов на одну страницу для вывода на печать в принтер.
Блин. Даже не знаю как еще объяснить получше.

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB