Имя: Пароль:
1C
 
Задание для начинающих с кучей свободного времени: обновлялка типовых
0 Гений 1С
 
гуру
04.06.08
17:01
Значится, суть такова:
1. Выгружаем файлы исходного релиза, например ЗУП 2.5.7 в каталог А
2. Выгружаем файлы релиза с доработками, например ЗУП 2.5.7 в каталог Б.
3. Сравниваем построчно одинаковые файлы из каталогов А и Б, формируем XML-файл различий (подробнее потом).
4. Выгружаем все файлы нового релиза, на который обновляемся, например ЗУП 2.5.9 в каталог В.
5. Применяем к файлам из каталога В файл отличий(подробнее ниже).

Как строится файл отличий?
Сравниваются файлы модулей с одинаковыми именами построчно (без учета пробелов и табуляций всяких по краям и посредине). Определяется, какие строки были вставлены.
Для каждой строки помечается место вставки - это название процедуры, куда вставляется или раздел переменных или раздел кода модуля.
Дополнительно еще вставляется кусок кода до предыдущей вставки до и после.
Хотя даже на этом этапе уже есть польза - мы видим список наших изменений.
Изменения записываются в XML файл (таблицу) с колонками:
имя_модуля - это имя модуля
имя_функции - это имя функции(процедуры) или #footer или #header для блока переменных и блока кода
маркер_сверху - это код сверху до предыдущей вставки
маркер_снизу - это код снизу до следующей вставки
код - это код, который добавляется (заменяется)
вид - (вставка/замена), можно определить автоматом исходя из того, есть ли строки исходного кода.

Получили XML файл.
Ок, теперь на первом этапе можем просто ручками открывать каждый модуль и вставлять.

На втором этапе пишем парсер. Он берет файлы в каталоге В и ищет в них по процедурам похожие на маркеры снизу и сверху куски кода.
Если находит, то вставляет, если находит похожие - то под вопросом пользователя, если не находит, сообщает об этом. ;-)

Вот такая ботва...
Кто будет делать? Неужели опять Гений 1С?
1 ТелепатБот
 
гуру
04.06.08
17:01
2 Maxus43
 
04.06.08
17:03
бот жжот
3 Hadgehogs
 
04.06.08
17:04
"Доброе утро, последний герой.. Доброе утро тебе, и таким, как ты..." (Последний герой, Кино)
4 Господин ПЖ
 
04.06.08
17:04
фсё уже придумано... и без ипанутого xml гыгыгы... который сожрет всю память и сдохнет
5 Гений 1С
 
гуру
04.06.08
18:24
(4) В лужу пернул - забыл про ЧтениеXML. Ну давай, рассказывай, как. ;-)
6 Господин ПЖ
 
04.06.08
18:35
(5) В нормальных средах давно всё есть...
7 Гений 1С
 
гуру
05.06.08
09:49
(6) Не будь демагогом. Приведи названия нормальных средств
8 Гений 1С
 
гуру
05.06.08
09:49
А то, то что женщины дают я знаю. Вопрос, кому.
9 Defender aka LINN
 
05.06.08
09:55
(0) Велосипеды делать - твой удел.
З.Ы. Ниче, что 1С сама умеет различия (в формах в том числе) выгружать в файл?
З.З.Ы. Кстати, да. Что с формами делать будешь?
10 Fynjy
 
05.06.08
09:55
(4) Сказал А говори и Б ... А то как балобольство выглядит ...
11 Fynjy
 
05.06.08
09:56
"различия (в формах в том числе)" А тут по подробнее.
12 jcage
 
05.06.08
09:57
во встроенном режиме сравнения это уже давно работает.
13 RomaH
 
naïve
05.06.08
09:59
(0) тут лучше анализировать отчет о сравнении объектов

сначала сравнить рабочую с типовой на которой она писалась
потом новую с типовой старой

и выбрать только общие изменения

т.е. если мы меняли больничный лист, а в типовом изменений нет - то нафига нам его менять?
14 DK_L
 
05.06.08
10:02
(0) Не проще использовать хранилище конфигураций ? Сейчас уже появилась возможность подключаться к хранилищу через инет(HTTP)
15 DK_L
 
05.06.08
10:03
+(14) Имеется возможность отката и анализа доработок при каждом помещении в хранилище изменений конфигурации
16 Гений 1С
 
гуру
05.06.08
10:07
(9) Чайник, не учи дедушек. Я знаю, чего умеет и чего не умеет типовая обновлялка. Она тебе сама вставит изменения?

(9)
По поводу форм вдумчиво кури: Книга знаний: v8: Рекомендации по обновлению типовых конфигураций
Мы типовые формы не меняем.

(12) я в курсах...

(13) именно так и делаем. 90% наших изменений - это изменения в модулях. Можно конечно парсить отчет о сравнении, но сдается мне, модули проще, чем MXL неструктурированный. ;-)

(14) Проще для чего?
17 Гений 1С
 
гуру
05.06.08
10:07
(15) Не, что-то может поменяться, а так всегда можно сравнить доработанную конфу с прошлым исходным релизом типовой.. ;-)
18 Defender aka LINN
 
05.06.08
10:08
(11) Конфигуратор открывал когда-нибудь?
19 Господин ПЖ
 
05.06.08
10:08
ппц... мало что-ли клиентов к SVN...

другой вопрос то 1С так и не родила декларативного языка нормального...
20 Господин ПЖ
 
05.06.08
10:11
(14) >>Сейчас уже появилась возможность подключаться к хранилищу через инет(HTTP)

попробуйте им через HTTP попользоваться - будет сюрприз...
21 Defender aka LINN
 
05.06.08
10:12
(16) Я }{уею, дедушка нашелся...
По поводу форм - иди лесом и ответь на вопрос: Что ты будешь делать, если таки поменяется форма?
И, кстати, по поводу типовой обновлялки - хреново знаешь, видимо.
22 Terv
 
05.06.08
10:13
кхм... я куею от изобретателей 3х колесных велосипедов с квадратными колесами
v8: Технологии обновления.
23 Fynjy
 
05.06.08
10:15
(18) А зачем? Ты вот напиши как, а у меня смысл появится его открыть. Что типа такого - Меню-Конфигурация ... и т.п. А до тех пор по "выгрузке форм" являешься балаболом ...
24 Господин ПЖ
 
05.06.08
10:16
(21) можно поиграть в игру - "Найдите 20 отличий"... Диалог сравнения форм - невразумительный как и всё прочее...
25 Terv
 
05.06.08
10:16
(21) мне интересно что нафигачит его парсер, когда меняется логика/архитектура процедуры...
допустим переписывание запросов на использование временных таблиц или использование управляемых блокировок... (как в УПП последнего релиза)
26 Terv
 
05.06.08
10:18
(24) +1 ... ждем 8.2
они хотябы сделали бы возможность отдельного обновления модуля формы и диалога формы... было бы в разы легче
27 Гений 1С
 
гуру
05.06.08
10:20
(18) Открывал.
(19) Что есть SVN, ты тремя буквами тут не ругайся, внятно изложи свою мысль.
(21) тебе объяснили, что мы формы не меняем, ты статью в КЗ почитал? Если все-таки меняем форму, то в модуль добавляем манифест с описанием, чего надо менять в форме. Да, регламент, но зато потом проще.
28 Гений 1С
 
гуру
05.06.08
10:23
(25) Терв, не грузи, 20% меняется и разгребается руками, но 80% остается в норме... Ради 80% стоит поработать.
29 Гений 1С
 
гуру
05.06.08
10:24
Вот просто счас мне предстоит обновлять ЗУП с 2.5.7 на 2.5.9 (формы мы там старались не менять), так вот я думаю что проще - ручками повставлять изменения (их много в принципе) или таки написать парсер простейший.
30 Defender aka LINN
 
05.06.08
10:24
(23) А еще че-нить тебе не рассказать? Если глаза есть - увидишь. Если нет - то и нафиг тебе такому объяснять что-то?
(27) Случаи разные бывают. В общем, по формам пролет полный.
(24) Та мне вообще пофиг, я им не пользуюсь :) Достал этот велосипедист порядком уже.
31 Terv
 
05.06.08
10:25
(28) ради 80% прокатывают возможности платформы, притом все делаетя автоматически....
а ради 20% я не вижу смысла занимать ерундой...
32 Fynjy
 
05.06.08
10:26
(30) Съезжаешь ... Балабол ... Скажи - "Я не прав такого в 1С нет, как сравнение форм объектов". Это будет честнее ...
33 Terv
 
05.06.08
10:27
(28) и вообще Г1С открою тебе огромный секрет, почитай о фильтре «показывать только дважды измененные».
34 Господин ПЖ
 
05.06.08
10:30
(27) Оторвись от 1С и посмотри на звезды...

Не поверишь, средства контроля версий изобрели задолго до "хранилища 1С"... и функционалом они обладают которым хранилищу и не снились...
35 NewNick
 
05.06.08
10:34
типо знак вопроса в названии темы не поместился ?
имхо если уж совсем заняться нечем то можешь приступать фиксин.
36 Гений 1С
 
гуру
05.06.08
10:41
(34) Конкретнее, конкретнее...
37 Гений 1С
 
гуру
05.06.08
10:55
Что-то у меня не получается получить галочку дважды измененые. Загружаю в режиме поддержки, по умолчанию почему то получается радиобутон "Основная конфа не связана с загружаемой", меняю на "Загружаемая конфа является потомком основной", все равно фильтра "дважды измененные" нет. ;-)
38 Гений 1С
 
гуру
05.06.08
10:55
Конфа редактируется с сохранением поддержки.
39 Terv
 
05.06.08
10:59
(37)
"Загружаю в режиме поддержки" - Поддержка - Обновить конфигурацию здесь?

смотри кнопку "Фильтр" .. откроется окошко.. внизу будет галочка
40 Terv
 
05.06.08
11:05
+(39) если книга "Проф разработка" с собой есть, то посмотри там скриншоты или подожди пока я сделаю
41 Defender aka LINN
 
05.06.08
11:09
(32) Балабол тут ты. Я сказал, я ничего рассказывать не собираюсь - мне влом. Захочешь - найдешь.
42 ildus
 
05.06.08
11:12
(0) надо сравнивать не 2 файла, а 3
43 Гений 1С
 
гуру
05.06.08
11:12
(39) Упс. нашел. счас. Спасибо за наводку. Проф разраб. есть, читаю ;-)
44 Fynjy
 
05.06.08
11:43
(41) Я отвечаю за свои слова всегда ... А вот ты нет ... Продолжаешь съезжать балабол? Да и еще как в детском саду передергиваешь?
45 Terv
 
05.06.08
11:55
(44) Отчет о сравнение объектов ...
конечно для дальнейшего анализа он малополезен, но его можно сохранить в файл
46 Fynjy
 
05.06.08
12:10
(45) Хех. "Форма - Изменено" очень познавательная информация ...
47 Terv
 
05.06.08
12:11
(46) поставь галочку "Показывать различая графически"
48 Defender aka LINN
 
05.06.08
12:56
(44) Слушай, криворукий, тебе вот в (47) уже написали.
"Балабол", "передергиваешь"... Тебе сколько лет-то, родимый?
49 Terv
 
05.06.08
13:09
(48) "Юпитер ты гневаешься, а значит ты неправ!" (с)
50 Fynjy
 
05.06.08
13:39
(49) Отож!
(48) Привет балабол. ЗЫ: Постарше и куда поопытнее тебя буду ...
51 Гений 1С
 
гуру
05.06.08
15:09
Не ругайтесь. Терв хорошую мазу подсказал... Можно съэкономить на сравнение с конфой-источником. ;-) Но в принципе, хочестя код таки вставлять не ручками... ;-)
Начал писать сканер кода... ;-)
52 Гений 1С
 
гуру
07.06.08
17:52
Первый шаг сделан. Сканнер кода 1це написан:
http://infostart.ru/profile/8089/projects/2082/
53 Terv
 
07.06.08
17:55
(52) лучше бы деньги зарабатывал, а не фигней маялся
54 Гений 1С
 
гуру
07.06.08
17:57
(53) у меня выработка 150 часов в месяц...
55 Terv
 
07.06.08
17:58
(54) я бы тебе половину срезал
56 Гений 1С
 
гуру
07.06.08
18:04
(55) Руки коротки
Независимо от того, куда вы едете — это в гору и против ветра!