|
|
|
1С + MySql + MS SQL | ☑ | ||
|---|---|---|---|---|
|
0
sr Stepa
01.09.10
✎
14:46
|
Стоит задача создать базу данных 1С...
Есть база данных на MySQL откуда надо брать постоянно меняющиеся данные, при этом не внося туда никаких данных и обмен надо реализовать на автоматический режим. Вторая база на платформе 1C, скорее всего MS SQL. При этом надо создать справочник в MS SQL который будет брать половину из MySQL, вторая часть будет вносится вручную. Отчеты надо получать смешанным вариантом... Реально ли такая реализация задачи? Если прилинковать MySQL, то будет ли работать запрос в 1С и как примерно он будет выглядеть? |
|||
|
1
Андрюха
01.09.10
✎
14:47
|
вполне выполнимо
|
|||
|
2
ДенисЧ
01.09.10
✎
14:48
|
Если сможешь прилинковать (я не помню, можно ли мыскль приэто), то работать будет.
|
|||
|
3
sr Stepa
01.09.10
✎
14:53
|
Линкуются вроде без проблем (тут нашел http://club.directum.ru/blog/post/Chastichnaja-integracija-Sozdanie-Linked-Server.aspx) Меня больше волнует как будут выглядеть справочники в 1С. К примеру есть в MySQL таблица код - id_own (char(40)), наименование - own (char(15))... и т.д. Если задать в конфигураторе справочник, получит ли он значения внесенные в MySQL&
|
|||
|
4
Лефмихалыч
01.09.10
✎
15:00
|
(0) нахрена такие сложности? почему не написать обработку, которая через то же АДО будет перекидывать данные из MySQL в конфу?
|
|||
|
5
Chuper_IT
01.09.10
✎
15:02
|
(0) два запроса один к sql другой к mysql через ADO я так делал..
|
|||
|
6
sr Stepa
01.09.10
✎
15:06
|
Сложностей много. Имеем справочник Юр.лиц в MySQL, который правит сторонняя организация по своему усмотрению. В 1С надо создать справочник этих же юр.лиц но более расширенный, т.е. добавлять своих, но чтоб они не попадали в первую базу. Другие таблицы динамические, меняются также, из них надо получать статистические данные. Перекидывать придется каждую минуту, потому как данные поступают с интервалом от 1 минуты до 1 часа, при этом не отключая ни одного пользователя.
|
|||
|
7
sr Stepa
01.09.10
✎
15:10
|
т.е. один запрос в sql к Mysql, а второй запрос из 1С в sql?
|
|||
|
8
Chuper_IT
01.09.10
✎
15:11
|
(7) конечно. только в таком случае синхронизацию кури в 1С, и подумай на чьей стороне дубли контрагентов убивать будешь :) т.к. бухи даже в одной "папочке" троят контрагентов
|
|||
|
9
Chuper_IT
01.09.10
✎
15:14
|
(7) стой. оба запроса из 1С делай, так проще имхо.
|
|||
|
10
sr Stepa
01.09.10
✎
15:28
|
В смысле? Как оба из 1С?
|
|||
|
11
sr Stepa
01.09.10
✎
15:29
|
Грабли в том что на этот справочник должны привязаться данный из mysql...
|
|||
|
12
Chuper_IT
01.09.10
✎
15:29
|
прямыми запросами. через ADO
|
|||
|
13
Chuper_IT
01.09.10
✎
15:31
|
Соединение = CreateObject("ADODB.Connection");
Try Соединение.open("driver={MySQL ODBC 5.1 Driver}; server=localhost; uid=root; pwd=222; database=tc-db-main; port=3306; STMT=SET CHARACTER SET cp1251"); Except DoMessageBox("Отсутствует связь с базой!"); return; EndTry; //ловим список для рассылки ТекстЗапроса = " |select id, convert(description,char) as mail |from personal |where status = 'AVAILABLE' and TYPE = 'DEP' |and ID > 5 and NOT PARENT_ID = 0 "; ADODB = Соединение.Execute(ТекстЗапроса); //Сообщить(ТекстЗапроса); Пока ADODB.EOF()=0 Цикл ТЗПочта.НоваяСтрока(); ТЗПочта.ID = ADODB.Fields("ID").Value; ТЗПочта.Почта = ADODB.Fields("MAIL").Value; ADODB.MoveNEXT(); КонецЦикла; ADODB.Close(); Соединение.Close(); хотябы так. запрос к базе mysql |
|||
|
14
sapphire
01.09.10
✎
15:36
|
Ничего особенного
|
|||
|
15
sr Stepa
01.09.10
✎
15:36
|
К примеру со станции инмарсат с одного физика поступают данные в mysql каждый час, физиков более 1000, каждый отправляет данные во время, когда ему заблагорассудится. Надо допустим выбрать последнюю информацию поступившую от ряда физиков. Получается надо взять отбор по справочнику в 1С, и выбрать из mysql то что им принадлежит....
|
|||
|
16
sapphire
01.09.10
✎
15:36
|
(12) Не лучше.
|
|||
|
17
sr Stepa
01.09.10
✎
15:38
|
При этом сотрудник не должен сидеть и запускать обработку чтоб провести обмен данными
|
|||
|
18
Chuper_IT
01.09.10
✎
15:38
|
(15) мысли в слух? :)
|
|||
|
19
sr Stepa
01.09.10
✎
15:39
|
Ага. пытаюсь осмыслить этот глобализм.... %)
|
|||
|
20
ДенисЧ
01.09.10
✎
15:42
|
А если вьюшку создать?
|
|||
|
21
sr Stepa
01.09.10
✎
15:43
|
Хорошо, с запросами понятно, а как быть именно со справочником? Данные вносится будут напрямую в sql, а как справочник будет получать данные из mysql?
|
|||
|
22
sr Stepa
01.09.10
✎
15:43
|
Вьюшку чего?
|
|||
|
23
el-gamberro
01.09.10
✎
15:44
|
А зачем вьюшку?
|
|||
|
24
el-gamberro
01.09.10
✎
15:45
|
(17) ОбработкаОжидания("ОбменДанными",60)
|
|||
|
25
sr Stepa
01.09.10
✎
15:45
|
В mysql у меня 107 таблиц, в sql будет пара десятков, связка нужна на все. Не говоря уж про математику которая должна идти в 1С на основании таблиц из обоих баз...
|
|||
|
26
Chuper_IT
01.09.10
✎
15:47
|
(25) начал с двух справочников, закончил с полной синхронизацией двух баз. ппц :)
|
|||
|
27
el-gamberro
01.09.10
✎
15:47
|
(25) и что дальше?
|
|||
|
28
ado
01.09.10
✎
15:49
|
Позвать программиста еще не предлагали?
|
|||
|
29
sr Stepa
01.09.10
✎
15:56
|
Не, синхронизация не нужна. Нужно из одной базы дополнять справочники другой базы, и в другой базе обрабатывать математику из двух баз.
|
|||
|
30
sr Stepa
01.09.10
✎
15:57
|
Программиста нет... и не будет.)) 1С знаю, а вот по sql знаний можно сказать ноль..
|
|||
|
31
sr Stepa
01.09.10
✎
15:59
|
Обработка ожидания() - а если в этот момент кто-то работает со справочником? Или открыл его и чай пошел пить? В теории понимаю что реализовать можно, хочу путем наименьшего сопротивления.
|
|||
|
32
Chuper_IT
01.09.10
✎
16:01
|
(31) что есть наименьшее сопротивление? mssql учить надо, mysql учить надо. а ты волнуешься кто куда кофе пошел пить :)
сходи тоже попей. |
|||
|
33
el-gamberro
01.09.10
✎
16:02
|
Вы там кем работаете? Админом со знанием 1с?
|
|||
|
34
sr Stepa
01.09.10
✎
16:06
|
Я скоро водку пойду пить от таких задач.:) Учить, учу потому и спрашиваю что и как.:)
|
|||
|
35
sr Stepa
01.09.10
✎
16:08
|
На 1С программирую, но вот со скулом не доводилось так плотно работать. Год назад реализовали базу с привязкой к аксесу, но меня воротит от этого. База за неполный год весит 1 гиг и производительности никакой.
|
|||
|
36
FN
01.09.10
✎
16:11
|
Что такого необходимо так оперативно обрабатывать в 1С?
Может этот функционал должен делаться на Мускуле+веб (или чего там наворочено). А в 1С только периодически сливаться для отчетности? вообще задача не раскрыта |
|||
|
37
ДенисЧ
01.09.10
✎
16:18
|
Не... Я бы точно вьюх на справочники насоздавал бы и работал с ними, если прям так ужи приспичило...
|
|||
|
38
el-gamberro
01.09.10
✎
16:19
|
Вообще если одбем в одну сторону правильнее все сделать на триггерах. Вот тока я не знаю есть в майскуле тригерра.
|
|||
|
39
ado
01.09.10
✎
16:19
|
(36) Он не знает ни мускуля, ни веба. По-этому хочет всё в 1С затащить.
|
|||
|
40
ado
01.09.10
✎
16:19
|
(38) Начиная с 5-го вроде есть.
|
|||
|
41
sr Stepa
01.09.10
✎
16:20
|
В 1С затащить не хочу, просто пока альтернативы не вижу...
|
|||
|
42
sr Stepa
01.09.10
✎
16:21
|
Грубо говоря надо графический интерфейс к mysql с функцией ведения своей базы на его основе...
Плюс отчеты, статистика, и расчеты на основе двух баз. |
|||
|
43
sr Stepa
01.09.10
✎
16:26
|
Попробую привести похожий пример: Есть организации, за ними закреплены машины, перевезенный груз, лимит на моторесурс это в mysql вносит одна организация, выдача путевых листов, проверка груза, проверка моторесурса, сравнительный отчет это все в чем то другом... просто на мой взгляд проще организовать удобный интерфейс в 1С чтоб оператор вносил данные в базу и на основе двух баз анализировал все стекающие к нему данные.
|
|||
|
44
ado
01.09.10
✎
16:27
|
Все-таки фирма 1С страшное зло сотворила с российской ИТ индустрией ...
|
|||
|
45
sr Stepa
01.09.10
✎
16:28
|
К mysql доступ только для чтения, работать в нем нельзя... Можно только выдернуть данные...
|
|||
|
46
ado
01.09.10
✎
16:29
|
(45) Ну, как читать из MySQL тебе в (13) показали. Что еще нужно то?
|
|||
|
47
sr Stepa
01.09.10
✎
16:36
|
Как читать с этим вроде разобрался, не могу понять принцип создания справочника. К примеру создаем справочник лиц, поля дублируем один в один с mysql, создаем объект типа справочник, делаем из него запрос в mysql, получаем оттуда список лиц который пристыкуется к справочнику sql созданному пользователем в 1С.. Правильно?
|
|||
|
48
ado
01.09.10
✎
16:38
|
(47) >> создаем объект типа справочник, делаем из него запрос в mysql, получаем оттуда список лиц который пристыкуется к справочнику sql созданному пользователем в 1С
Ты точно 1С знаешь? |
|||
|
49
ado
01.09.10
✎
16:39
|
Создаем обработку, которая будет тянуть данные из MySQL и заполнять твой справочник.
|
|||
|
50
sr Stepa
01.09.10
✎
16:42
|
Так вот о чем и речь... Я об этом еще в первых сообщениях написал...Справочник импортировать нельзя, потому как он может измениться в любую минуту. Задача номер один стоит - получить справочник юридических лиц из одной базы в другую, при этом дополнять справочник можно только в sql, в mysql вносить изменения нельзя. Реально ли организовать эту задачу подручными средствами?
|
|||
|
51
ado
01.09.10
✎
16:42
|
К базе MySQL совсем никакого доступа на запись и изменение структуры? Записи в ту базу только добавляются, или еще и обновляются активно?
|
|||
|
52
sr Stepa
01.09.10
✎
16:44
|
Да, именно так. Записи в базу вносятся круглосуточно, плюс правятся данные за прошлые периоды, она постоянно получается в движении.
|
|||
|
53
ado
01.09.10
✎
16:47
|
(50) Можно, конечно, извращаться с запросами к двум базам, но, ИМХО, это не рационально. Лучше в одну из баз сливать все данные. Загрузку можно делать по таймеру, или при выполнении какого-либо действия.
Самая проблема в том, что-бы в каждом запросе не тянуть все данные, а только измененные с последнего запроса. |
|||
|
54
ado
01.09.10
✎
16:48
|
(52) А как насчет возможности правки этой базы?
|
|||
|
55
sr Stepa
01.09.10
✎
16:50
|
Сливать все в одну базу можно только если в sql, потянет он?
|
|||
|
56
sr Stepa
01.09.10
✎
16:50
|
Править тоже нельзя, правят ее либо в Москве, либо в уполномоченных центрах, где делают заливку в нее.
|
|||
|
57
ado
01.09.10
✎
16:54
|
(55) Он то потянет, но вот в свете (56) проблема другая рисуется. Ты не сможешь отслеживать синхронизированные записи, и придется таскать всю базу каждый раз. А это ой ...
|
|||
|
58
Terve-R-
01.09.10
✎
16:56
|
(53) тогда решить задачу от обратного - при изменении данных в MySQL этой же процедурой те же изменения будут отправляться в MSSQL, ну или во что-то промежуточное.
|
|||
|
59
ado
01.09.10
✎
17:03
|
(58) Вот только проблема в том, что у него нет доступа к тем процедурам, которые изменяют данные в MySQL
|
|||
|
60
Terve-R-
01.09.10
✎
17:11
|
Такие вещи надо заранее предусматривать или исправлять существующие объекты ИБ где необходимо, а то выглядит, как будто надо подключиться к чужой базе...
|
|||
|
61
sr Stepa
01.09.10
✎
17:14
|
да уж... Хорошо, а если пойти путем импорта справочников, а к динамическим данным делать запросы? Если в обработке 1С прописать условия синхронизации, то в теории должно сработать...
|
|||
|
62
ado
01.09.10
✎
17:15
|
(60) Похоже, оно не выглядит, а так и есть.
|
|||
|
63
sr Stepa
01.09.10
✎
17:16
|
Так и есть, к чужой базе. Первую базу ведет одна организация. Наша организация должна реализовать свою базу, которая на основе наших данных будет перепроверять первую базу. Потому и получается что справочники одинаковые, но исправляются другой организацией, а привязка нашей базы основана на их справочниках.
|
|||
|
64
ado
01.09.10
✎
17:16
|
(61) Тааак, а справочники у тебя что, не динамические данные? Они что, не меняются?
|
|||
|
65
sr Stepa
01.09.10
✎
17:18
|
Таблицы со справочниками меняются не часто. А вот таблицы с данным меняются постоянно.
|
|||
|
66
el-gamberro
01.09.10
✎
17:18
|
(63) А как коллизии собираешься решать?
Неужели к майскулю не дадут доступ для настройки триггера? |
|||
|
67
el-gamberro
01.09.10
✎
17:19
|
Представь что перегрузил справочник, в свой базе 1с кто-то поправил элемент справочника, а потом его поправили в майскуле и изменения в 1с перезатрутся.
|
|||
|
68
sr Stepa
01.09.10
✎
17:20
|
Не дадут, доступ жестко оговорен.
|
|||
|
69
sr Stepa
01.09.10
✎
17:21
|
А если запретить редактирование справочника в 1С и посадить специально обученного человека на внесение новых данных?
|
|||
|
70
ado
01.09.10
✎
17:38
|
(67) Те элементы справочника, которые загрузили из мускула править в 1С не должны, читай внимательно ветку. Можно признак какой-нибудь сделать, загружен или введен, и, соответственно, разрешать/запрещать редактирование.
|
|||
|
71
el-gamberro
01.09.10
✎
17:44
|
||||
|
72
sr Stepa
01.09.10
✎
17:49
|
А если пойти другим путем.... Загружаем справочник из мускула, разрешаем его правку. При следующей загрузке просто проверяем каждую запись на соответствие и если есть изменения то не добавляем его а создаем отдельный список несоответствий. Все выявленные несоответствия заносим ручками в свой справочник... Правда в справочнике 16000 записей... %)
|
|||
|
73
Terve-R-
01.09.10
✎
17:51
|
(72) это уже за гранью моего сознания %) ))
|
|||
|
74
nejtron
01.09.10
✎
18:10
|
Сделай по принципу классификатора банков и банковских счетов
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |