Имя: Пароль:
1C
1С v8
Глюки с хранилищем или конфигурацией
0 fantomrik
 
10.09.19
17:37
Коллеги, привет!

Работаем с переписанной УТ 10 через хранилище конфигурации (платформа 8.3.10.2580)
Заметил такую неприятную вещь. В рабочей базе захватил общий модуль рег заданий, изменил код, обновил динамически, поместил модуль в хранилище. Все обновилось - работает.
Через пару недель, в тестовой базе подключенной к этому же хранилище захватили этот же модуль рег заданий, сделали изменения - поместили в хранилище и мои изменения 2х недельной давности пропали.
Методом тестов понял, что при захвате модуля не всегда его последняя версия берется из хранилища. Иногда почему то конфа считает - что тек версия в конфигурации = версии в хранилище (что не так)
и просто выполняет захват без обновления. А потом кладет не самую последнюю версию получается с последними изменениями в хранище.

Дальше еще интереснее.
Сделал сейчас изменения в общем модуле рег заданий, обновил динамически рабочую базу, поместил в хранилище изменения.
Выгрузил CF с рабочей базы, тестовую отключил от хранилища и загрузил CF в нее.
Открываю модуль рег заданий - нет моих изменений. В этой же тестовой базе открываю CF через файл - открыть, открываю модуль рег заданий - изменения есть.
Делаю сравнить и объединить конфигурации - пишет идентичные...

Куда покопать можно, коллеги?
1 sqr4
 
10.09.19
17:39
(0) демонически
2 RomanYS
 
10.09.19
17:40
(0) Пункт 0 при глюках с конфигурацией: снести кэш
3 repin_mike
 
10.09.19
17:43
(0) Продолжайте и дальше обновлять динамически и вас ждёт ещё много удивительных сюрпризов
4 Лефмихалыч
 
10.09.19
17:43
бывает такая шляпа. По этому обязательно получать конфу целиком перед захватом - полезная привычка.
5 VladZ
 
10.09.19
17:46
(0)

1. Отказаться от динамического обновления.
2. Прежде  чем что-то дорабатывать - получать конфигурацию из хранилища целиком.
6 fantomrik
 
10.09.19
17:52
(2) (3) Ну я думаю многие ним балуются, если система позволяет. Из за каждой мелочи выгонять всех в базы не реально.
(4) Есть предположения, что при получении всей конфигурации с описным мной глюком он и не подтянет всю конфигурации, а напишет типа нет изменений.
(5) Буду думать по 1., но очень проблематично всех выгонять... Хотя когда работал в другой фирме и там при динамическом обновлении "упала" база размером 1тб и еле-еле восстановили ее - был строгий запрет на динамическое рукоблудие, по регламенту в обед на пол часа выгоняли всех и обновляли в обычном режиме.
7 tejije
 
10.09.19
17:55
(0)  
delete from [consolidation_eco].[dbo].[Config] where FileName = 'commit'
delete from [consolidation_eco].[dbo].[Config] where FileName = 'dbStruFinal'
--delete from [consolidation_eco].[dbo].[Config] where FileName = 'DynamicallyUpdated' --(для версии 8.3)
--delete from [consolidation_eco].[dbo].[Config] where FileName = 'dynamicCommit' --(для версии 8.3)
ничего из этого не делали с базой?
8 Лефмихалыч
 
10.09.19
17:55
коллеги, демонческое не при чем. Просто потому, что конфигурация отличается не в той базе, которую обновили демонически.
9 Лефмихалыч
 
10.09.19
17:56
а! или стоп! вы кодите код на одной и той же базе, которую демонически обновляете?!
10 Лефмихалыч
 
10.09.19
17:57
отличный план так-то. А в чем тогда вопрос?
11 Fragster
 
гуру
10.09.19
18:00
вообще рабочая не должна быть подключена в хранилище, в идеале из хранилища формировать комплект поставки, который накатывать на рабочую. все в рамках ci-cd после бэкапа ночью. что исключает динамические обновления как класс :)
12 fantomrik
 
10.09.19
18:03
(7) нет, такого не делали
(9) не совсем понял вопрос. Есть рабочая база и ее копия, обе в одном хранилищем конфигураций. Когда доработка мелкая и только в модуле - кодим сразу в рабочей. Если крупная и требует отладки - то в тестовой. Какая разница с какой базы новый код попал в хранилище, он все равно же должен в другую базу перейти при общем хранилище.

и второй пункт интересует, выгрузил конфу с рабочей, тестовую отключил от хранилища и  в тестовую загрузил выгруженную конфу - в модуле нет последних изменений, которые есть в рабочей базе и были до выгрузки CF. Вот это пугает больше всего
13 fantomrik
 
10.09.19
18:04
(11) о, таким я не баловался ни когда, звучит красиво) Но на практике думаю так делают пару фирм из сотни...
14 pavig
 
10.09.19
18:07
(13)
Мы так делали, было очень удобно, просто кайф.
15 ам794123
 
10.09.19
18:07
(11) какая разница рабочая - не рабочая. У нас с одной конфой одновременно работает 6-7 программистов, каждый решает свою локальную задачу. Хранилище предназначено для групповой разработки. И захватывать конфу целиком (4) сводит на нет сам принцип групповой разработки
16 pavig
 
10.09.19
18:09
(15)
Там написано не захватывать, а получать все обновления: Конфигарция - Хранилище - Обновить конфигурацию из хранилища
17 Лефмихалыч
 
10.09.19
18:10
(12) вы себе сами злонамеренные дендрогуманоиды. Просто не делайте так и всё.
1. Разработчики должны разарабатывать в отдельных базах, подключенных к хранилищу, и помещать код в это самое хранилище
2. когда надо обновить копию, идёте в конфигуратор копии, там конфигурация...хранилище...обновить конфигурацию из хранилища. ПРИ ЭТОМ!!!!!!!! копия не должна быть подключена ни к какому хранилищу. В этом случае конфигуратор спросит адрес, логи и пароль к хранищу, а потом покажет историю, чтобы ты выбрал версию, конфу которой хочешь взять целиком из хранлища и загрузить в копию

вот в таком случае не будет происходить вот эта вся дичь, что в сабже у тебя.
Вы ведёте разработку так, как ее нельзя вести, по этому и результат получаете нежелательный
18 pavig
 
10.09.19
18:10
(0)
Какая версия платформы?
Глюк подтверждаю, пару раз натыкались на такое на каких-то бородатых проектах
На свежих версиях платформы с сервером хранилища проблему не наблюдали вообще.
19 Fragster
 
гуру
10.09.19
18:10
(16) да это все равно не работает, более того, можно запороть много чего. нужно чтобы то, откуда делается cf для рабочей никогда не обновлялось динамически (или не имело своего кэша). у меня это отдельная база вообще без данных, например.
20 Вафель
 
10.09.19
18:16
тут проблема в хранилище, а не в методике обновления рабочей.
ведь получить/положить не верную версию можно на своей разарботческой
21 Fragster
 
гуру
10.09.19
18:18
(20) не, тут были интересные косяки в 8.3.10, именно при динамическом обновлении
22 Fragster
 
гуру
10.09.19
18:19
если не закрывать конфигуратор после динамического обновления
23 Fragster
 
гуру
10.09.19
18:20
24 Fragster
 
гуру
10.09.19
18:21
Вот если после динамического обновления зайти в конфигуратор - то никаких изменений, привнесенных динамическим обновлением - не будет видно. И если после этого сделать любые изменения, то все, что было привнесено динамическим обновлением - пропадет, и выстрелит в колено при следующем обновлении, не важно, динамичсеским, или нет.
25 Fragster
 
гуру
10.09.19
18:22
26 Фрэнки
 
10.09.19
20:04
Фактически, забросить измененные модули в рабочую базу динамически можно. Но большой вопрос, а что вообще происходит в конфигураторе до и после того, как это обновление было получено. Т.е. зло не в том, что не так обновляют, а что в принципе разработку ведут по принципу известного бородатого анекдота.
27 Фрэнки
 
10.09.19
20:11
Вcемирный конгресс врачей. На трибуне американский врач:
- Мы научились лечить СПИД!
Аплодисменты, крики...
На трибуне японский врач:
- Мы научились предотвращать инфаркты!
Крики, аплодисменты
На трибуне русский врач:
- А мы научились удалять гланды!
В зале недоумении, шум. Русский продолжает:
- Через жопу. Автогеном...
28 milan
 
10.09.19
20:21
(26) что со срочными патчами ? Тоже через поставку на след день?
1С прямо не говорит, что до не работает и его не рекомендуется использовать.
29 Фрэнки
 
10.09.19
20:26
(28) зачем поставку делать? подцепил в конфигураторе обновление из хранилища и сохранись. Затем из конфигуратора базы выйди ибо нефиг в нем сидеть.

Рабочая база НЕ захватывает ничего из Хранилища, а только получает. Ведь это же первое требование безопасного разрабатывания толпой.

Поставка - это еще более жесткий подход, который для совсем больших разработческих банд используется.
30 Фрэнки
 
10.09.19
20:32
Ведь даже если доработка текущего дня это просто Патч, то тем более должна быть абсолютная гарантия того, что установленный Патч прочитается из Хранилища. Когда получаешь из Хранилища и тут же применяешь его к рабочей базу - вот тебе гарантия того, что абсолютно вся инфа конфигурации в Хранилище имеется.
31 milan
 
10.09.19
20:38
Не понятно об чем речь.
Поломалась форма, синтаксическая ошибка, захожу в рабочую базу, захватываю модуль, меняю, обновляю динамически, изменения помещаю в хранищиле. Где тут ошибка ? Почему нельзя из рабочей базы захватить ?
32 Лефмихалыч
 
10.09.19
21:54
(31) потому что в результате у тебя два путя - оно или заработает, или нет. И, если нет, то у тебя опять два путя - ты или сразу об этом узнаешь, или хрена лысого ты узнаешь сразу и тогда у тебя уже две проблемы или даже больше.
33 Fragster
 
гуру
12.09.19
14:58
(28) в смысле "срочные патчи"? вы не тестируете ничего, что ли?
34 Лефмихалыч
 
12.09.19
15:03
(33) Случая всякие бывают. С возрастом, конечно, все реже и реже, но бывает по-разному.
35 fantomrik
 
15.10.19
13:19
p/s Если что, глюки (0) пропали после остановки сервера 1с, чистки кэша на сервере и чистке кэша хранилища.
Но про динамическое обновление буду иметь ввиду, спасибо все кто поучавствовал в обсуждении!
36 Затейник
 
15.10.19
13:52
(35) Какое количество активных пользователей в базе?
37 palsergeich
 
15.10.19
14:12
(28) Срочных патчей быть не должно, если они есть - то у Вас проблема с разработкой.
Но если прям надо и пожар - расширение бахай, а на следующий день релиз и удаление расширения.