Имя: Пароль:
1C
1С v8
v8: Объединение двух разнородных конфигураций в одну
0 Kaperang
 
05.04.12
10:42
Поставили задачу: объединить две разнородные конфигурации в одну. Конкретно "Альфа-Авто р.4" от Рарус и УПП
Часть имен объектов конфигураций совпадает. Обе конфигурации куплены официально. УПП трогать нежелателно, ибо по большому счету типовая, и хотелось бы сохранить возможность быстрого и беспроблемного обновления.
Вопрос обновления "Альфа-Авто" отпадает, в связи с выходом финального релиза редакции 4.


Ранее УПП уже был объединен с "Управление автотранспортом" от "Рарус". Но "УАТ" изначально писался с возможностью объединения с УПП. А вот у "Альфа-Авто" штатно такой возможности нет. А меня собственно и взяли на работу в эту организацию под эту задачу.

Первой мыслью было:

проставить префиксы в конфигурации "Альфа-Авто", поправить в коде обращения к объектам. Далее - объединить конфигурации в одну. Получаем, по сути, две информационные базы, пока никак не связанные, но хранящиеся в одной базе данных. Связь между информационными потоками сделать через подписки на события.
На выходе - все пользователи сидят в одной базе, продажник ввел документ "Продажа автомобиля", бухгалтера сразу видят документ "Реализация товаров" (созданный соотв.подпиской на событие).
Плюс, проблем с обновлением УПП вроде не планируется.

Это в теории.
На практике:
На основе V8Reader написал обработку, которая разбирает .cf, добавляет к именам объектов префикс, проходит под текстам модулей, исправляя обращения к объектам и заново собирает .cf. Понятно потом приходится подправлять еще ручками, но 95 % рутинной работы обработка выполняет.
Засад две - первая: часть кодов модулей не включены в поставку. Ладно, это решается.

Вторая, на которой я встрял: часть кода вынесена во внешнюю компоненту V8Autosalon.dll.
Вот их непонятно, как исправить. Года полтора назад был опыт обращения в службу поддержки "Раруса" по поводу исправления ошибки в кодах, не включенных в исходную поставку. Наткнулся на глухую стену. Хотя все куплено было официально, отдельно регулярно платили за поддержку. В итоге, пришлось декомпилить и править студенческую ошибку в коде самим.
Повторюсь, конфигурация куплена официально, задачи отвзять от ключика не стоит.

Задача стоит примерно так - поправить в V8Autosalon.dll обращения к объектам конфигурации по принципу "Справочники.Номенклатура" > "Справочники.ааНоменклатура".
1 Господин ПЖ
 
05.04.12
10:43
>Первой мыслью было:

правильная первая мысль - у меня есть 2-3 дня пока не внесли запись в трудовую чтобы сделать ноги
2 Kaperang
 
05.04.12
10:44
Просьба модераторам изменить название темы на "v8: Объединение двух разнородных конфигураций в одну "
4 sergeante
 
05.04.12
10:48
вот жешь операция на глаза через анал, ппц
5 МихаилМ
 
05.04.12
10:49
также как с CF

декомпилируйте  dll и исправте строковые ресурсы
6 Fish
 
05.04.12
10:49
(0) Задача полный бред :)))
7 Kaperang
 
05.04.12
10:50
> декомпилируйте  dll и исправте строковые ресурсы
мммм..посоветуте, каки чем ?
8 vmv
 
05.04.12
10:50
(0) забей - задача нереальна.

сделай че-нить полезное и нужное, чтобы не обвинили в саботаже
9 Kaperang
 
05.04.12
10:53
Просмотр HEX-редактором показывает что-то крайне похожее на строки оригинального кода 1С
10 Kaperang
 
05.04.12
10:54
Вопрос в том, как их выдернуть оттуда, исправить как мне надо и потом туда запихнуть?
11 Vovan1975
 
05.04.12
10:55
беги Форест, беги!
12 Fish
 
05.04.12
10:56
(10) вопрос в том, зачем вообще объединять, когда гораздо целесообразнее настроить обмен между конфами и не ипать мозг.
13 sergeante
 
05.04.12
10:56
(10) отказывайся нахрен, огребёшь не подецки
14 sergeante
 
05.04.12
10:57
вотвот лучше над обменом подумать. ну или както в связке по COM
15 vmv
 
05.04.12
10:57
(10) ты еще и срок себе заработаешь, лет 5 впаяют, если парни из Раруса подадут иск за нарушение авторских прав, взлом и т.д. - в Тз тока не забудь вписать модод доработки
16 Fish
 
05.04.12
10:59
(15) Это точно. Интересно, что там в лицензии Раруса говорится о модификации их компонент?
17 Sammo
 
05.04.12
11:02
Скрестить ужа с ежом. Замечательная идея, имхо...
18 Kaperang
 
05.04.12
11:04
Вот и уже почти готов отказаться от данного способа решения задачи.
Обидно только, что потратил почти неделю на создание и отладку обработку, которой разбирает .cf, проставляет префиксы и собирает обратно. 95% по правке кодов она выполняет. Остальное - ручная правка на полдня.
И  только из-за каких-то 50-100 строчек кода, вынесенных во внешную компоненту,  все нахер....абидна, да....
19 МихаилМ
 
05.04.12
11:06
(7)

для вашей задачи подоядет любой дизасемблер
при условии, что код не зашифрован.

можно даже сделать проще для проверки работоспособности: поменять строковые ресурсы на другие с тоже длинной.

если все заработает - тогда дизасемблировать

если - нет . значит строки вычисляются

и задача становится сложнее.

можно использовать промежуточный вариант без компилятора:

дизасемблером найти ссылки на ресурс,

исправить ресурс, поменять адрес в найденныйх ссылках в хекс редакторе.
20 Господин ПЖ
 
05.04.12
11:08
(16) >в лицензии Раруса говорится о модификации их компонент?

как у всех скорее всего... нельзя обходить и модфицировать
21 sergeante
 
05.04.12
11:16
(18) зато нехилый опыт приобрёл.
22 pumbaEO
 
05.04.12
11:20
(18) поделись v8Readerom дописаным.
23 sergeante
 
05.04.12
11:21
а скинька V8Autosalon.dll позырить
24 pumbaEO
 
05.04.12
11:22
(23) теперь еще из него хочешь сделать пирата?
25 sergeante
 
05.04.12
11:23
(24) эх.
26 Alexey87
 
05.04.12
11:24
(0)ИМХО это просто полный бред, услышав такую задачу на собеседовании я бы сразу встал и ушел. ТС по ходу не очень адекватен, раз всерьез берется за такие задачи.
27 Господин ПЖ
 
05.04.12
11:24
>услышав такую задачу на собеседовании

кто же такое озвучит
28 Kaperang
 
05.04.12
11:27
v8Reader позволяет только раскомпилить и прсмотреть содержимое .са
Его предыдущая версия - "Парсировщик" от того-же автора позволяет еще и скомпилить обратно все в .cf
Дорабавивал ее, при непосредственной помощи автора сей разработки.
Чуть попозже, причешу и выложу в общий доступ.
29 Kaperang
 
05.04.12
11:29
Проблема в том, что ранее в этой организации уже был успешный опыт объединения "Управление автотранспортом" и  "УПП".
Только "УАТ" изначально разрабатывался с возможностью объединения с другими конфигурациями - прежде всего везде проставлены префиксы.
30 sergeante
 
05.04.12
11:30
(29) в асю мне стукни
31 Kaperang
 
05.04.12
11:30
Если, способ решения задачи, озвученный мною выше, буду рассматривать или через написание и настройку плана обмена средствами "Конвертация данных", или через Com-объект.
32 Господин ПЖ
 
05.04.12
11:31
>Проблема в том, что ранее в этой организации уже был успешный опыт объединения "Управление автотранспортом" и  "УПП".
>Только "УАТ" изначально разрабатывался с возможностью объединения с другими конфигурациями - прежде всего везде проставлены префиксы.

у организации ранее был успешный опыт вкручивания болта в гайку... теперь она решила попробовать на гвоздях... беги, форест, беги
33 Patrio_
O_Muerte
 
05.04.12
11:36
АААА, жесть :)
А в винду они не хотят ее внедрять?
34 n koretsky
 
05.04.12
11:39
О_О
ох же и задачо...
35 не_1Снег
 
05.04.12
11:46
(33)Винда у них должна будет из под 1С работать:)
36 Kaperang
 
05.04.12
11:51
http://infostart.ru/public/121312/ - автор решил примерно аналогичную задачу, только без внешних компонент
37 Cube
 
05.04.12
11:52
(0) Самое главное, тебе нужно понять ЗАЧЕМ нужно объединять эти конфигурации? Какие плюсы? Плюсов-то нет... А гемора.....
38 Kaperang
 
05.04.12
11:54
Списывался с автором статьи - он правил все руками.
Даже если не получится решить задачу данным способом, на выходе в сухом остатке - обработка которая автоматическ проставляет префиксы объектов конфигурации и правит коды. Причешу, выложу в открытый доступ - может кому пригодится
39 Господин ПЖ
 
05.04.12
11:54
(36) >Пока я обновлял 1.2.2.3 на 2.0.1.6, вышла версия 2.0.1.9, где вновь изменилось огромное количество объектов и самым частым изменением стало: изменение комментариев. Поэтому следующее обновление я скорее всего буду делать после официального выход версии 2.0.

бугага... рука бойца колоть устала...
40 Cube
 
05.04.12
11:55
(39) %))
41 mkostya
 
05.04.12
12:03
С рарусовскими конфами работаю больше 6 лет, в данном случае два варианта
1. 1С бит - http://www.1cbit.ru/1csoft/buy.php?ELEMENT_ID=35623
2. правильная первая мысль - у меня есть 2-3 дня пока не внесли запись в трудовую чтобы сделать ноги
42 Повелитель
 
05.04.12
12:08
Предложу вариант.
В типовых конфигурациях фирма обычно использует не боле 10-20% от написанного, то есть из 150 документов, использует 15-30.
Какой смысл натягивать всю конфу на УПП? Может стоить перетащить нужные 10-15 документов и локализовать?
43 Kaperang
 
05.04.12
12:09
(42) база на "Альфе-Авто" используется с 2004 г., используется 52 видв документов
44 Повелитель
 
05.04.12
12:10
(43) Ну часть аналогичных документов думаю в УПП есть, так что остается перенести те которых нет, вроде так.
45 ИС-2
 
naïve
05.04.12
12:10
мое мнение - допиливать УПП по документам альфы. Проблема будет с печатными формами + свои косяки.

Чтобы отмазаться можно сказать про производительность и защиту информации - если простой механик сможет сформировать ОСВ по счету 70, то будет очень весело.

В продолжении темы, обнаружил что в типовой УПП создавать контрагентов и договоров может любой пользователь
46 Kaperang
 
05.04.12
12:11
вариант с переносом или написанием новых документов по аналогии - по трудозатратам  как минимум не меньше
47 Повелитель
 
05.04.12
12:12
(46) Если трудозатраты сопоставими, ты рассмотрите этот вариант тоже. Ваш пока в тупике.
48 Kaperang
 
05.04.12
12:13
(47) причем в тупике только из-за 50-100 строчек кода, вынесенных во внешнюю компоненту
49 Повелитель
 
05.04.12
12:15
(48) Ну а то что у вас дублируются документы, например Реализация товаров и Продажа автомобиля это нормально разве?
50 Повелитель
 
05.04.12
12:15
(49) Вернее не дублируется, а в планах так сделать.
51 Kaperang
 
05.04.12
12:19
планируется примерно следующее:

документ "РеализацияТоваров" от "УПП"
документ "ааРеализацияТоваров" от "Альфа-Авто"

в момент проведения "ааРеализацияТоваров"  по подписке на событие создается и заполняется (или находится или перезаполняется) документ "РеализацияТоваров"

у продажника права только на документ "ааРеализацияТоваров", у бухгалтера - на "РеализацияТоваров"


Всего совпадает 17 видов документов.
52 acsent
 
05.04.12
12:20
смысл установки префиксов? просто что бы жизнь легкой не казалась?
53 acsent
 
05.04.12
12:21
может проще обмен написать?
54 Kaperang
 
05.04.12
12:22
переделал обработку, чтобы можно было проставлять префиксы не всем объектам конфигурации скопом, а только выбранным.
Посмотрим, что получится
55 Kaperang
 
05.04.12
12:22
обмен - по трудозатратам примерно одинаково.
56 Kaperang
 
05.04.12
12:23
но, им надо именно единую базу
57 Cube
 
05.04.12
12:23
(51) Сделай обмен на лету через com соединение...
58 Kaperang
 
05.04.12
12:23
в общем, как та лягушке в горшке с молоком, еще немного побарахтаюсь, а там видно будет
59 Cube
 
05.04.12
12:23
(55) Наглая ложь и клевета.
60 Kaperang
 
05.04.12
12:24
уже предлагал, не хочут :(((
61 Повелитель
 
05.04.12
12:24
(58) ага а потом и амнистия ))
62 acsent
 
05.04.12
12:24
(55) примерно одинаково? никогда обмен чтоли не писал?
63 Kaperang
 
05.04.12
12:26
я с этой задачкой уже  вторую неделю вожусь - за это время уже наверно обмен бы написал
64 Kaperang
 
05.04.12
12:26
но им обмен не надо, им надо единую базу
65 Cube
 
05.04.12
12:28
(64) Ты сам-то понял, что сказал? Единая база, это когда нет вот такой петрушки (51). А с такой ботвой это никакая не единая база, а помойка.
66 Повелитель
 
05.04.12
12:28
(65) Согласен, когда документы дублируются, это трудно назвать единой базой
67 lizergin
 
05.04.12
12:31
(64) поделись обработиной, пожалуйста
68 Kaperang
 
05.04.12
12:32
(67) куда скинуть?
69 echo77
 
05.04.12
12:35
Я за настройку обменов и отказ от объедининия - плюсов больше чем минусов.
Разработчики 1С:PDM пошли по тому же пути. Теперь эту конфигурацию рекомендуют отдельно ставить, а не объядинять с УПП
70 lizergin
 
05.04.12
12:36
(68) если дропбокса нет, то на любой обменник, и ссылку сюда
71 0xFFFFFF
 
05.04.12
12:39
(0) "поправить в V8Autosalon.dll обращения к объектам конфигурации по принципу "Справочники.Номенклатура" > "Справочники.ааНоменклатура"."
Это статья.
Тебе оно надо?
72 0xFFFFFF
 
05.04.12
12:42
(64) "но им обмен не надо, им надо единую базу"
"ИМ" (кстати, кому "им") надо не базу, а инструмент для работы.
Пользователю глубоко чхать на "ваши там технические тонкости" - главное чтобы работало и было удобно.
73 Kaperang
 
06.04.12
10:51
(54) Проставил префиксы только у объектов, для которых существуют аналогичные в УПП. Накатил изменения на базу, протестил. Вроде прокатило. Отдал тестовую базу на растерзание пользователям, пусть проверят, вылавливают ошибки и баги.

Обошлось без декомпиляции V8Autosalon.dll и без статьи соответственно :В

Если вызовы процедур компоненты будут вываливаться с ошибкой, тупо  буду одевать в конструкцию "Попытка-исключение".
При решений поставленной задачи любым из обсуждавшихся способов, все равно не удастся сохранить все 100% функционала.
74 Kaperang
 
06.04.12
10:54
(70) Я дорабатывал обработку "Парсировщик" пользователя bambr1975 с "Инфостарт". Связался с ним на предмет его отношения к моей доработке и ее выкладыванию в открытый доступ. Если ответит положительно - выложу.
75 n koretsky
 
06.04.12
11:06
(0), (73), (74) мужик!
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан