Главная » Шкатулка » 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 [скрипт для автоматизации] для работы по расписанию) | |
Просмотров: 1542 | Рейтинг: 0.0/0 |