Имя: Пароль:
1C
 
Динамическое обновление. Вопрос к Экспертам по тех. вопросам
,
0 osa1C
 
19.09.20
01:51
Доброго всем времени и настроения!
  Имеется тестовая база, с подключением к хранилищу. Разработка и тестирование проводится в ней, также как и проверка конечным пользователем перед внедрением в основную конфигурацию... На самом деле база не одна, их много, все лежат на удаленном сервере, к которому разработчики не имеют доступа администратора, что и правильно.
  Нам, как разработчикам ЗАПРЕЩЕНО динамическое обновление тестовых баз, под страхом казни))). Но был поздний вечер и в тестовой базе были два пользователя, которые на 98,9% просто не закрыли пользовательский режим после тестирования и спокойно спят дома....
  Я делал доработку кода в ОбщемМодуле, причем нами написанном, при этом измененный код не требует реструкторизации данных. Даже к МодулюФормы код не цепляется.. не говоря про реквизиты. Короче мне надо было срочно обновиться. Что я и сделал динамически.... За что получил "нагоняй" от нашего руководителя.... И только потому что он "подслушал" разговор с другим разработчиком про дин.обновление.
   Ну и сам вопрос: ... Чем так может замучить сервер Динамическое обновление?
1 etc
 
19.09.20
02:26
(0) секта отрицателей динамического обновления. Удивительно как раздутая проблема проявляющаяся в ничтожном проценте случаев может довести до истерии.
Не суди их строго. Если ты можешь в течении пары минут вывести базу из состояния ступора после неудачного обновления то тебе "не страшен серый волк".
2 etc
 
19.09.20
02:27
(0) но пока ты в этом коллективе с их правилами придется жить
3 osa1C
 
19.09.20
02:35
(1) Как насчёт временной блокировки хранилища?
4 osa1C
 
19.09.20
02:38
(3) + я про нулевые файлы блокировки хранилища
5 etc
 
19.09.20
02:43
(3,4) не понимаю про что ты поскольку работа с хранилищем это одно а динамическое обновление это другое. Динамическое обновление можно провести независимо от того подключена у тебя база к хранилищу, аутентифицирован ли ты в нем или захвачено что-то.
6 tixis
 
19.09.20
02:43
а при чем тут хранилище и дин обновление базы?
7 tixis
 
19.09.20
02:44
(6) это к  (3) (4)
8 tixis
 
19.09.20
02:46
как БАЗА свзязана с ХРАНИЛИЩЕМ?
9 etc
 
19.09.20
02:49
(0) на сколько ты помнишь у тебя есть три конфигурации - конфигурация БД, сохраненная конфигурация и редактируемая конфигурация (конфигурацию хранилища в расчет не берем). Динамическое обновление это замена конфигурации БД на сохраненную конфигурацию. Хранилище тебя ограничивает в возможностях работы с редактируемой конфигурацией и не более.
10 etc
 
19.09.20
02:50
(0) и да, эксперта у меня нет поэтому можешь относиться к моим словам как просто к опыту отдельного человека.
11 osa1C
 
19.09.20
03:59
(5) я честно тоже не понимаю, может я глуп или что то не беру в расчёт...поэтому и спрашиваю
12 osa1C
 
19.09.20
04:04
(8) Хранилище для базы одно. Понятно что есть связь между рабочим хранилищем и разработческим Разработчик захватывает нужные ему объекты из хранилища, меняет, отдает на тест заказчику и после того как заказчик принял, отпускает в основное хранилище, с которого потом и обновляются рабочие конфигурации. Вроде это просто работа с хранилищем? )))
13 osa1C
 
19.09.20
04:56
Подниму :) Хочется и мнения другие услышать... привет мск
15 osa1C
 
19.09.20
05:07
(14) Расширения - мовитон, а снятие проблем заключается в в снятии блокировок.... или тупого удаления нулевых lock-ов
16 osa1C
 
19.09.20
05:18
(14) Хорошо бы если при обновлении затронуты таблицы, но если код не трогает таблицы и данные (нет добаления/удаления реквизитов и их перезаполнения и т.д.) то в чем проблема динамического ?
17 osa1C
 
19.09.20
05:19
(14) Я не спорю, я наоборот хочу понять
20 rphosts
 
19.09.20
05:39
(18) угу из=-за кэша все проблемы... и они иной раз такие странные и разнообразные
21 APXi
 
19.09.20
07:54
(18) как может пользовательский кэш на таблицу config?
22 APXi
 
19.09.20
07:55
+21 влиять
23 osa1C
 
19.09.20
08:03
(18) Ваше мнение, так сказать, услышано и принято на заметку, хочется услышать и другие мнения
24 osa1C
 
19.09.20
08:08
(19) Негатива к расширениям нет... Этот инструмент можно и нужно использовать... но только не в моей ситуации. У меня франч и только список городов, которые мы поддерживаем на несколько страниц, а в каждом городе список предприятий... и уже там список баз... и базы не типовые!!! Какое расширение? Можно ли запомнить куда какое расширение и зачем подключено?
25 Конструктор1С
 
19.09.20
08:13
(0) расскажи воему руководителю, что он застрял в стереотипах десятилетней давности
26 Конструктор1С
 
19.09.20
08:17
(18) "бывает что из -за кривого скорее всего пользовательского кэша в config попадают битые данные"

Как ты себе это представляешь?
27 Фрэнки
 
19.09.20
08:17
(25) он не расскажет. Он сам в плену стереотипов, т.к. отрицает святость Расширения
28 Фрэнки
 
19.09.20
08:19
точнее, даже не самого Расширения , а вот тот самый термин - хотфиксы - он топикстартеру чужд и дик.
29 osa1C
 
19.09.20
08:58
(28) вот именно нужен хотфикс... и не знаешь как это сделать. Потому как с пользователями связывается только менеджер-консультант, а его тоже уже нет на работе. И выкинуть залипших пользователей вроде не имеешь права... Но работу надо сегодня и сейчас отпустить в хранилище, чтобы ночью обновление прошло
30 Фрэнки
 
19.09.20
09:14
(29) т.е. мы знаем, что в серьезных системах для установки хотфиксов применяются hooks (крючки, крюки). Их в систему нужно вколачивать заранее. Т.е. серьезная система вольностей не прощает.
В конфигурации 1С о наличии предустановленных гибридных хуков можно узнать по модулям переопределяемый_чего_там.
А там где код абсолютно плоский - там хуже всего, но возможности вколотить хук динамически все равно остаются.
Если где в коде есть хотя бы какие-нибудь вызовы процедур или функций, то их можно использовать эти вызовы для установки хуков,
т.е. закидываешь вызовы чего попало в Расширение с пометками перед, после, вместо ...

Вроде все просто.

з.ы.
А руководитель должен не просто выдавать волшебные пендали, но и в нужном направлении это делать - под зад, но влево или прямо или вправо :-)
Но не просто сверху вниз по голове хрясь и сиди на попе ровно, никуда не двигаясь дальше.
32 Конструктор1С
 
19.09.20
11:09
(31) а как ты находишь якобы связь между клиентским кешем и происходящим в config?
33 Конструктор1С
 
19.09.20
11:10
(29) так ты же пишешь про тестовую базу. Неужели твоё руководство так опасается за тестовый стенд?
34 etc
 
19.09.20
13:00
(32) он наверно имеет ввиду когда конфа на клиенте не обновилась и отличается от серверной но об этом ничего не знает. Я один раз лет 10 назад видел ситуацию когда при отладке сеанса пользователя у меня отладчик прыгал по несуществующим строкам.
35 etc
 
19.09.20
13:02
(34)+ причем пользователь перезаходил в базу
37 rphosts
 
19.09.20
17:37
(21) один раз в прошлой конторе во время дин. обновления раб. базы был очень кратковременный разрыв сети.... очень повлияло...
38 Конструктор1С
 
19.09.20
17:39
(36) совершенно не логично, чтобы 1с тащила данные из кэша на диске для сохранения конфигурации
39 palsergeich
 
19.09.20
18:56
(0) Можно 1000 раз обновиться динамически и не понять почему так на него ругаются.
А на 1001 раз поймать проблем.
До сих пор - шанс того что база будет порушена <> 0.
А это время на восстановление и прочее.
Или будут какие нибудь экзотические проблемы, например отвал отладки - в 8.3.16, 17 - неоднократно ловил на тестовой. Лечится или чисткой кеша или полные логаут из системы - а это всё время.
Задача руководителя одна из - обеспечить беспередойное функционирование.
Динамическое обновление по разным причинам может этому помешать.
Банальный отрост таблицы config раком может нагнуть SQL сервер, и страдать будут все из-за одного.
40 vde69
 
19.09.20
21:57
(0) динамическое обновление имеет только один недостаток (но очень неприятный) - ресинхронизации пользовательского кэша с конфигурацией базы.

Если пользователи адекватные - можно динамически накатывать, если это "большие дядьки" - то лучше не надо....
41 Ёпрст
 
19.09.20
22:02
(40) адекватные, это которые на предложение перезапуска ДА отвечают ? :)
42 vde69
 
19.09.20
22:08
(41) именно и в добавок не оставляют открытые сесии на ночь :)

вообще в случае (0) надо было через консоль выкинуть тех двоих и спокойно обновить
43 Ёпрст
 
19.09.20
22:15
(42) ну, зависит всё же чего там в демоническом обновлении, одно дело кнопочки на форме подвигать или ошибку в коде исправить, другое дело, исправление логики в проведении дока, вот тут да, есть засада, когда могут доки проводится с разными алгоритмами.
А так, демоническое обновление не так и плохо. Ну, повесить триггер токма на табличку конфы, на всякий при любом сохранении и привет
44 Cthulhu
 
20.09.20
01:30
решалось полуадминистративно раз и навсегда (в семерке еще).
разрабатывался регламент работы в ИБ с расписанием для разных отделов.
- для отделов, которые работают строго по расписанию (продажники, кладовщики, и т.п.) - безусловный запрет на работу в нерабочее время
- для отделов. в которых возможна работа в нерабочее время - отдельный регламент доступа в базу в нерабочее время - подача заявки и т.д.
- т.н. "ургентных" пользователей - в отдельный список. по нему - возможность работы в любое время с обязательным внесением соответствующей записи в реестр (для админа) со всеми контактами, с описанием вида работы и временем начала - конца.
регламент - всем для ознакомления под роспись. именно всем, без исключений.
начиная с этого времени вопросов и проблем с доступом к базе не возникало. админ с чистой совестью сверял подключения с регламентом и реестром, все что не упомянуто в них - с чистой совестью убивал, все довольны. был случай, когда отрубили диру сеанс и он введенные данные и какие-то отчеты потерял. после истерики - проверились по реестру, в котором его работ не нашли, перечитали регламент - все верно, дир сам виноват, извинился даже (перед этим истерил жостко)...
не надо решать программно то, что можно и должно решать административно.
45 rphosts
 
20.09.20
02:40
(44) есть ряд работников которые часто перерабатывают и продажники часто из таких. Имхо, достаточно регламентировать ежедневные тех.окна. Всех кто не вышел - выносить из базы ибо регламент есть регламент
46 ГдеСобака Зарыта
 
20.09.20
04:21
(0) Можно ж было просто добавить произвольный объект и обновить с выкидышем пользователей.
47 Мимохожий Однако
 
20.09.20
07:34
(42) Это самое оптимальное. Плачут и не понимают, что произошло только двое. А при проблемах динамическое - плачет большинство.
48 Web00001
 
20.09.20
07:42
(0)Был случай на 8.1, может уже исправили и такое не может больше произойти, а может и нет. Баз РИБ, были проведено обновление конфигурации динамически на всех пяти базах. Обновили и продолжили работать. Где-то через неделю обнаружили что в одной из баз, не хватает куска кода, в остальных все ок. Этот модуль не трогали очень давно. При этом обмены обходят и 1С считает базы идентичными. Было не очень приятно и немного тревожно) кабы чего не вышло, что еще похерилось о чем я не узнал?
49 youalex
 
20.09.20
07:47
Странно, что у разработчиков нет возможности "выкидывать" пользователей из тестовой базы. Хотя бы по регламенту.
50 osa1C
 
20.09.20
08:05
(30) В смысле "волшебных пендалей" у нас всё ровно. Есть ещё и "волшебные пряники". Пенделя дают ему, руководителю моему, а он не программист, консультант. А он пендель передаёт по цепочке.
   Отсюда в принципе и вопрос и сама ветка. Хочется умных мыслей, что дин.обновление не так уж и плохо при умном использовании. А просто "не делай так, потому что так нельзя, а нельзя однозначно и без объяснений" - это тупо.
51 osa1C
 
20.09.20
08:08
(33) Разговор о том, что после динамических обновлений у клиента падает сервер. Не база! , проблемы на сервере мне не понятные. Я же не эксперт по хехнологической части )))
52 Фрэнки
 
20.09.20
08:44
(51) можно долго долго разбираться с этими всеми тонкостями... Дам изложение своими словами.

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

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

Более того, взаимодействие Расширения с платформой несколько отличается от поведения просто Конфигурации с платформой, особенно, когда работает все в режиме 1С Клиент-Сервер. В файловой не так, а по своему, но все равно не так, как у конфигурации без расширения.

В результате имеем несколько другое поведение, скажем так, платформы и сервера платформы в процессе работы с базой.
53 Фрэнки
 
20.09.20
08:45
Обращаю внимание, что о наличии кэша на клиенте обычно помнят все, а вот, что он есть и на _сервере_ - забывают
54 Конструктор1С
 
20.09.20
09:00
Массовые проблемы с кэшем при динамическом обновлении были ещё на 8.1. Уже на 8.2 их количество резко уменьшилось. А на последних версиях платформы это вообще экзотика
55 Конструктор1С
 
20.09.20
09:13
+ самые проблемы с дин. обновлением были на файловых базах, клиент-серверные меньше спотыкались
56 ДенисЧ
 
20.09.20
09:15
(55) А у меня наоборот.. На файловых ни разу. На серверных встречалось
57 osa1C
 
20.09.20
10:15
(52) Надеюсь разработчики 1С прочитают твои мысли.... Нужно же им что то читать на досуге. И сделают верные выводы
58 Волшебник
 
20.09.20
10:18
(53) Кэш хранится в 3 (трёх!) местах
59 Фрэнки
 
20.09.20
10:37
(58) но это же разный кэш :-)

Я бы его хранил просто в базе и ее конфигурации, но...
Впрочем, Расширения там и хранятся без кэша, судя по их поведению
60 experimentator76
 
20.09.20
10:54
(0) лучше дин.обновлением не увлекаться, потому что раньше случалась проблема в том, что в базу потом было не зайти без чистки SQL-таблиц с мусором от дин.обновления. с неадекватным кэшем сталкивался почему-то только на базах где используются обычные "неуправляемые" формы. там - да - лучше станцевать с бубном для тех.перерыва, выгнать всех через консоль и т.п.
61 Cyberhawk
 
20.09.20
14:27
Тебя посадят, а ты не воруй (с)
Базы рухнут, а ты не динамь