Динамическое обновление. Отказ работы механизма сравнения/объединения файлов конфигурации.

11.11.14

База данных - Инструменты администратора БД

Проблема некорректной работы механизма сравнения/объединения файлов конфигурации и ее решение.

Нетиповая конфигурация.

Платформа 8.2.17.169.

Часто пользовались динамическим обновлением.

Перешли на платформу 8.3.5.1068.

 

Проблемы:

- «Сравнить, объединить с конфигурацией из файла», «Сравнить конфигурации» платформа не видит отличий, либо видит, но не все.

- При объединении конфигураций объекты метаданных откатывались до версий, которые были несколько обновлений назад.

 

Поиск готовых решений проблемы:

http://forum.infostart.ru/forum26/topic72852/

http://www.forum.mista.ru/topic.php?id=408471

http://www.forum.mista.ru/topic.php?id=629968

 

Поиск источника проблемы:

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

 

Таблица Config.

Система оставила старую версию обновляемого модуля и добавила новую версию с признаком динамического обновления (dynupdate в наименовании).

Система оставила старую версию обновляемого модуля и добавила новую версию с признаком динамического обновления (dynupdate в наименовании).

 

Таблица Params.

Каждая запись таблицы продублировалась с признаком динамического обновления.

Каждая запись таблицы продублировалась с признаком динамического обновления.

 

После удаления записей из таблиц Config и Params, которые система сделала при динамическом обновлении, произошел откат сделанных обновлений.

 

Сделал копию проблемной рабочей базы и почистил таблицы Config и Params от лишних записей.

После чистки таблиц механизмы сравнения/объединения/загрузки конфигурации стали работать корректно и указанных проблем больше не возникало.

Данную процедуру провел на 22 базах.

 

Решение:

 

1. Создать копии таблиц Config, Params для случая если что-то пойдет не так.

 

USE [<имя_базы_данных>]

GO


SET ANSI_NULLS ON

GO

 

SET QUOTED_IDENTIFIER ON

GO


CREATE TABLE [dbo].[<Имя_таблицы>Copy]

(

       [FileName] [nvarchar](128) NOT NULL,

       [Creation] [datetime] NOT NULL,

       [Modified] [datetime] NOT NULL,

       [Attributes] [smallint] NOT NULL,

       [DataSize] [int] NOT NULL,

       [BinaryData] [image] NOT NULL,

       PRIMARY KEY CLUSTERED

       (

             [FileName] ASC

       ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

 

INSERT INTO [<Имя_таблицы>Copy]

SELECT * FROM <Имя_таблицы>

GO

2. Удалить записи, которые система создает при динамическом обновлении.

 

DELETE

  FROM Config

WHERE

  FileName like '%dynupdate%'

;


DELETE

  FROM Config

WHERE

  FileName like 'DynamicallyUpdated'

;


DELETE

  FROM Params

WHERE

  FileName like '%dynupdate%'

;


DELETE

  FROM Params

WHERE

  FileName like 'DynamicallyUpdated'


3. Обновить конфигурацию файлом с последними изменениями т.к. после чистки произойдет откат модулей, которые обновлялись динамически.

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2971    13    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3515    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177730    1073    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27373    79    146    

59

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61313    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11745    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    31106    31    18    

47

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10980    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. it@contlog.ru 12.11.14 04:28 Сейчас в теме
Мы просто отказались от динамического обновления. Этот механизм как не работал так и не работает у 1с.
maklyak; andry888; sashapere; SuhoffGV; omut; artbear; vladir; webester; cool.vlad4; tormozit; theshadowco; Stim213; Yashazz; Йожкин Кот; +14 Ответить
18. sashapere 157 23.09.16 20:11 Сейчас в теме
(1) it@contlog.ru, Как вы это реализовали?
2. TODD22 18 12.11.14 06:37 Сейчас в теме
Динамическое обновление это верный способ нажить себе проблем. А потом с ними героически сражаться.
За решение спасибо! Может пригодиться.... А то пару раз встречал базы кем то динамически обновленные.
aids-ice; Yashazz; +2 Ответить
3. Fox-trot 156 12.11.14 07:50 Сейчас в теме
DELETE

  FROM Config

WHERE

  FileName like '%dynupdate%' OR FileName like 'DynamicallyUpdated'

все ж таки один проход лучше, чем два =) тем паче что оба не оптимизируемы
крута было б ежели все это дело обернуть в ADO и сделать в виде родной обработки 1С с одной лишь кнопкой "Сделать все хорошо" =)
Ti_Gor1; CratosX; alexscamp; v.a.ryag; TIS_08; TerveRus; +6 Ответить
4. Yashazz 4709 12.11.14 09:38 Сейчас в теме
Хотите жить спокойно - никогда не пользуйтесь динамическим обновлением.
5. PVG_73 17 12.11.14 11:47 Сейчас в теме
Спасибо, за решение. Динамикой увы приходится пользоваться.... но вот таблиц таких слава богу оказалось не так много.....
6. DAnry 8 12.11.14 18:46 Сейчас в теме
Бывают случаи, что без динамического обновления никак. А за статью - спасибо.
8. cool.vlad4 2 13.11.14 00:53 Сейчас в теме
(6) DAnry, например? мое мнение, если без динамич. обновления никак, то что-то явно делается не так.
Для файловых баз, расшаренных по сети, это однозначно геморрой и проблемы.
7. recon 38 12.11.14 19:13 Сейчас в теме
Честно говоря не совсем понял чем автору не помогла очистка кэша. лезть в SQL ради удаления таблиц имхо последнее дело, когда базе уже ничего не поможет. Более того, платформа сама удаляет эти записи когда происходит монопольное обновление.
http://www.gilev.info/2010/02/1-81.html
https://partners.v8.1c.ru/forum/topic/448505

При динамическом обновлении основная проблема возникает не на сервере SQL, а на клиенте, у которого не обновляется кэш или кэш разрушается. В результате при следующем входе в систему пользователь получает не ту версию конфигурации, которая ожидается, или получает ее не полностью.
mip128; artbear; EmpireSer; RustIG; +4 Ответить
9. Valp 69 13.11.14 04:27 Сейчас в теме
(7) recon, проблема была в том, что при монопольном обновлении платформа с какого-то момента перестала удалять записи сделанные динамическим обновлением. В некоторых базах таблица Config хранила десятки версий одних и тех же объектов. Для таких баз при выполнении сравнения/объединения конфигураций платформа не видела различий в файлах, а при выполнении команды объединения/загрузки конфигурации из файла, считала последней версией объекта одну из старых неудаленных.
10. EmpireSer 13.11.14 09:56 Сейчас в теме
(9) Valp,
Я у десятка клиентов пользуюсь динамическим обновлением. Проблем не возникает.
Точнее... один раз возникла у клиента, у которого мы просто переставили 1С сервер с 8.2.16 на 8.3.4 без выгрузки/загрузки через DT. И то, проблема возникла у всех, у кого когда либо открывали конфигуратор и открывали в нём конфигурацию.

А так, как я сказал, проблем ни каких. Есть даже один клиент у которого я по 30 раз за день делаю динамическое обновление (клиент-сервер 8.2.19.106, MS SQL 2012).
Может Вы не умеете "готовить 1С"? :-)
kievanton; +1 1 Ответить
17. Just 2 25.11.14 12:08 Сейчас в теме
(10) EmpireSer,
Видимо ты знаешь что-то чего не знают другие, может тебе Борис какой-то секрет рассказал?
Сколько активных юзеров в базе, которую ты в день по 30 раз обновляешь? После таких изменений обычно база долго не живет. По теме, если выгонять всех юзеров после каждого динамического обновления (грубо говоря одно обновление в день), то скорее всего "пронесет", но с 30-кой в день, это не реально.
11. logarifm 1117 13.11.14 10:24 Сейчас в теме
Ну отказываться от динамического обновления не вижу смысла. А вот использовать хранилище конфигурации всецело устранит эти проблемы. Зачем разрабатывать какой-то кф-ник потом мучаться со сравнениями?
12. Valp 69 13.11.14 17:12 Сейчас в теме
(11) logarifm,
Для разработки используем хранилище, файл с нужными изменениями выгружаем и отправляем в живые базы,
они обновляются монопольно в пакетном режиме. Проблему получили при очередном таком обновлении, сразу после перехода на новую платформу. Отправили файл с изменениями, по логам все прошло успешно, но по факту в конфигурации БД получили откат некоторых объектов к версиям, которых не было ни в конфигурации которую обновляли, ни в конфигурации которой обновляли. При попытке ручной загрузки, получили то же результат. При сравнении конфигураций оказалось, что платформа не видит изменений. Проблема возникла почти на всех базах, для которых перешли на новую платформу.
13. Fox-trot 156 13.11.14 20:12 Сейчас в теме
(12) Valp, все эти пляски с бубном от того, что 1с вряд ли опубликует алгоритмы процесса обновления
такие дела
14. EmpireSer 14.11.14 00:45 Сейчас в теме
(13) Fox-trot,
Вообще-то он довольно понятный. Даже можно сделать сравнение до и после изменений распаковывая данные в "BinaryData".

(0),
Всё таки "костыль" исправления уже сделанного не правильного перехода описан хорошо.
Но в статье не хватает описания правильного перехода, где не возникнет таких проблем.
Так же Вы не описали как осуществлялся переход с 8.2.17 на 8.3.5, т.е. сами этапы.
15. Fox-trot 156 14.11.14 06:44 Сейчас в теме
(14) EmpireSer, то есть тебе еще не попадалиь случаи когда сравнение не показывало различие всего одного свойства, к примеру в макете, хотя ты точно его изменял
раз уж тебе известно больше чем окружающим, может поделишься кодом 1с сравнения конфигураций. для серверного варианта есесьно
16. webester 26 17.11.14 15:04 Сейчас в теме
Один раз произошло так, что факт того, что изменения откатились всплыл где то через пару месяцев. После этого стараюсь не трогать динамическое обновление, можно очень сильно потом об этом пожалеть.
19. Артано 760 28.07.20 03:29 Сейчас в теме
Если бы просто почистили кэш конфигурации, то не пришлось бы колдовать со скулем
Оставьте свое сообщение