Имя: Пароль:
1C
1С v8
Почему нельзя обновиться сразу до последнего релиза в пределах редакции?
0 luter-89
 
09.02.16
09:54
Все известно, что обновление конфигураций происходит от одного ключевого релиза к другому. И так как в пределах редакции неиспользуемые реквизиты не удаляются, почему нельзя сразу накатить самый последний релиз? С тем учетом, что в самом последнем релизе есть обработчики обновления для всех предыдущих релизов.
1 luter-89
 
09.02.16
09:54
Или все-таки можно
2 Яплакал
 
09.02.16
10:01
(0) честно я не пробовал, но не уверен что нельзя, если ты накатываешь релиз где реквизиты еще существуют, тогда я не вижу не одной логической причины почему это нельзя сделать. Ты сам то пробовал или ты решил сначала на форуме спросить?
3 luter-89
 
09.02.16
10:02
(2) Не пробовал, это так размышления
4 Фрэнки
 
09.02.16
10:03
(3) теоретически можно, т.к. в модулях прописаны последовательные вызовы всех промежуточных обработок для прогона всех релизов от старого до текущего.

На практике: берут копию, обновляют, тестируют результат и принимают решение.
5 Фрэнки
 
09.02.16
10:05
(3) я бывает так делаю. Беру прежнюю типовую чистую (там данных нет и процедуры обновления быстрее) - накатываю все cfu - из результата беру cf и тестю на копии рабочего релиза.
6 luter-89
 
09.02.16
10:08
При автоматическом обновлении нельзя обновиться сразу до последнего, не спроста же так придумали в компании 1С
7 Веселый Джузеппе
 
09.02.16
10:10
(0) касательно розницы, обновил с непоследней 1.0 до последней 2.1 в 2 скачка с сохранением данных.
8 Dmitrii
 
гуру
09.02.16
10:12
(0) Авторы типовых конфигураций утверждают, что в рамках одной редакции можно обновляться сразу.
Но есть свидетельства пострадавших, что так работает не всегда.
Выбор за вами. См. (4): копию, обновляют, тестируют результат и принимают решение.

На файловой базе проблем быть не должно. Там действительно все обработчики обновления и конвертации данных будут выполняться последовательно. В клиент-серверной базе обработчики обновления делятся на два типа:
- выполняемые в монопольном режиме (назовём их МО)
- отложенные, выполняемые в разделенном режиме фоновым заданием уже после того, как отработают монопольные.
таким образом (назовём их РО).
Таким образом может возникнуть ситуация, когда при обновлении с версии 1.0 на версию 1.2  обработчики в файловой базе выполняться:
МО_1.1 - РО_1.1 - МО_1.2 - РО_1.2
а в клиент-серверной:
МО_1.1 - МО_1.2 - РО_1.1 - РО_1.2

Подобное изменения порядка обработчиков может оказаться критичным если в обновлениях и 1.1 и 1.2 менялись и обрабатывались одни и те же таблицы, но в разных обработчика - в монопольно выполняемых и в раздельно выполняемых.
9 luter-89
 
09.02.16
10:18
(8) Спасибо за развернутый ответ
10 luter-89
 
09.02.16
10:31
А если в объекты конфигурации добавлены новые "свои" реквизиты, тогда есть вероятность потерять данные по ним с таким обновлением?
11 Господин ПЖ
 
09.02.16
10:35
за технологию обновления из (8) кому-то на селезневской надо в голову гвоздь забить
12 John83
 
09.02.16
10:35
по-моему хороший пример:
с этого года поменялся расчет зп (база НДФЛ, новые вычет и т.д.), эти данные заполняются обработкой обновления, но думается, в каком-то из релизов эту обработку уберут и при таком "прыжке" можно будет "промахнуться"
13 John83
 
09.02.16
10:36
(10) готовь cf с умом и ничего не пропадет
базу, где ведется БУ (УПП 1.3) обычно обновляю перескоком, т.к. там очень редко что-то меняется
14 Dmitrii
 
гуру
09.02.16
10:38
(12) >> в каком-то из релизов эту обработку уберут

С чего вдруг.
Обработчики обновления никто не убирает. Их только добавляют. Если есть обработчик при обновлении на версию, например, 1.1, то он останется и в версии 1.99.
15 Господин ПЖ
 
09.02.16
10:38
>базу, где ведется БУ (УПП 1.3)

там этого угара и содомии из (8) нету
16 John83
 
09.02.16
10:39
+(13) вот если бы была та же БП 3.0, то так рисковать, т.к. постоянно вносят кучу изменений
17 Dmitrii
 
гуру
09.02.16
10:39
(11) >> надо в голову гвоздь забить

Спорное мнение. Некоторые некритичные обработчики выполняются очень долго. Разделение обработчиков на монопольные и выполняемые раздельно значительно ускоряет процесс обновления больших баз данных.

Хотя само по себе конечно решение неоднозначное.
18 vde69
 
09.02.16
10:40
(8)+ нельзя обновлять если было удаление метаданных, пример:

редакция 0

редакция 1
рекв А переименовали в удалить_а, при этом данные перенесли в новый регистр

редакция 2
рекв удалить_А удалили


при переходе сразй от редакции 0 к редакции 2 мы потеряем данные и регистр будет пустой
19 Фрэнки
 
09.02.16
10:42
(16) можно предположить, что в данном случае вопрос об очень большом скачке за несколько лет. Если регулярно сопровождать базу, то накатывать последовательно не так критично, как сразу большое количество релизов за годы.
20 Dmitrii
 
гуру
09.02.16
10:42
(18) В типовых так никто не делает.
Внутри одной редакции РеквА останется навсегда с префиксом "Удалить".
21 Фрэнки
 
09.02.16
10:42
(18) так ТС и пишет в топике, что в рамках одной редакции
22 пипец
 
09.02.16
10:53
при автоматической обработке конфигурации бух 2.0 работающей на платформе 3.0  - через интернет - автообработчик полез обновлять конфигурацию с 2.0 на 3.0 особо не спрашивая "с чегойто так надо" ... в результате от автоматических обработок отказались насовсем
23 Ион
 
09.02.16
10:57
в 90% случаях можно (когда понимаешь те варианты , когда это будет с проблемами). С проблемами - просто придется доп. самому вручную данные переносить ,из бекапа например.
Один пример в (18)
Еще пример - проблема при  переименовании. Есть релиз 0 первоначальный. В релизе 1 обработка обновления работает с рекв111 (справочника или документа).
В релизе 2 рекв111 переименован в рекв222 , обработка обновления в релизе 2 уже будет работать с рекв222 . Если мы сразу обновимся с релиза 0 на релиз 2 , то обработка обновления , которая должна была работать в релизе 1 выдаст ошибку , т.к. не найдет рекв111 . Соответсвенно все действия, связанные с этим реквизитом ,  придется отработать самому.
24 Господин ПЖ
 
09.02.16
10:58
(17) >Разделение обработчиков на монопольные и выполняемые раздельно значительно ускоряет процесс обновления больших баз данных.

чтобы ускорить процесс пусть перерабатывают объектную модель -  запросы на update/insert/delete и т.п.

от процесса обновления требуется одно - чтобы он был "однозначен" - либо он пройден ПОЛНОСТЬЮ и ПОСЛЕДОВАТЕЛЬНО либо нет...
25 Dmitrii
 
гуру
09.02.16
11:06
(24) >> от процесса обновления требуется одно - чтобы он был "однозначен"

Нуууу.... В теории он однозначен. Разработчики типовых обещают, что всё должно быть тип-топ.
Если ты пишешь свои собственные обработчики обновления, то делай их всегда монопольными (если есть сомнения).
Лично я писал и монопольные обработчики и для выполнения в разделенном режиме. Но мне проще - я работаю с конкретной базой и всегда четко знаю с какого конкретной релиза и на какой конкретный релиз я обновляюсь и последовательность у меня точно однозначная.