Приветствую Вас, Гость! Регистрация RSS

Мой сайт

Воскресенье, 10.11.2024
Главная » Шкатулка » Job » 1C&бухучет

freelance [2] 1C&бухучет [2] управление (бизнес) [1] записи по работе (temp) [4]
временные записи

1С + web
27.08.2010, 18:54
Добрый всем день, такой вопрос, каким образом можно сделать обмен между 1с и сайтом, нужно выгружать справочник и забирать заказы.
Как все организовать в 1с, первый раз с таким сталкиваюсь, даже понятия не имею


Можно написать обработку по выгрузке данных из 1С в БД сайта, используя соответствующий ADO драйвер

Сайт построен на базе СУБД MySQL. Идет подключение к базе и получение списка заказов.На клиенте должен быть установлен ODBC драйвер для Mysql. Взять можно на сайте производителя.

Connection1 = Новый COMОбъект("ADODB.Connection");
Connection1.ConnectionString="DRIVER={MySQL ODBC 3.51 Driver};SERVER="+СокрЛП(Константы.ХостАМ.Получить( ))+";PORT=3306;DATABASE="+СокрЛП(Константы.БДАМ.По лучить())+"; USER="+СокрЛП(Константы.ПользовательАМ.Получить()) +";PASSWORD="+СокрЛП(Константы.ПарольАМ.Получить() )+";OPTION=3;";
Connection1.Open();
RS = Новый COMОбъект("ADODB.Recordset");
RS.Open("SELECT * FROM zakaz WHERE ISNULL(data_obr) <> 0 and yes = 1 ORDER BY data,kli", Connection1);
Заказы.Очистить();
Пока RS.EOF() = 0 Цикл
Стро=Заказы.Добавить();
Стро.Код=RS.Fields("id").Value;
Стро.Дата=RS.Fields("data").Value;
Стро.Клиент=Справочники.Контрагенты.НайтиПоКоду(RS .Fields("kli").Value).Ссылка;
RS.MoveNext();
КонецЦикла;
RS.Close();
Connection1.Close();
RS=Неопределено;
Connection1=Неопределено;
Файлы.Очистить();
Для Каждого Стро Из Заказы Цикл
Файлы.Добавить(Стро.Код,"Заказ №"+Стро.Код+" от "+Стро.Дата+" "+Стро.Клиент,Ложь);
КонецЦикла;
ДБФ.Очистить();
ЭлементыФормы.ДБФ.ОбновитьСтроки();
----
Вот код, который загружает таблицу из SQL.

Srv=Новый ComОбъект("ADODB.Connection");
Srv.ConnectionString = "DRIVER=SQL Server;SERVER=SERV-DB;DATABASE=DilData;UID=sa;PWD=the_sql_ruler";
Srv.Open();

Таб = Новый ТаблицаЗначений;
Таб.Колонки.Добавить("КодОрганизации", Новый ОписаниеТипов("Число", , Новый КвалификаторыЧисла(1,0,ДопустимыйЗнак.Неотрицатель ный)));
Таб.Колонки.Добавить("ДатаСчета", Новый ОписаниеТипов("Дата", , Новый КвалификаторыДаты));
Таб.Колонки.Добавить("НомерСчета", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(20)));
Таб.Колонки.Добавить("СуммаСчета", Новый ОписаниеТипов("Число", , Новый КвалификаторыЧисла(10,2,ДопустимыйЗнак.Неотрицател ьный)));
Таб.Колонки.Добавить("КодКонтрагента", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(20, ДопустимаяДлина.Фиксированная)));
Таб.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(50)));
Таб.Колонки.Добавить("ДатаОплаты", Новый ОписаниеТипов("Дата", , Новый КвалификаторыДаты));
Таб.Колонки.Добавить("СуммаОплаты", Новый ОписаниеТипов("Число", , Новый КвалификаторыЧисла(10,2,ДопустимыйЗнак.Неотрицател ьный)));
Таб.Колонки.Добавить("ДатаОтгрузки", Новый ОписаниеТипов("Дата", , Новый КвалификаторыДаты));
Таб.Колонки.Добавить("СуммаОтгрузки", Новый ОписаниеТипов("Число", , Новый КвалификаторыЧисла(10,2,ДопустимыйЗнак.Неотрицател ьный)));
Таб.Колонки.Добавить("КодСчета", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(20)));
Таб.Колонки.Добавить("Примечание", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(200)));


Rs01 = Srv.Execute("USE DilData SELECT * FROM [dbo].[1cAccounts] WHERE [СчетДата] > CONVERT(DATETIME, '"+Формат(ДатаНачалаИмпорта, "ДФ=гггг-ММ-дд")+" 00:00:00', 102)");

Счет = 0;
Пока НЕ Rs01.EOF() Цикл

Строка = Таб.Добавить();
Строка.КодОрганизации = Rs01.Fields(0).Value;
Строка.ДатаСчета = Rs01.Fields(2).Value;
Строка.НомерСчета = Rs01.Fields(3).Value;
Строка.СуммаСчета = Rs01.Fields(4).Value;
Строка.КодКонтрагента = СтрЗаменить(Rs01.Fields(5).Value, Символы.НПП, "");
Строка.Наименование = Rs01.Fields(6).Value;
Строка.ДатаОплаты = Rs01.Fields(7).Value;
Строка.СуммаОплаты = Rs01.Fields(8).Value;
Строка.ДатаОтгрузки = Rs01.Fields(9).Value;
Строка.СуммаОтгрузки = Rs01.Fields(10).Value;
Строка.КодСчета = Rs01.Fields(12).Value;
Строка.Примечание = Rs01.Fields(16).Value;

Rs01.MoveNext();

КонецЦикла;
----------------------
попробуй joomla в связке с VirtueMart!!! Сейчас пробую этот инетмаг сделать!!! Выгрузку из 7-ки уже сделал

joomla и VirtueMart простой и удобный вариант. Но личный кабинет часто нужно подгонять напильником. Кто ценит нервы и деньги можно взять готовое решение, например http://1c-virtuemart.ru/
или http://web-kat.ru/ или http://www.phpshop.ru/docs/product5.html



2010:
Мне больше чем битрикс понравилась связка с Vam SHop

--------------------------

http://www.script-coding.info/1cpp.html (про библиотеку 1С++)
http://1c.proclub.ru/modules/mydownloads/personal.php?lid=3456&cid=83 (библиотека v7mysql.dll)

-------------
Можно рассмотреть вариант интернет магазина от Host CMS http://www.hostcms.ru.
В бесплатной версии (HostCMS.Халява) он уже включен в поставку.
Работает импорт и экспорт товаров в 1С с использованием CommerceML v.
1.xx, 2.0x. По моему это одна из немногих CMS с полнофункциональным
интернет магазином в бесплатной редакции, да и остальной функционал на
уровне.
--------------
средства 1С:
"Удаленный склад"
Удаленное управление заказами
WEB-расширение
WEB-витрина


Мнения
мнение1:
Это однозначно - если человек хочет реальный вэб-маг с процессингом
карт и онлайн заказом - никакого решения на основе 1С делать нельзя.
Только обмен между 1С и сайтом (можно даже в пакетном режиме для
надежности).

мнение2:
Истина, только обмен. Однако никто не мешает делать обмен раз в минуту или там в 15 минут.

Сделал именно такой инет-магазин: 1с ТИС-пакетный режим-Магазин на php
с MySQL. Работает как часы. Модификация и доработка - дело техники.
Сохранность данных-двусторонняя, почти всю инфу можно аплоудить туда и
обратно, ибо синхронизация.


мнение3:
Тебя собственно, что интересует? Реализация в 1с или на сайте?


Если в 1с - лучше написать самому, ибо никто не сможет учесть специфику
конкретного "магазина", не работая с ним непосредственно. Более того,
прайс тебе скорее всего придется выгружать с 1С. Соответственно вопрос
- насколько она окажется специфична.


1 вариант (через файл и ручную загрузку)

выгрузка данных из 1с (txt, xls, dbf, cvs, mql, xml и пр.) и загрузка посредством php (через кнопку на сайте)


2 вариант (прямой обмен конфы с инетом)

Что же касается прямого обмена с сайтом, то дело тебе (скорее всего)
придется иметь с ASP под HTTP, т.к. например 7.7 в плане инета заточена
под него, на ИТС можешь найти образцы кода.

-----
Или используя php+mySQL + библиотека v7mysql.dll (возможно потребуется поразбираться с cron +perl [скрипт для автоматизации] для  работы по расписанию)
Добавил: adminprg | | Теги: web, магазин+1С, , инет+1С
Просмотров: 1542 | Рейтинг: 0.0/0