Имя: Пароль:
1C
1С v8
Обновление 1С без блокировки работы пользователей
0 Gattuso
 
02.07.24
08:32
Собственно, вся суть в теме.

Возможно ли каким-то образом настроить работу так (без совсем жестких извращений) чтобы при обновлении 1С не выгонять пользователей из базы?

Кроме совсем сумасшедших схем (например, на время релиза перекидывать пользователей в другую базу-копию, потом из нее внесенные данные переносить в основную и тд итп) ничего в голову не приходит.

Может, у кого был интересный опыт - поделитесь
1 ILM
 
гуру
02.07.24
08:37
Можно, но долго. И не факт что сработает.
1. Должен быть SQL и  копия базы.
2. Обновляешь копию.
3. Переносишь из копии конфиг.
4. Парсишь различия структуры таблиц.
5. Меняешь структуру.
6. Вероятность траблов 50%, всё зависит от обновления.
2 Telcher
 
02.07.24
08:37
(0) При небольших доработках можно использовать динамическое обновление
3 Gattuso
 
02.07.24
08:39
(1) Такое себе - спасибо
(2) Вообще не вариант
4 Мультук
 
гуру
02.07.24
08:44
(1)

Что такое обновление? Новый релиз конфы ?

Вот было обновление ERP. Реструктуризация 15 мин
А дальше обновление фоновыми "Расчет с клиентами" и  "Расчет с поставщиками"
(каких-то 2-3 часа)

И вроде работать можно, но толку нет,
ибо 1С не даёт проводить документы связанные с этими регистрами.

P.S.
Или вам необходимо обновлять конфу по 10 раз на дню ?

P.S.S.
Или вы настолько большие, что не можете позволить технологическое окно даже ночью ?
5 Gattuso
 
02.07.24
08:48
(4) да, обновление конфы
У нас обновления проходят пару раз в неделю. Но хотелось бы на время релиза не блокировать вообще работу пользователей (это критично, такая специфика)
Вот пытаюсь понять возможно ли это +/- адекватными способами
6 vde69
 
02.07.24
08:59
Давайте разбиратся, автор хочет что-бы

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

Собственно я не знаю ни одной серьезной системы (не 1с) которая так умеет.

Да обновление формочек и прочей мелочи можно накатывать "тихо", но изменение в базе данных это по любому транзакция и блокировка...
7 DJ Anthon
 
02.07.24
09:01
(0) а в чем схема сумасшедшая? у меня она отлично работала несколько лет. юзеры иногда даже не замечали подвоха, так как всё было автоматизировано. РИБ все изменения переносил, остатки всегда были актуальны. Я эту схему использовал для помесячной свертки баз. батник + расширение
8 Смотрящий
 
02.07.24
09:02
(0) Пользователей все равно придется выгонять для реструктуризации. Она обычно короткая по времени.
Выдвигай доработки в расширение - при обновлении расширения "на горячую" юзера получат сообщение о необходимости перелогина.
9 Gattuso
 
02.07.24
09:14
(6) глобально да, всех переводить на новый функционал (если это возможно)
Пока выглядит, что это не получится и тогда буду смотреть в сторону "минимизирования времени простоя"
10 Fedor-1971
 
02.07.24
09:17
(1) так-то, вероятность проблем в такой схеме больше 50%
3. Переносишь из копии конфиг. - Алгоритмы уже работают, а структура не та
4. Парсишь различия структуры таблиц.
5. Меняешь структуру.
Как минимум порядок: 4,5,3

(0) В (6) правильно говорит, нет такого функционала, без прерывания работы пользователей, даже на уровне БД

Как вариант решения проблемы:
делаем отдельные конфигурации на функциональные блоки, например, Склад, Банк и что там ещё нужно. Главное: они замкнуты в себе, т.е. обновление одного не влечёт последствий для другого, например, Контрагент для склада - это просто ссылка с наименованием и ИНН, а для Банка уже и РС и договор нужен и т.д.

Кроме того - основную БД выводим в режим архива данных, т.е. обновить оную можно и ночью без последствий для работы конторы, бо менеджеры спят
11 Timon1405
 
02.07.24
09:20
(0) поделитесь что за область деятельности такая с нулевым технологическим окном?
12 arsik
 
гуру
02.07.24
09:20
Так корп. функционал вроде позволяет такое. Или я что то путаю?
13 Fedor-1971
 
02.07.24
09:22
10+ Можно рассмотреть отдельную точку для ведения НСИ, а остальные из неё будут получать данные, например, через HTTP сервис, т.е. на время реструктуризации для получения данных можно завернуть и на копию с остановленным вводом данных
14 Fedor-1971
 
02.07.24
09:24
(11) Вполне возможно, разные часовые пояса в обычной оптовой торговле с разбросанными складами по всему свету
15 timurhv
 
02.07.24
09:37
(0) >Кроме совсем сумасшедших схем
1С в ERP так и делает

https://www.youtube.com/watch?v=gZsQrlcUg-4
16 kauksi
 
02.07.24
09:40
КОРП же вроде позволяет фоновое обновление БД
17 Garykom
 
гуру
02.07.24
09:41
18 Lama12
 
02.07.24
09:43
(0) Чем методика с ИТС не устраивает? Долго? Сложно? Высоки риски накосячить? Ну так либо одно, либо другое.
19 1Снеговик
 
гуру
02.07.24
09:45
(0) пока ТС не расскажет подробности, можно считать, что ТС просто лень обновлять вечером-ночью, и он хочет обновлять днем и уходить вовремя)
20 maxab72
 
02.07.24
09:51
Все эти "обновления на лету" - риск для больших, просто огромных косяков. Надежнее выделять для обновления технологическое окно. Если специфика работа 24/7 - то можно использовать распределенную базу и обновлять ее "сегментами", пока часть пользователей спит (8-ми часовой рабочий день никто не отменял).
21 Gattuso
 
02.07.24
09:51
(11) (19) Финансовый сектор
22 Gattuso
 
02.07.24
09:53
(17) вы этим пользовались на практике?
т.е. при покупке лицензии Корп порядок обновления БД меняется? :) Не оч понимаю как это работает
23 Gattuso
 
02.07.24
09:53
(18) поделитесь методикой, рассмотрю
24 Garykom
 
гуру
02.07.24
09:58
(22) Фактически РИБ с разными версиями конфы
Пользователь при отключении/подключении попадает на обновленный узел
25 Fedor-1971
 
02.07.24
10:25
(21) В нём замечательно работает "Замыкание отделения или региона" (это когда подразделение работает в своей БД, даже на центральном сервере, и отчитывается вышестоящим - получается каскад обновлений по времени закрытия отделения) и что-то типа шины данных для отправки в центральный аппарат, т.е. центральная база служит и архивом и контрольной точкой для руководства.

Возможно, это разные конфигурации по наполнению и составу
26 Fedor-1971
 
02.07.24
10:24
25+ В такой схеме работы есть проблема: закрытие счетов другого отделения, нужно получить остаток и организовать уведомление о закрытии счёта (дабы дважды не выплатили остаток разным людям)
27 Lama12
 
02.07.24
10:54
28 Serg_1960
 
02.07.24
11:22
Чисто теоретически, без особо жестоких извращений, можно нечто подобное реализовать в РИБ:
а) юзверя завершают сеанс в узле с ещё необновленной конфигурацией;
б) проводится нетиповой сеанс синхронизации данных (нетиповой - для обхода платформенного контроля идентичности конфигураций);
в) юзверя открывают сеанс работы в узле с уже обновленной конфигурацией.

Дьявол кроется в деталях: чтобы корректно реализовать пункт "Б", Вы должны знать что именно и как именно происходит преобразование данных в этом конкретно взятом обновлении :(
29 DJ Anthon
 
02.07.24
11:28
(28) "б" может занять сутки
30 vde69
 
02.07.24
11:32
(10) на уровне субд есть "снимок", примерным аналогом которого в 1с может выступать узел распределенки.

Но тут возникают глобальные проблеммы с целостностью транзакций....

(21) в финансовом секторе НЕТ задач реального времени кроме игры на бирже (но биржи не 24 часа работают). Короче мозги не парьте, делайте регламент и в этот регламент включайте обновление.

Да банально у Вас же есть бекапирование, перестройка индексов, шринк и т.д. или это то-же делаете не выгоняя пользователей?
31 DJ Anthon
 
02.07.24
11:35
(30) просто на это может быть выделено окно час-два (на что-то одно хватает). а обновление или синхронизация могут занять гораздо больше времени. вот тут буферная база и нужна. бэкапы давно уже системы научились делать мгновенно.
32 vde69
 
02.07.24
11:38
(31) провести обновление за час или сделать его безшовным - это две совершенно разные задачи...
33 Serg_1960
 
02.07.24
11:43
(29) "Не верю"(с)
Если допустить нечто такое несуразное, то придётся поверить и в существование таких баз данных, где штатное типовое обновление длится сутки и более. А также придётся поверить в существовании организаций, готовых терпеть суточный простой в своей работе.

PS: просто надо чаще синхронизировать данные в РИБ.
34 DJ Anthon
 
02.07.24
11:49
(33) после обновления все документы могут обновиться и файл обмена вырасти до нескольких гигов. а еще есть трудно доступные регионы, где реально скорость обмена данными может быть модемная, при этом находиться целый завод. синхронизация была головной проблемой при свертках, пока я не перешел на такую схему, а потом и обновления через нее стали работать. но потом я переехал и перестал работать с удаленным клиентом, и что там дальше, я не в курсе, только инет там лучше не стал.
35 Serg_1960
 
02.07.24
12:05
(34) Ок, спорить не буду. Я сочувствую работникам "целого завода"(с), который до сих пор сидит на телефонном модеме :))

А если серьёзно, то нетиповая синхронизация данных требуется только  для тех данных, которые были изменены с момента последнего сеанса связи в необновленном узле. Обмен данными после обновления - не в их числе.
36 vde69
 
02.07.24
12:37
(35) реальный пример прошлых обновлений:

перенос всей контактной информации из общего регистра в табличные части обьектов...

затрагивает немерянно обьектов...
37 Fedor-1971
 
02.07.24
12:43
(30) Есть, например, выплата вкладов физ.лиц, закрытие их счетов, перевод на другой счёт (у всего контроль доступного остатка он-лайн).

Остальное - терпит по времени, но есть нюанс при больших объёмах данных и замороченных условиях вкладов и кредитов начисление % может занять приличный объём времени  + не забываем про Юр.лиц: с них денюжку за обслуживания счета, им % за остаток на счете.
Всё это похоже на расчет себестоимости в ЕРП, только чуть проще

Кроме того, есть ещё печать мемориальных ордеров начисления / удержания %. Тут зависит от организации работы: вечером начисляет и печатает оператор (в одно лицо можно долбануться - печать иногда занимает около 5-6 часов, я распараллеливал печать на 2-3 принтера кусками) или автоматическое начисление с печатью ордеров бухгалтером для ЮЛ

Потому РИБ, с одной стороны - нормально, с другой - может представлять проблему, т.к. расчёты нужно провести за ограниченное время и дёргать оператора не стоит в момент печати

В такой ситуации само оптимально - замкнуть работу в отделении / регионе, но тут есть моменты:
1. для отделений нужна отдельная конфигурация с её поддержкой
2. нужна отдельная конфигурация для централизованной БД и, очень возможно, что отличающаяся по функционалу от п.1 + её  поддержка
3. чётко отстроить обмен между п.1 и п.2

Тут проблемно задействовать что-то стандартное от 1С (РИБ и то засадно, бо нужен перелогин пользователей)
38 Serg_1960
 
03.07.24
20:33
(36) Ещё раз повторю, но более подробно: пункт "Б" - это выгрузка только лишь зарегистрированных изменений из подчиненного узла (с момента последнего обмена данными перед  началом обновления конфигурации в центральном узле).
39 zaki
 
09.07.24
15:07
ibcmd infobase config apply --force --dbms=MSSQLServer --db-server=SQLServer --db-name=BaseName
40 Волшебник
 
09.07.24
15:19
(0) Если Ваша 1С является микросервисом, подключённым к шине, то можете поднять столько экземпляров, сколько нужно, и обновлять их отдельно.

Конечно, живых пользователей в базе быть не должно, только роботы.

Пользователи могут работать в каких-то браузерах, например, через некий фронт-офис.
41 Dmitrii
 
гуру
09.07.24
19:43
(5) >> У нас обновления проходят пару раз в неделю.

Такая частота обновлений (и даже более высокая) нормальна на этапе внедрения новой системы, которую плохо предварительно тестировали. Да и то только в течении какого-то ограниченного времени.
Для обычного продуктива это какая-то дичь.

Наладьте процессы хоть какого-то планирования.
Разделите обновления на те, что требуют реструктуризации и те которые её не требуют.
Для установки обновлений, не требующих реструктуризации, достаточно буквально нескольких минут. Их можно, например, раз в неделю ставить.
Установку обновлений с реструктуризацией проводите пореже - раз в две недели.

Любые альтернативы в Вашем случае, как мне кажется, породят только больше заморочек.
42 floverr
 
09.07.24
19:56
(40) Плюсую.
Вебклиенты + Шина данных + Копии базы данных для СКД,  а лучше вообще  КХД для отчетов в той же самой 1С Аналитике.

Тут хорошее КОРП решение напрашивается само собой которое построено на микро-сервисной архитектуре применяемой в мобильной разработке.
43 floverr
 
09.07.24
19:59
(0) Помысли иначе, что у тебя не одна база, а тысяча баз и в каждой базе ведутся исключительно свои узкие транзакции.
Какие то базы создают транзакции сами без пользователей.
Где то есть Озеро данных в котором плавают финансовые аналитики и формируют свои прогнозы.
Решение уверен найдешь.
44 ДедМорроз
 
10.07.24
01:05
Нужно понимать,что в процессе обновления данных идёт преобразование структуры хранения из одной в другую.
В этот момент,запросы как к старой так и к новой структуре не дадут правильного результата.
Поэтому,в процессе преобразования полноценная работа невозможна.
А далее,можно играться сокращением времени полного простоя сильно увеличивая время частичного доступа.