|   |   | 
| 
 | Обновление 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 | 
        Нужно понимать,что в процессе обновления данных идёт преобразование структуры хранения из одной в другую.
 В этот момент,запросы как к старой так и к новой структуре не дадут правильного результата. Поэтому,в процессе преобразования полноценная работа невозможна. А далее,можно играться сокращением времени полного простоя сильно увеличивая время частичного доступа. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |