Подпишитесь на RSS, чтобы всегда быть в курсе событий.
Рубрики
Популярные статьи
- Не открываются сайты антивирусов drweb.com, kaspersky.ru и esetnod32.ru. Что делать? - 220 677 просмотров
- Обзор спутникового ресивера GS 8300 - 176 488 просмотров
- Что делать если закрыли доступ на одноклассники, вконтакте, маил, аську - 171 688 просмотров
- Монтаж потолка из пластиковых панелей на металлический каркас. - 153 486 просмотров
- Взлом пароля пользователя 1С 8 версии - 138 558 просмотров
- Вирус просит пополнить счет абонента билайн - 121 810 просмотров
- Как самому собрать душевую кабину - 75 878 просмотров
- Как сделать Live CD Dr Web и просканировать компьютер если не загружается Windows из-за вируса - 75 153 просмотров
- Megafon модем HUAWEI Mobile Connect 3G - 73 346 просмотров
- Описание китайского iPhone 3G - 67 650 просмотров
Печать реестра сертификатов соответствия
Когда-то на заре своего изучения платформы 8.х я писал обработку для печати реестра сертификатов для управления торговлей, а также для печати картинок сертификатов. Сейчас решил переписать обработки используя «более современные технологии», а также улучшить функционал. Внешняя печатая форма для печати реестра сертификатов работает на конфигурациях «Управление торговлей ред. 10.3″ и «Бухгалтерия ред. 2.0″, в том [...]
Росгострах. Страховой случай -2
Начало истории можно прочесть в моей статье «Россгострах. Страховой случай по ОСАГО«. В продолжении истории могу сказать, что спустя 2 недели после проведения экспертизы «экпертами от Росгостраха» как ни странно на сберкнижку «капнуло» 33 с копейками тысячи рублей. Я загнал машину на независимую экспертизу при сервис-центре ВАЗ «Симбирск-Лада», а заодно и в ремонт. Эксперт осмотрел [...]
Метки
1С и MySQL. Обмен данными. Пример переноса данных справочника
Цель взаимодействия MySQL и 1С
В последнее время наблюдается активное развитие интернет-магазинов в России, где продавцы предлагают заказать товар напрямую с сайта.
В то же время программы для бухгалтерского и управленческого учета остаются старыми — в основном это 1С Предприятие.
Необходимо уйти от ручного труда и автоматизировать обмен данными между базами данных 1С и MySQL, переносить справочники, например номенклатуру, контрагентов, цены, скидки и другие, а так же переносить заказы.
Мне поставили задачу перенести справочники из 1С в базу данных MySQL, как это сделать в кратце я описывал в статье Как подключить 1С к базе данных MySQL. Теперь я постараюсь описать процесс более подробно и с примерами переноса данных. В интернете предлагают в начале сделать выгрузку во внешний файл, а потом загрузить его в MySQL. Я расскажу как можно обойтись без этих файлов, а выполнить перенос напрямую через ODBC-драйвер.
Как настроить обмен 1С с MySQL через ODBC — драйверУстановка и настройка ODBC — драйвера
Необходимо скачать и установить ODBC — драйвер.
Запускаем файл «MySql.Data.msi». Выбираем типовую установку. Ничего сложного в этом нет.
Далее заходим в Пуск — Настройка — Панель Управления — Администрирование , находим там Источники данных (ODBC)
Кликаем 2 раза по иконке Источники данных (ODBC) и в появившемся окне ищем что-то вроде MySQL, если не находим, то жмем добавить и добавляем драйвер.
Далее выбираем драйвер и щелкаем «настройка». В появившемся окне указываем параметры базы данных MySQL. Так как тестил я на localhost — на локальном сервере «Апач», то указываем параметры подключения
Data Source name — MySQL ODBC 5.1 Driver
Description - MySQL ODBC 5.1 Driver
Server — 127.0.0.1
Port — 3306
User — root (можно любого другого пользователя)
Password — пароль от учетной записи (на локалхосте чаще всего пустой)
Выбираем базу данных — в моем случае — это «test»
Нажимаем кнопку Test, все должно пройти успешно, если возникли ошибки, то проверяем параметры подключения, запущен ли Apache, есть ли в MySQL такая база данных (test).
На этом данный пункт закончен. Мы настроили сисемное подключние к MySQL через ODBC.
Настройка базы данных MySQL
База MySQL уже создана и имеет заданную структуру, которую смотрим любым способом. Мои познания в MySQL ограничены, поэтому я использую стандартные средства phpmyadmin.
Открываем браузер и вбиваем адрес — http://localhost/tools/phpmyadmin/
На экране должна отобразиться панель управления базами данных.
Заходим в необходимую нам базу данных и смотрим структуру.
Для примера сделаем простую загрузку номенклатуры из 1С в MySQL. Имеем таблицу «tovar«, которая имеет 2 поля — «kod» и «name«. В первое запишем код товара в 1С Предприятие, а в поле name - наименование товара.
В принципе все. Далее мы переходим к 1С
Обработка 1С для подключения к MySQL и переноса данных
Запускаем конфигуратор 1С, создаем новый внешний отчет
Я сделал на форме 2 кнопки — подключить, при нажатии на которую мы будем подключаться к базе данных MySQL, и перенести, которой будем переносить товары.
Далее переходим к процедурам
Процедура Подключить()
Соединение = СоздатьОбъект(«ADODB.Connection»);
СтрокаСоединения = «DRIVER=MySQL ODBC 5.1 Driver;SERVER=localhost;DataBase=test;UID=root;PWD=;
Соединение.ConnectionString = (СтрокаСоединения);
Попытка
Соединение.Open();
Сообщить(«MySQL база подключена!!!»);
Исключение
Сообщить(«Не могу подключиться к базе!!!»);
КонецПопытки;
КонецПроцедуры
Эта процедура выполняет подключение
Строку соединения я прописал жестко, но ее параметры можно задавать и в элементах формы.
Вторая же процедура будет переносить данные
Процедура Перенос()
Т = СоздатьОбъект(«Справочник.Номенклатура»);
Т.ВыбратьЭлементы();
Пока Т.ПолучитьЭлемент() = 1 Цикл
Если Т.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Стр = «INSERT INTO `tovar` SET `kod` =»+»"»"+Т.Код+ «»"»+», `name` =»+»"»"+Строка(Т.Наименование)+»"»";
Соединение.Execute(Стр);
Сообщить(«Перенесли — » + Т.Наименование);
КонецЦикла;
КонецПроцедуры
Соединение.Execute(Стр); — выполняет запрос, который заносит в базу данных MySQL необходимые данные
Стр = «INSERT INTO `tovar` SET `kod` =»+»"»"+Т.Код+ «»"»+», `name` =»+»"»"+Строка(Т.Наименование)+»"»"; — сам текст запроса
После отрабатывания обработки мы получаем заполненную таблицу базы MySQL
Вот в общем то и все. По своему вкусу необходимо будет дописать различные проверки, но это уже дело техники и фантазии.
Подобным образом можно запрограммировать двухсторонний обмен любыми данными, справочниками и движениями, заказами.
К записи "1С и MySQL. Обмен данными. Пример переноса данных справочника" оставлено 39 коммент.
Оставить комментарий
Приветствую на моем блоге. Надеюсь вы найдете здесь много интересного и полезногоСохраните меня в социальных сервисах
Видео
Комментарии
- OPS: Можно смотреть как SD, так и HD каналы. Его полное название Dr.HD F-15. Цены везде разные. Заказать можно по...
- сергей: а вообще где F-15 продают ,заказывать нужно? сколько бабосов стоит? можно ли hd каналы смотреть?
- Серж: Это та, которая орёт в рупор: «на посадку, автобус следует по маршруту и т.д.»? ))
- Леха: Пардон! Прошивка отстой сплошные глюки, придется переходить на старую!!!
- Леха: Прошивка отстой сплошные глюки, придется перодить на старую!!!
Страницы блога
Статистика
Ссылки
- Блог java программиста
- Здесь можно скачать софт
- Справочник програмиста 1С Выписываю основные приемы программирования
Друзья
- Антикоррозийной обработки днища автомобилей. Обработка антикоррозийное днище автомобиля. .






Прошу прощения,нельзя ли ОЧЕНЬ ПОДРОБНО остановиться на синтаксисе и построении запроса(Начиная со «Стр=……).Очень-очень нужно.Заранее благодарен.
Ответить
Константин, напиши своё мыло, я тебе вышлю готовый ert, мой предыдущий пост дядя админ уничтожил, как обычно! =(
Ответить
Макс3 Reply:
марта 12, 2012 at 20:52
Привет, а можешь мне выслать готовый ert?
Ответить
Александр Reply:
апреля 13, 2012 at 14:12
Добрый день! Если есть возможность, вышлите пожалуйста готовый ert. И вопрос, аналогичным способом можно вытянуть из 1с остатки?
Ответить
Александр Reply:
апреля 13, 2012 at 14:13
вот мыло: padremanuel@mail.ru
Ответить
Посты с внешними ссылками удаляются автоматом, потому как спама много.)))
Видимо в комментарии ссылка была.
Руками я практически ничего не удаляю, тем более в таких темах.
Ответить
вот фигово, у меня уже второй пост ущел в небытие, ссылка была и в первом и во втором.
я уже дважды не смог помочь, хотя мог, и время тратил на написание, зря только
Ответить
А вот такие, как выше, комментарии я чищу руками. Потому как содержат ссылку на твой сайт, Евсенкин Максим Александрович)))
Если хочешь, чтобы была ссылка на твой блог/сайт — отпиши прямо, хочу ссылку — договоримся)))
Ответить
Чтоб всем было хорошо, и тебе и мне и сайты продвигались)))
Ответить
Макс!!заранее благодарен…berconst@ukr.net
Ответить
Макс!!тоже буду очень благодарен… manoulenko@ukr.net
Ответить
Макс М. отправил =)
Ответить
помогите, пожалуйста! не могу разобраться. у меня после процедуры переноса данных из 1с в MySQL все русские символы в базе отображаются кракозяблами. Как решить эту проблему???
Ответить
Евгений, кодировки должны быть одинаковы как в MySQL так и в 1С
Ответить
Здравствуйте. Ищу готовое решение синхронизации 1С и Joomla-VirtueMart не программист и самостоятельно синхронизировать не потяну. Может у вас есть готовое решение? Напишите мне или в асю стукните: 473737041
Ответить
У меня готового решения нет, а что переносить хочешь? У тебя интернет — магазин? Остатки-продажи?
VirtueMart — это надстройка на Джумлу?
Ответить
Респект тебе админ!! Спасибо за статью!! Я новичок в 1с поэтому хочу ваш совет. Вообщем картина такая, есть магазин который работает на 1С, так вот этот магазин делает себе интернет магазин.Задача такая: при каждой операции по продаже 1С должна вносить соответствующее изменение в Mysql базу интернет магазина. Так вот какое я вижу решение: подкорректировать конфигурацию 1С в тех местах где происходят операции с таблицами товаров чтобы при каждой операции например продаже товара совершалось обращение к Mysql базе посредством sql запросов. Что можете сказать?
Ответить
Во-первых надо разобраться откуда куда и какие данные должны передаваться. Обычно из интернет-магазина передаются данные о продажах, а из 1С в интернет-магазин — об остатках (для наличия).
Если это так, то зачем передавать данные о продажах из 1С в mySQL. Такое может понадобиться, например для того, чтобы клиенты могли отслеживать состояние своего заказа. Если этого нет, то я не вижу смысла.
Во-вторых. Передавать каждую продажу так сказать он-лайн имеет смысл, если интернет-сервер, на котором крутится сайт, лежит здесь же, в локалке, и нет проблем со связью. Если же сайт лежит на внешнем хостинге, то есть такое понятие, как канал связи и он может быть не всегда стабильным… В этом случае, думаю, необходимо организовать периодический обмен (например, каждые 10 минут, или час, или сутки, в зависимости от нюансов работы фирмы).
Естественно, надо будет запрограммировать обработку ошибок…
Ответить
Было бы так же интересно увидеть и импорт заказов.
Ответить