Имя: Пароль:
1C
 
Технологии обновления.
0 Whatsun
 
02.06.08
15:21
Периодически сталкиваюсь с такой задачей: есть УПП снятое с поддержки и некоторый объем доработок, при появлении новой версии УПП приходится выявлять изменения в типовой ветке УПП и вносить их в снятую с поддрежки конфигурацию. Либо все измненеия нетиповой вносить в новую версию типовой. Процесс довольно муторный. Все дописки в модулях я оформляю так:

//am+

  мой код

//was
//
// что было  
//
//am-

насколько был бы востребован инструмент интеллектуального обновления т.е. по таким допискам и по окружающему коду чтоб он пытался сам найти куда вставлять данный кусочек кода в новой версии(если это возможно) или выдавал бы необходимость ручного вмешательства.
Построчное сранвнение выдает слишком много изменений ошибочных оно не распознает просто пермещение функции из одного модуля в другой.

Можно было бы реализовать так:
выгружаем модули трех конфигураций
1)Типовая страя версия
2)типоавая новая версия
3)наша измененная версия
в три директории и далее запускаем утилиту.

кто что думает ваши соображения?
1 ТелепатБот
 
гуру
02.06.08
15:21
2 Господин ПЖ
 
02.06.08
15:22
для нормальных языков всё уже придумано... типа SubVersion и т.п.
3 Terv
 
02.06.08
15:23
(0) епти....
ну когда же народ перестанет страдать ерундуй.. и научиться пользоваться возможностями платформы???
4 Whatsun
 
02.06.08
15:23
(3) сообщите ваши знания пожалуйста
5 Terv
 
02.06.08
15:24
(2) а зачем?
6 Господин ПЖ
 
02.06.08
15:24
(3) вяленькие они, возможности эти...
7 Господин ПЖ
 
02.06.08
15:24
(5) потому что (6)
8 simol
 
02.06.08
15:25
(4)Заинтриговал, в какую сторону хоть смотреть?
9 Terv
 
02.06.08
15:25
1.Устанавливаем 2 копии конфигурации.

2. В обеих запускаем, через поддержку обновление конфигурации.

3. После окончание сравнения устанавливаем фильтр «показывать только дважды измененные».

4. Проходимся по оставшимся объектам, и либо снимаем галочку с объектов метаданных/процедур либо пользуемся режимом «Взять из новой конфигурации», выписываем на листочек, где брали вариант 1С, а где свой.

5. Жмем кнопочку «Выполнить» в первой копии

6. Пользуясь листочком и результатом сравнения 2й копии, вносим не перенесенные изменения в копию 1. Сохраняем.

7. Делаем полный синтаксический контроль (если были свои документы/справочники и в них использовались процедуры из общих модулей, то мог поменяться синтаксис).Проверяем формы на корректность обновления. Тестируем.



Все файл обновления готов, теперь осталось обновить конфигурацию рабочей базы клиента, это можно сделать 3мя способами:

а) загрузить конфигурацию из файла

б) через хранилище

в) либо через объединение-сравнение + обновление конфигурации поставщика.



PS. В случае не пересечения изменений 1С и наших, не потребуется выполнять п.6

PSS. Не забываем, что есть возможность выбирать свой режим обновления для каждой процедуры в модулях.
10 Terv
 
02.06.08
15:27
Особо обращаю внимание на 2 пункта :
- фильтр «показывать только дважды измененные».
- возможность выбирать свой режим обновления для каждой процедуры
11 Terv
 
02.06.08
15:29
(6) возможностей достаточно, пользоваться нужно ими уметь ...
единственная серьезная проблема - это диалоги форм
12 Stepa86
 
02.06.08
15:33
(9) оО хренасе возможности платформы, листочек типа тоже возможность платформы??? заставляю всех прогеров любые изменения как следует комментировать и включать их в спецподсистему "МодифицированныеОбъекты", а дальше ручками обновляю аккуратненько через сравнение-объединение
13 Господин ПЖ
 
02.06.08
15:31
(11) а права? интерфейсы?
14 Terv
 
02.06.08
15:35
(13) один фиг... нет возможности их нормально обновить ...
поэтому при доработки некогда не меняю типовых

(12) для долблящих повторяю ФИЛЬТР «показывать только дважды измененные».
90% работы делает он ...
не говоря уже об отсутствие проблем с метаданными (индентификаторы, сопоставление, удаление из поставки)
15 Terv
 
02.06.08
15:37
+(14) а перенос через "сравнение/объединение" это 7-ая технология
16 Господин ПЖ
 
02.06.08
15:37
(14) не обязательно типовые... просто допустим 3 программиста работают через хранилище... при пересечении изменений в правах - полная ж.па...
17 Whatsun
 
02.06.08
15:38
(14) я не совсем понял может быть
вы хотите сказать 1С умеет объединять модуль вплоть до функций и процедур ? т.е. брать одну функцию и из новой версии а вторую оставить из старой?
А если мы измении одну и туже функцию в общем модуле?
Мне кажется ваш метод не исключает необходимость применения интеллектоально слияния кода.
18 Господин ПЖ
 
02.06.08
15:39
(14) стесняюсь спросить - ФИЛЬТР «показывать только дважды измененные». Это вообще где? В интерфейсах наката поддержки?
19 Terv
 
02.06.08
15:39
(16) кхм... что ты имеешь ввиду по пересечением изменений при работе с "хранилищем" ?
20 Господин ПЖ
 
02.06.08
15:39
(17) это она умеет.
21 Stepa86
 
02.06.08
15:40
(14) да меня 6 пункт смутил, код обновить проблем уже мало, если грамотно подойти, а вот остальное бывает веселее
22 Господин ПЖ
 
02.06.08
15:41
(19) да хоть где, можно и без хранилища... просто 3 чела лепят новые интерфейсы и шарят по правам...

просто механизм - "берем и тупо заменяем" - имхо устарел
23 Terv
 
02.06.08
15:43
(18) после сравнения в окне результатов сравнения нажимаем кнопочку "Фильтр", в появившемся окне внизу видим птичку "показывать только дважды измененные свойства" (она отсекает все неперескшиеся изменения конфигурации)
более подробно о ее работе можно ознакомиться в "Профессиональной разработке"

(17) естественно ...
из всех варинтов остается только один когда изменения поставщика (1С) пересекаются с нашими в одной процедуре
выбор попроцедурно вызвается при нажатие лупы в колонке "режим объединения" в окне резальтат объединения
24 Господин ПЖ
 
02.06.08
15:44
опять же как я понимаю (9) - конфа должна быть на поддержке (моей собственной)... и оперативно править на рабочей базе не получится... а это к сожалению иногда надо + накладные расходы на формирования файла обновления из-за двух строчек кода...
25 Господин ПЖ
 
02.06.08
15:45
(23) спасибо
26 Terv
 
02.06.08
15:46
(21) если меняется код... то тут уже без анализа не обойтись, могла поменяться архитекутура

(22) для этих целей служит хранилище.
27 Господин ПЖ
 
02.06.08
15:47
(26) а как тут поможет хранилище? залочить право на одного исполнителя?
28 Terv
 
02.06.08
15:49
(24) обычно используют следующую схему работы:
а) в хранилище должна находиться всегда рабочая версия конфигурации
а рабочая базу обновляют либо через поставку (при не включенных возможностях изменения это происходит достаточно быстро)
либо из хранилища
29 Whatsun
 
02.06.08
15:49
(23) бывает такое что функция перенсена поставщиком в другой модуль
тогда ваш метод не поможет
в остально надо конечно попробовать по вашему в след раз, может быть получится быстрее удобнее.
30 Terv
 
02.06.08
15:49
(27) угу а больше никак... коллизия есть коллизия
31 Terv
 
02.06.08
15:51
(29) я доработал немного 1С-ую обработку "ЗаменаВызововМетодовОбщихМодулей"
+ проверял руками... муторно конечно, но куда деваться
32 Terv
 
02.06.08
15:53
+(31) при переносе поставщиком процедуры... нарушается функционирование только в своих объектах
33 Господин ПЖ
 
02.06.08
15:56
(30) это ж.па. конфа 3 объекта, 3 программиста, каждый меняет права в одной роли на свой объект. на объектах в этой роли прав нет:


объект 1 - 1 программист
объект 2 - 2 программист
объект 3 - 3 программист

накатывают по очереди:

1 программист: объект/право

объект 1 - 1
объект 2 - 0
объект 3 - 0

2 программист: объект/право

объект 1 - 0
объект 2 - 1
объект 3 - 0

3 программист: объект/право

объект 1 - 0
объект 2 - 0
объект 3 - 1

в итоге:

объект 1 - 0
объект 2 - 0
объект 3 - 1

хотя все хотели

объект 1 - 1
объект 2 - 1
объект 3 - 1

а когда итерация - неделя, уже никто и не помнит что менял...
34 Terv
 
02.06.08
16:00
(33) невозможно установить право для объекта в хранилище, предварительно не захватив роль
т.е. описанная тобой ситуация при работе в хранилище невозможно...
еденственная проблема в том, что кто будет курить пока другой делает свое
35 Terv
 
02.06.08
16:01
+(34) *в хранилище невозможна
*единственная проблема
36 Whatsun
 
02.06.08
16:03
(33) сделайте дополнительные роли, в общей роли всё отключите по Объектам 1,2,3

вообще надо максимально изолироваться от конфигурации 1С поставщика
использовать свои общие модулиЮ свои роли и формы но не плодить сущности без надобности конечно.

тогда и пересечения будут минимальны и объединения проще.

это общие мысли вслух для всех не для вас лично.
37 Господин ПЖ
 
02.06.08
16:09
(34) >>невозможно установить право для объекта в хранилище, предварительно не захватив роль

а как это спасет.

ОК - роль залочена под кодер1. но кодер2 и кодер3 тоже делают своё. Первый внес, всё хорошо. Второй сравнивает - роль изменена, да изменена, но объект другой - у него тоже вопросов не возникает. Третий - тоже самое. Все накатили - все счастливы... Только то что внес 2 -ой и третий по правам в роли - отвалилось (если объект не новый).
38 Terv
 
02.06.08
16:11
(37) кодер2 и кодер3 не смогут поменять права на свой объект, пока не смогут захватить роль, т.е. до тех пор пока кодер1 не отпустит её
39 Господин ПЖ
 
02.06.08
16:13
(37) Т.е. Первый внес, всё хорошо. Он роль отпускает.

Это всё конечно решаемо, если взаимодействие нормальное и люди опытные - но 1С как инструмент тут пока никак помощь не оказывает.

Можно конечно попытаться сравнить роли построив отчеты по правам и затолкав из в "Сравнить файлы" - но это такая тягомотина...
40 Terv
 
02.06.08
16:15
+(38) работа в хранилище предполагает отказ от "сравнения/объединения"
или по крайне мере сделай регламент, что роли и интерфейсы изменяются ТОЛЬКО в конфигурации подключенной в хранилище
41 simol
 
03.06.08
12:47


PSS. Не забываем, что есть возможность выбирать свой режим обновления для каждой процедуры в модулях.
[\1c]
Вот это не нашел. Подскажите где плиз.
42 simol
 
03.06.08
12:48

PSS. Не забываем, что есть возможность выбирать свой режим обновления для каждой процедуры в модулях.

Вот это не нашел. Подскажите где плиз.
43 Mitriy
 
03.06.08
12:52
(42) ответ в (23) "выбор попроцедурно вызвается при нажатие лупы в колонке "режим объединения" в окне резальтат объединения"
44 i-rek
 
03.06.08
13:03
на самом деле объединение сильно изменённых модулей - и есть наисложнейшая задача.

лучшее решение на сегодняшний день - это копировать оригинальный и изменённый тексты в AxisMerge и сравнивать там.
45 mikeA
 
03.06.08
13:14
(44) +1 Можно использовать KDiff3.
Экспорт в текст/импорт из текста стабильно работают, если всю конфигурацию прогонять?
46 Бамбук
 
03.06.08
13:24
(6) А что имеется ввиду под 1 .Устанавливаем 2 копии конфигурации?

Текущая и новая конфигурация поставщика?
47 simol
 
03.06.08
15:24
(43)Так это для модуля, а не для каждой процедуры свой
48 simol
 
03.06.08
15:25
(47)Понял, отбой
49 simol
 
03.06.08
15:27
А можно отключить информирование об изменении порядка объектов, а еще ниразу это небыло использовано/учтено, а загромождает здорово
50 Гений 1С
 
гуру
05.06.08
10:21
51 Гений 1С
 
гуру
05.06.08
10:21
(49) Написал об этом запрос в 1це (на партнерку). Ждем...
52 Terv
 
05.06.08
10:23
(46) 2е копии твоей конфы...
2я копия нужна для анализа во время повторного прохода по тем местам где наложились измененя кода в одной процедуре от 1С и тебя

конечно для спорных процедур можно пользоваться режимом объединения, но по моему опыту в этих MRG потом хрен разберешься
53 Terv
 
05.06.08
10:23
(51) а нафига ? 1С это и так умеет делать
54 Гений 1С
 
гуру
05.06.08
10:26
(16) Права разруливать или через модуль, или через подписку, или делать свои наборы прав, названия которых не совпадают с 1це.
55 Гений 1С
 
гуру
05.06.08
10:27
(53) где...
56 Terv
 
05.06.08
10:28
(55) читай выше фильтр «показывать только дважды измененные».
57 Гений 1С
 
гуру
05.06.08
10:29
(56) это только для конф на поддержке. ;-)
58 Terv
 
05.06.08
10:30
(57) естественно ...
назови хоть одну причину не использовать поддержку, кроме религии?
59 simol
 
05.06.08
10:33
(58)У нас я один ковыряю типовую, потому хранилищем не пользуюсь и в рабочую заливаю через обновление и порядок объектов мне не интересен
60 simol
 
05.06.08
10:33
(51)Спасибо
61 Terv
 
05.06.08
10:36
(59) ты путаешь поставку и хранилище... я говорю о поставке
62 Гений 1С
 
гуру
05.06.08
10:58
(56) У меня не получается вызвать этот фильтр. Обновляю через поддержку. Есть только "покаызвать измененные", платформа 8.1.11. Что делаю не так?
63 Гений 1С
 
гуру
05.06.08
11:04
Видимо каким-то макаром конфигурация слезла с поддержки. ;-)
Но это не суть. Если мы пропарсили все модули, то по идее, у нас они все будут показаны как дважды измененные. Не метод... ;-)
64 Terv
 
05.06.08
11:06
(62) Поддержка - Обновить конфигурацию ?
65 Terv
 
05.06.08
11:07
(63) метод ...
проблемы с метаданными отсутствует в принципе...
а код обновить это фигня
66 simol
 
05.06.08
11:23
(61)Я не путаю, так как я о другом. При сравнить/обновлении выдается информация об изменении порядка объектов/реквизитов и прочего. Мне это не надо. Вот и спросил как это отключить
67 Terv
 
05.06.08
11:29
(66) и еще раз ....
Пользуйтесь пунктом Поддержка - Обновить конфигурацию ...
а про сравнить-объединить зубудьте...
пожалейти базы...
я 1,5 года использую технологию озвученную в (9) для обновления измененной УПП и у меня в среднем уходит 2 дня на подготовку обновления...
68 Terv
 
05.06.08
11:31
+(67) т.е. используя данную технологию обновление сводиться к расставлению галочек и некоторой правке кода(в среднем не более 10% -20% от всех изменений)

метаданные обновляются автоматически
69 Гений 1С
 
гуру
05.06.08
11:31
(67) Надо попросить у 1С, чтобы подробный макет выводился различий только для тех объектов, что отобраны фильтром. Тогда листочек не понадобится. ;-) А так ничего. ;-)
70 i-rek
 
05.06.08
11:33
да ничего не дают эти "дважды изменённые", т.к. отловить изменившиеся объекты - и так задача не сложная. Проблемы начинаются когда объект изменён и у пользователя и у поставщика.
Причём то, что "объект" это не такая крупная единица - это может быть даже процедурой. Но всё равно она недостаточно мелкая !!
71 simol
 
05.06.08
11:36
(67)Сделал я себе копию базы. Поправил в ней чтото и хочу свои изменения залить в рабочую. Как это сделать через "Поддержка - Обновить конфигурацию "?
72 Terv
 
05.06.08
11:36
(69) часть проблем решается расставкой галочек на процедурах ...
поэтому все выписывать тоже особого смысла нет ...
у меня некоторые релизы вообще пролетают без листочка
73 simol
 
05.06.08
11:39
(71)Через создание поставки? А если я не все хочу перенести? Неужели через поставку будет быстрее?
74 Terv
 
05.06.08
11:39
(70) да ну... ты УПП видел?
ты сталкивался когда документ назывался "ТрудовойДоговор" а стал называться "УдалитьТрудовойДоговор" ? в режиме сравнение тебе нужно расставить соответствие вручную, при обновлении по поддержки оно ставиться автоматом
ну и т.п. случаи удаление из поставки
+ отсекается множество неинтересных изменений, одно дело когда у тебя показываются различия по 80 объектам и когда по 10

(71) я пользуюсь хранилищем... но можно и через "Загрузить конфигурацию из файла" (в принципе тоже самое при соблюдение нескольких условий)
и вообще речь идет об обновлении
75 simol
 
05.06.08
11:40
(72)Где у процедур галочки? Там только вижу "Приоритет загружаемеой" и остальные варианты.
76 Terv
 
05.06.08
11:41
(75) смотри (43)
(73) в твоем случае быстрее будет через хранилище...
+ это храненение истории изменений
77 Terv
 
05.06.08
11:42
+(76) лупа появляется только у модулей
78 simol
 
05.06.08
11:44
(76)Хранилище не поможет так как я тестирую на другом сервере с включенной отладкой на сервере
79 i-rek
 
05.06.08
11:44
(74) не факт что в режиме сравнения нужно ставить соответствие вручную. Если сравниваешь с cf сделанным из обновлений - она сама всё определит
80 Terv
 
05.06.08
11:44
(78) я тоже, мне это не мешает почему то
81 simol
 
05.06.08
11:45
(76) я разобрался с (43), ты в (72) написал про галки
82 simol
 
05.06.08
11:46
(80)В хранилище одной конфы можно ковыряться с разных серверов 1С?
83 Terv
 
05.06.08
11:46
(79) сравнение разве происходит не по именам метаданных?
хорошо продолжим
я поменял режим иерархичности сравочника
1С режим нумерации...
я при обновлении через поддержку даже не увижу изменения, а у тебя при сравнении?
84 Terv
 
05.06.08
11:50
(82) ессно ... это файловое хранилище
(81) когда заходишь через лупу... можно снимать и ставить галки, в отличие от того если зашел через контекстное меню "Показать различия в модулях" ...

ЗЫ. обращу внимания если меняешь галочки через "лупу", нужно обязательно поставить галки на удаляемых процедурах, иначе они остануться.
После изменения галочок в колонке "режим объединения" появиться надпись "Индвидуальная настройка"
85 Terv
 
05.06.08
11:51
+(84)
хранилище заменяет собой "Основную конфигурацию", а не конфигурацию БД
86 Terv
 
05.06.08
12:16
у кого какие еще возвражения есть?
87 Клэр
 
05.06.08
12:20
(9) Интересная методика, надо будет освоить.
(67) Производительность впечатляет, на обновление слегка доработанного до белорусских особенностей УПП с 12-й версии до 16-й у нас ушло больше недели и куча нервов.
(76) Хранилище тоже отличная вещь, особенно ...
Хотела написать "Когда у тебя плохо с памятью", но... Подключаюсь к хранилищу сиквельной базкой и получаю "Недостаточно памяти", а локальной - памяти хватает (?!)
88 Terv
 
05.06.08
12:26
(87)
2) 17 тестовая уже вышла :)
3) с другого компьютера пробывали базу к хранилищу подключать? или хранилище создать на основе сиквельной базы, а твою подключить? вообщем бубеном пользовались? :)
89 Sandriko
 
05.06.08
12:26
(86) Поможет ли твой метод в таком случае... есть УТ + CRM и мне CRM-ную часть надо перекинуть в УПП.
90 Terv
 
05.06.08
12:30
(89) здесь скорее напильник нужен ...

обновление через поддержку автоматизирует обновление в случае наличия:
основной конфигурации, старой конфигурации поставщика, новой конфигурации поставщика

а у тебя просто 2 разные конфиги.
91 Terv
 
05.06.08
12:30
+(90) в дальнейшем при обновлении полученной УПП поможет...
а для врезки функционала нет
92 Клэр
 
05.06.08
12:35
(88) -2) мама дорогая... права правят?

с другого пробовала
хранилище создать на основе сиквельной базы - "недостаточно памяти"

наверное, плохой я шаман :( Я и тему здесь свою открыла :(
93 Terv
 
05.06.08
12:37
(92) в 17 обещают только исправление ошибок.. сам еще не смотрел
место на SQL сервере и сервере 1С точно есть?
94 Клэр
 
05.06.08
12:47
(93) Админ утверждает, что есть. Всего на сервере памяти 4Г. Сервер 1С и SQL-сервер размещаются в одном "ящике" с 2-х ядерным процессором
95 Terv
 
05.06.08
12:48
Программист всегда исправляет последнюю ошибку.