Динамическое обновление - это зло?

Публикация № 1051292 09.05.22

Приемы и методы разработки - Механизмы платформы 1С

8.x динамическое обновление внутреннее устройство платформы

Копнем глубже в тему "Что же такое динамическое обновление" и почему оно может привести к проблемам. И может ли?

Давняя история 

Любите ли Вы динамическое обновление конфигураций так, как люблю его я? Обожаю что-нибудь с его помощью пропатчить на продакшене! Особенно в пятницу! Вечером! Перед майскими праздниками! Без предупреждения!

На самом деле нет! Динамическое обновление с одной стороны выглядит отличным механизмом платформы 1С, который позволяет вносить изменения в конфигурации "на лету". Главное, чтобы изменения не затрагивали структуру базы данных, в противном случае придется выполнять обновление монопольно и "выгонять" пользователей.

Согласитесь, при появлении ошибки в коде после очередных изменений просто берешь и обновляешь базу "на горячую" и никаких проблем! Главное всем, кому нужны были эти изменения, перезапустили сеанс и изменения вступят в силу!

С другой стороны может что-то пойти не так и Вы найдете небольшую, но весомую порцию багов у себя. 

 
 Посмотри под спойлер, но берегись флешбэков!

И никакие отговорки, что это были изменения для ТОП-менеджеров Вам не помогут!

Но как же так! Вы пользуетесь динамическим обновлением и у Вас нет никаких проблем? Коллеги рассказывают страшные истории, но Вы им не верите? "Просто они плохие 1Сники!", думаете Вы?

Как работает динамическое обновление

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

В любой информационной базе есть таблицы "Config" и "ConfigSave". Назначение этих таблиц также известно:

  • Config - содержит основную конфигурацию информационной базы, которая соответствует актуальной структуре базы данных и используется активными сеансами.
  • ConfigSave - содержит сохраненную конфигурацию. Ту самую, которую Вы редактируете в конфигураторе. Как только Вы нажимаете "Сохранить", все измененные объекты и связанная информация записывается именно сюда. После запуска обновления информационной базы все изменения из этой таблицы переносятся в таблицу Config. Если же выполнить команду "Конфигурация -> Конфигурация базы данных -> Вернуться к конфигурации БД", то вся информация об изменениях в этой таблице удалится.

Все просто, не так ли? Но пойдем еще дальше. Посмотрите на структуру таблиц для хранения данных конфигурации.

 
 Структура таблиц с данными конфигурации

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

Когда Вы начинаете процесс обновления информационной базы, на первом этапе платформа 1С выполняет множество служебных действий, останавливаться на которых сейчас особо нет смысла. Самое интересное начинается после того, как Вы нажимаете заветную кнопку "Обновить динамически".

Среди множества служебных действий, платформа переносит данные об объектах из таблицы ConfigSave в Config:

  • Объекты, добавленные динамически, добавляются с именем формата (<ИдентификаторОбъекта>_dynupdate_<ИдентификаторДинамическогоОбновления> как "ab132638-5188-470d-9432-de85f2b2c7d8_dynupdate_ecb01484-0334-4b7a-ac94-b69fb855e9d2", где:
    • ab132638-5188-470d-9432-de85f2b2c7d8 - идентификатор объекта
    • ecb01484-0334-4b7a-ac94-b69fb855e9d2 - идентификатор динамического обновления, ведь таких обновлений может быть несколько подряд
  • Также добавляется объект "DynamicallyUpdated", в котором хранится идентификатор динамического обновления.
  • По поводу переноса данных из ConfigSave в Config все в целом просто.
    • Нажимаете "Обновить информационную базу" и новые записи переносятся в таблицу "Config" с суффиксом ".new".
    • При старте обновления записи "*.new" преобразуются в обычные или в записи после динамического обновления (то, что описано выше).
    • При отказе или при выполнении обновления записи "*.new" удаляются.

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

Это очень поверхностное описание и сам процесс имеет множество особенностей как со стороны работы БД, так и со стороны работы клиентских приложений платформы 1С. Но суть должна быть понятной.

Подробный пример динамического обновления

Для того, чтобы детальней погрузиться в происходящее при таком обновлении, рассмотрим все действия платформы 1С, до которых можно добраться законым способом. То есть мы не будем влазить в модули работы самой платформы и открывать то, за что можно получить повестку в суд. Мы лишь посмотрим что делает платформа на стороне базы данных. И этого нам будет достаточно!

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

 

Модуль полностью клиентский, имеет в своем составе только одну функцию.

Функция НекотороеЗначение() Экспорт
	
	Возврат "1-2-3-4-5-6-7-8-9";
	
КонецФункции

Наша компания развивается и нам нужно изменить возвращаемое значение на "1-2-3-4-5-6-7-8-9-100", а пользователей из базы "выгнать" нельзя, потому что им "так надо". Мы решили сделать обновление динамически, ведь изменился только программный код.

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

 

На этом шаге платформа 1С делает записи в таблицу "ConfigSave", некоторое промежуточное хранилище, из котого потом измененные элементы конфигурации должны будут перенесены в основную таблицу конфигурации "Config".

Вот вся история операций в таблице "ConfigSave" после сохранения конфигурации. Здесь подробная информация обо всех действия практически на физическом уровне, поэтому некоторые операции "INSERT" разделены на две (INSERT и UPDATE), а операция UPDATE может быть выделена как операции DELETE и INSERT. Но эти особенности сейчас не играют роли.

Кроме этого в таблице есть дата операции (Period) и идентификатор транзакции (__$start_lsn). По факту все эти действия выполняются в разных транзакциях, лишь некоторые из действий в таблице выполняются в единой транзакции.

 

Вся операция, как уже упоминалось выше, делится на два этапа:

 

  1. Записываем в таблицу информацию об изменениях конфигурации, в частности нашего общего модуля "ДляДинамическогоОбновления". Кстати, на скрине выше видно, что его идентификатор "cb327a01-e9cc-44e6-af31-5f30c88faeca", отсюда и эти названия похожие. Имена содержат суффикс "new", что говорит о промежуточной записи объектов.
  2. На следующем шаге промежуточные записи преобразовываем в нормальные, просто исключив "new" из имен элементов конфигурации.

Тут все достаточно просто, идем к следующему шагу. Вы нажимаете кнопку "Обновить информационную базу", но так как в базе есть сеансы, а изменения касаются только модулей, то платформа 1С предлагает выполнить динамическое обновление без завершения сеансов.

 

В этот момент платформа 1С сделала два действия:

  1. Скопировала записи из таблицы "ConfigSave" в таблицу "Config" с суффиксом "new", почти все действия выполнены в одной транзакции.
  2. Затем было обнаружено, что обновление невозможно продолжить из-за наличия активных сеансов. Был показан диалог для динамического обновления, а ранее добавленные записи удалены из таблицы "Config" в одной транзакции.

Изменений в таблице "ConfigSave" в этот момент не выполнялось.

 

И вот мы добрались до последнего шага - запуска динамического обновления. Соглашаемся с этой операцией и получаем следующее.

  • В таблице "Config" сначала добавляются новые записи с суффиком "new" для последующих операций с ними. Примерно такие же действия мы видели в самом начале в таблице "Config", перед тем как было предложено выполнение динамического обновления. Но в этот раз также сделаны служебные записи "commit", "dynamicCommit" и "dbStruFinal", которые относятся непосредственно к динамическому обновлению (частично о них было упомянуто выше).

 

 

  • Предварительные записи с суффиксом "new" теперь платформа преобразовывает в нормальные записи, также добавляет записи с форматом "<ИдентификаторОбъекта>_dynupdate_<ИдентификаторДинамическогоОбновления>", плюс вставляет флаг динамического обновления "DynamicallyUpdated".

 

 

  • Из таблицы "ConfigSave" удалены все сохраненные ранее записи. Все в одной транзакции.

 

 

  • И напоследок из таблицы "Config" удаляются служебные данные "commit", "dynamicCommit" и "dbStruFinal".

 

Заметьте, каждый этап - почти всегда разные транзакции, это важно.

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

На самом деле это не все действия платформы 1С, т.к. еще обновляются данные в таблице "Params" и некоторые другие. Но мы это рассматривать сейчас не будем.

Разработчики ликуют и со словами "Я же говорил" продолжают убеждать коллег, что динамическое обновление это нормально!

Что может пойти не так

Весь процесс динамического обновления мы рассмотрели, но что же может случиться?

Представим простую ситуацию: что, если все обновление прошло успешно, кроме последнего этапа? Например, во время выполнения запросов на удаление служебных данных соединение с базой данных почему-то "отпало":

  • Сбой сети.
  • Регламентные работы на сервере, внезапно.
  • Обслуживание базы, которое завершило блокирующий сеанс, опять же внезапно!
  • Конфигуратор вылетел из-за ошибки внутренней.
  • Разработчик 1С был странным и завершил сеанс конфигуратора во время обновления.
  • И еще сотни причин, которые лень добавлять.

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

CREATE TRIGGER [dbo].[tg_Config_OnDelete_DelDynamicCommit]
   ON  [dbo].[Config]
   AFTER DELETE
AS 
BEGIN
	SET NOCOUNT ON;
	
	DECLARE @fileName nvarchar(128);
	SELECT @fileName = del.FileName FROM deleted del;

	IF(@fileName = 'dynamicCommit')
	BEGIN
		;THROW 60000, 'Nope!', 1
	END
END
GO

Попытаемся теперь выполнить динамическое обновление и столкнемся с ошибками:

  • Сначала во время обновления в конфигураторе поймаем ошибку.

 

 

  • А при попытке зайти в конфигуратор повторно мы словим ошибку.

 

 

  • При попытке повторить обновление мы уйдем в бесконечную ошибку вида.

 

Все, конфигуратор нам больше недоступен! Чистите кэш, пытайтесь выполнить обновление ИБ, удаляйте сеансовые данные! Все бесполезно! Можете еще взять бубен, но и он бесполезен!

Но есть и радостная новость! Клиентские приложения будут работать, так что проблема чисто в конфигураторе и попытках выполнить обновление повторно. А чтобы исправить ситуацию достаточно удалить служебные данные из таблицы "Config" вручную:

DELETE FROM [dbo].[Config] 
WHERE FileName IN (
	'commit','dynamicCommit','dbStruFinal'
)

После этого проблема будет полностью исправлена в 99% случаев.

И это все?

Такая ошибка вас не остановит? Говорите, что ну и ладно, что в конфигуратор не вошли, зато клиенты работают, а с конфигуратором бы разобрались? Ведь решения есть на просторах интернета!

Хорошо, а как вам такой же "обрыв" соединения на этапе обновления данных в таблице "Params". Сделаем другой триггер (отключите только предыдущий):

CREATE TRIGGER [dbo].[tg_OnUpdate_DynamicalyUpdated] 
   ON [dbo].[Params]
   AFTER UPDATE
AS 
BEGIN
	SET NOCOUNT ON;

	DECLARE @fileName nvarchar(128);
	SELECT @fileName = ins.FileName FROM INSERTED ins;
    
	IF(@fileName = 'DynamicallyUpdated')
	BEGIN
		;THROW 60000, 'Nope!', 1
	END
END
GO

При попытке обновления записи "DynamicallyUpdated" в таблице "Params" мы получим падение. Конфигуратор закроется системной ошибкой. Не страшно, скажите Вы! Но в этот же момент все клиентские соединения также вылетят, причем с разными ошибками. Например, с такой.

 

А при попытке перезапустить клиентский сеанс, также будут происходить различные ошибки. Никто не сможет работать с информационной базой!

 
 Вы добились, чего хотели!

Но и тут не все потеряно!

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

Итог, все вылетели из базы, мы словили адреналина, и восстановили работу после штатного повторного обновления. Вас и это не убедило, что динамическое обновление очень опасно?

Вы поистине яркий человек

Если Вам и этого мало, то как Вы думаете, что будет, если оба этих случая будут комбинированы? В этом случае Вы "выкинете" всех пользователей из информационной базы, а потом еще и не сможете войти в конфигуратор повторно. Пойдете после этого вручную очищать таблицу "Config" от служебны записей динамического обновления и надеяться, что это в этот раз поможет.

Вы удивительный человек!

А ведь есть еще проблемы другого рода:

  • Повреждение сеансовых данных сервера. Возникают из-за какого-то особого поведения платформы 1С, меняется от релиза к релизу, сложно прогнозируемые и сложновоспроизводимые ошибки.
  • Повреждение клиентского кэша, которое приводит к:
    • Ошибкам запуска клиентского приложения при входе в информационную базу
    • Случайным ошибкам во время работы приложения, таким как "Тип неопределен" или подобные.

Ниже есть ссылки на примеры различных проблем и их решение. Для воспроизведения таких проблем мне пришлось бы откопать код приложений платформы 1С, но это не очень правильно.

Это весело

Вы все еще считаете, что динамическое обновление это хорошо? Что нет ни единой причины, чтобы отказаться от него? Что все описанные ошибки, которые даже можно воспроизвести прямо на свежих версиях платформы (от 8.0 до 8.3.20), не являются критичными? Может вы еще и бэкапы не делаете?

Вспоминается анегдот:

- Зачем Вы нарушили правила и перешли на красный свет светофора?
- Но мы так ходим уже 5 лет всей семьей и никого еще не сбили? Я, моя жена и дети все еще живы!
- Но это создает несоизмеримый риск!
- Мы ходили и будем ходить, потому что ничего не случилось! Вы все врете!
- ...

Кстати, описанные выше проблемы аткуальный как для платформы 1С версии 8.0, так и для всех более новых версий, вплоть до 8.3.20.*. И это только вершина айсберга!

Надеюсь, информация из статьи поможет кому-то хотя бы задуматься над тем, что Вы делаете!

P.S. А Вы задумывались над тем, что установка расширений тоже может приводить к подобным проблемам? :)

Другие ссылки

Авторские разработки

 
 Другие разработки (бесплатные и за $m)

 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. johnnyshut23 67 09.05.22 23:39 Сейчас в теме
Добавлю, что в первом примере ошибки, когда не можем зайти только в конфигуратор, а пользователи в порядке - не все так однозначно, в порядке только пользователи с толстым клиентом, тонкий клиент и веб не работает, соответственно отмены тоже, если через публикацию настроены.
nik_lankaster; YPermitin; +2 Ответить
2. YPermitin 12200 09.05.22 23:44 Сейчас в теме
(1) да, все так. Причем иногда вообще любой клиент может не работать.

Это настоящее казино, как повезет :)
nik_lankaster; ojiojiowka; sinichenko_alex; johnnyshut23; maXon777; +5 Ответить
7. johnnyshut23 67 10.05.22 08:41 Сейчас в теме
(2) это точно, я замечал следующее, что любой клиент когда не запускается, то дело в кэше на клиенте, устанавливал параметр clearcache и тогда точно рослый запускается)
3. a_a_burlakov 132 10.05.22 06:09 Сейчас в теме
Благодарю за то, что написали эту статью после того, как я проработал 3 года в компании, где каждый второй день приходилось динамически обновляться.
nik_lankaster; d_sdr; user980578; akR00b; Neuroproton; +5 Ответить
50. Repich 535 11.05.22 16:23 Сейчас в теме
(3) Ну ребята смелые, там наверное и бекапы не делали? Я после того, как в славном 2010 году восстанавливал ConfigSave запрещаю делать динамическое обновление на проде в любых продуктах куда дотянусь.
4. muskul 10.05.22 07:21 Сейчас в теме
%#$, ^%#$ и в продакшен
Если же выполнить команду "Конфигурация -> Конфигурация базы данных -> Вернуться к конфигурации БД"

В одной из баз уриба это спасло, даже не знал об этой функции
5. kraynev-navi 547 10.05.22 08:15 Сейчас в теме
Юрий, СПАСИБО за статью!
Если возможно, предлагаю все-таки оценить и дополнить статью рисками при дин.обновлении в сравнении с рисками при штатном обновлении.
Часть все-таки пересекается.
6. 3vs 10.05.22 08:20 Сейчас в теме
Спасибо, Юрий за статью!
Все отмечают 9 Мая, а Вы трудитесь!

Давненько не было от Вас статей!
8. dsdred 1965 10.05.22 09:12 Сейчас в теме
Я перестал обновляться динамически с 2014 года, тогда я работал на заводе где каждый день так обновлялись. Я застал момент когда база рухнула и её подымали с бекапа.
В тот день я начал бороздить просторы что же это за обновление такое которое может базу порушить. Начитавшись стал ярым противником динамики и если топы просят что то срочно я им рассказываю о возможных последствиях и говорю готовы ли вы взять на себя ответственность за простой?
После чего слышу: - Впринципе мы готовы потерпеть до завтра, это не горит.
dabu-dabu; CheBurator; nik_lankaster; Eremkin; zqzq; ojiojiowka; Irwin; d_sdr; rusmil; akR00b; SP2000; maksa2005; Teplotrassamen; JohnyDeath; YPermitin; +15 Ответить
9. YPermitin 12200 10.05.22 09:17 Сейчас в теме
11. Rustig 1466 10.05.22 09:48 Сейчас в теме
(8)
P.S. А Вы задумывались над тем, что установка расширений тоже может приводить к подобным проблемам? :)

А как быть с подключением расширений в работающей базе? И как быть с ошибками, которые всплывают на след. утро после ночного обновления базы?

ПС. Я до сих пор использую динам. обновление - но это как исключение крайняя мера, а не как регламентная процедура...После прочтения статьи - ничего не изменится... Единственное, что остается надежда, что разработчики платформы придумают второй контур защиты или обхода ошибок, возникающих при динамическом обновлении.
12. dsdred 1965 10.05.22 09:53 Сейчас в теме
(11)

Единственное, что остается надежда, что разработчики платформы придумают второй контур защиты или обхода ошибок, возникающих при динамическом обновлении.


В этом направлении не будет изменений, динамика как РИБ есть и не развивается. Легаси можно даже сказать.
10. Rustig 1466 10.05.22 09:42 Сейчас в теме
Сбой сети.
Регламентные работы на сервере, внезапно.
Обслуживание базы, которое завершило блокирующий сеанс, опять же внезапно!
Конфигуратор вылетел из-за ошибки внутренней.
Разработчик 1С был странным и завершил сеанс конфигуратора во время обновления.
И еще сотни причин, которые лень добавлять.


Добрый день!
Хотел уточнить, если произошло одно из описанных событий, но мы не делали динамического обновления, мы вообще не обновляли базу. Возникнет ли ошибка в работе 1С? Или подобные события обходятся незамеченными со стороны 1с (конфигуратора и клиентской части)?
13. yukoz 50 10.05.22 11:58 Сейчас в теме
Тоже самое (случайные обрывы соединения) может произойти и при монопольном (обычном) обновлении базы, также база порушится. Это я к тому, что некоторые спецы в течение рабочего дня, чтобы не обновлять демонически просят всех выйти из базы на 5 мин и с чистой душой начинают обновлять Не димонически., с тут бац и конфигуратор потерял соединение или сист админ перепутал кнопку Выход с Завершением работы (у нас такое было) и звиздец, если это произошло в момент обновления базы. Так что здесь дело случая и удачи, и совсем быть противником динамического обновления тоже не стоит, имхо. Единственное, прямо уже если совсем риски минимизировать, то да, полностью отказывается от динамики, выгоняем всех (блокируем фоновые и все соединения!) и обязательно делаем архивную копию базы средствами SQL, тогда хоть в случае чего мы сможем быстро натянуть копию
Egor_Yu; BuhBuhov; Mechanist; METAL; Jeka44; Teplotrassamen; 7OH; +7 1 Ответить
14. YPermitin 12200 10.05.22 12:35 Сейчас в теме
(13) нет, писков там меньше, чем при динамике, т.к. механика все же отличается.

Так что не соглашусь.
mr_sav; dsdred; zqzq; ojiojiowka; Irwin; +5 Ответить
15. 7OH 66 10.05.22 16:36 Сейчас в теме
Было бы не так обидно, но на 20-ке ловили ошибку и после монопольного обновления.
16. maksa2005 359 10.05.22 18:49 Сейчас в теме
Поставь плюс если хоть раз обновился динамически и все пошло по............. (не тому сценарию)
yurkh; VOA2009; fd13; dabu-dabu; smit1c; dsdred; rintik; nik_lankaster; kai068; mip128; Eremkin; NeLenin; CSiER; oldcopy; MaxOPTdv; user1304317; Segate; mult1c; zqzq; WhiteDachnik; exitel; user957753; user644613_lopatenko1c; ojiojiowka; Irwin; Jeka44; user1313935; rusmil; akR00b; cdrw3; Tikoven; t278; muskul; v3132; YPermitin; +35 Ответить
41. zqzq 23 11.05.22 12:16 Сейчас в теме
(16) Один раз пришлось воспользоваться скриптом с инфостарта, который копирует таблицу Config с базы-донора.

Также многократно слетала РИБ с ошибкой обновления конфигурации, хотя основная база "успешно" динамически обновилась.

Теперь никакого динамического обновления, обновляемся одной кнопкой через служебную самописную конфигурацию: указание времени обновления для таймера, установка блокировки, обновление из хранилища рабочей, выгон пользователей, обновление БД, снятие блокировки -- все автоматически с перезапуском если что-то вылетело/не прошло -- где-то на 5 минут обычно прерывание пользователей.
42. maksa2005 359 11.05.22 12:17 Сейчас в теме
(41)Да. мне это знакомо. РИБ УТ 10.3.
Всегда говорю всем = ждите вечера.
17. Andreeei 39 10.05.22 19:33 Сейчас в теме
Остается вопрос - почему 1С не уберет возможность динамического обновления, если все так печально?
29. METAL 252 11.05.22 09:59 Сейчас в теме
(17) Возможно потому, что не всё так печально?

См. пункт статьи "После этого проблема будет полностью исправлена в 99% случаев."
Так и не понял, ловил ли кто-то проблемы из оставшегося 1%. Мы за долгие годы - нет

Аналогия про светофор, на мой взгляд, неуместна, так как движение на красный - нарушение ПРАВИЛ. Никаких официальных правил от вендора про нерекомендацию дин.обн. я не слышал.
Pependos; nik_lankaster; add063; bilex; nghtmn_cmth; +5 Ответить
30. YPermitin 12200 11.05.22 10:02 Сейчас в теме
(29) :)

- Зачем Вы нарушили правила и перешли на красный свет светофора?
- Но мы так ходим уже 5 лет всей семьей и никого еще не сбили? Я, моя жена и дети все еще живы!
- Но это создает несоизмеримый риск!
- Мы ходили и будем ходить, потому что ничего не случилось! Вы все врете!
- Но ведь на зеленый свет ходить безопаснее!
- Если на красный свет ходить нельзя, то почему его вообще не уберут и не поставят охрану на дороге???
- ...

И так можно продолжать бесконечно :)

Просто знайте, иногда ДИНАМИЧЕСКОЕ обновление превращается в ДИНАМИЧНОЕ. :))))
31. METAL 252 11.05.22 10:02 Сейчас в теме
(30) Аналогия про светофор, на мой взгляд, неуместна, так как движение на красный - нарушение ПРАВИЛ. Никаких официальных правил от вендора про нерекомендацию дин.обн. я не слышал.
bilex; brr; +2 Ответить
35. YPermitin 12200 11.05.22 10:42 Сейчас в теме
(31) производители светофоров тоже не говорят, что на красный нельзя ездить.

Об этом говорят другие люди.

В общем, удачи вам в вашей вере. Раз и примеры вас не убедили, но и доводовтнайти не получится.
39. METAL 252 11.05.22 11:36 Сейчас в теме
(35)
производители светофоров тоже не говорят, что на красный нельзя ездить.

Ну камон, давайте не будем противопоставлять производителей светофоров, писателей ПДД и ГАИ - это всё одна команда под началом Министерства Транспорта. Но если хотите аналогию про светофор, то рекомендация никогда не обновляться динамически напоминает мне предостережение не переходить даже на зелёный свет, так как "я однажды видел что кого-то сбили на зелёный, поэтому давайте пользоваться только наземными и подземными переходами"


(35)
Раз и примеры вас не убедили

А примеры разве были? Ну кроме, искусственно добавленных триггеров.
Спасибо большое за статью, за детальный разбор внутренних механизмов платформы и возможные варианты решений, отдельная благодарность за триггеры и способы как поломать, но в статье ни слова про реальные кейсы, когда что-то безвозвратно сломалось (само) и базу пришлось возвращать из бекапа. Было у вас такое в реальности?

Были ли у нас сбои после дин.обновления? Да, были. Удалось решить? Да, 100% удалось починить. Перестали ли мы обновлять динамически? Нет, обновляем при надобности, чередуем с монопольными обновлениями и пока не видим причин прекращать. По крайней мере, на базах, где допустимы кратковременные простои.
EliasShy; bilex; brr; +3 Ответить
40. YPermitin 12200 11.05.22 11:41 Сейчас в теме
18. KilloN 47 10.05.22 21:00 Сейчас в теме
Заметьте, каждый этап - почти всегда разные транзакции, это важно.


Не пойму почему 1с не изменяет таблицы ConfigSave и Config в одной транзакции?
METAL; kote; alk; kalyaka; d_sdr; +5 Ответить
19. Kutuzov 699 10.05.22 21:57 Сейчас в теме
Данные проблемы касаются также и расширений?
20. t278 45 11.05.22 02:59 Сейчас в теме
Ловим такую ошибку раз в год .
https://infostart.ru/1c/articles/324751/
https://infostart.ru/1c/articles/116123/
не могу найти статью которая прям явно сказала что делать.

Мы делаем две команды
1) delete from base_1c.dbo.Config
go

2) ins ert in to base_1c.dbo.Config sel ect * fr om TMP.dbo.Config
36. METAL 252 11.05.22 10:59 Сейчас в теме
(20)
Мы делаем две команды
1) delete from base_1c.dbo.Config
go

2) insert in to base_1c.dbo.Config select * from TMP.dbo.Config

Не в коем случае не рекомендовал бы данный метод (по крайней мере для лечения сбоев при дин.обновлении), последствия его применения описаны здесь https://infostart.ru/1c/articles/390768/

В статье описан метод, который действительно работает в 99% случаев , продублирую
DELETE FROM [dbo].[Config] 
WHERE FileName IN (
	'commit','dynamicCommit','dbStruFinal'
)


Я пользуюсь немного другим
DELETE FROM [dbo].[Config] 
WHERE FileName LIKE '%com%'

Процент починки за много лет = 100% (нет, аналогия про светофор всё еще неуместна)
21. quazare 2066 11.05.22 06:43 Сейчас в теме
никогда не воспринимал динамическое обновление серьезно... 8-ка еще "сырая"
22. user1519152 11.05.22 06:57 Сейчас в теме
У нас динамические обновления запретили после того, как у всех(сотен) пользователей сломался кеш метаданных.
Добавлю что сброс кеша метаданных у клиента - первое действие при любых проблемах 1с. Проще всего это сделать прибив создав базу в приглашении 1с у клиента.
23. evn-zorin 27 11.05.22 08:04 Сейчас в теме
года три уже перестал как динамически обновляться, после того как часть кода просто исчезала бесследно.
Проще всех выбросить на пару минут, ничего страшного не случится, люди отдохнут и конфигурация целее будет.
24. sinichenko_alex 120 11.05.22 08:06 Сейчас в теме
Спасибо Юрий за очередную очень познавательную статью в которой вопрос и "корень зла" как всегда рассмотрены детально и главное на примерах!
25. akR00b 11.05.22 08:18 Сейчас в теме
Частенько диманически обновляемся, ловим раз в пол года ошибки с юзерпик, пару раз приходилось восстанавливаться на день назад, пару раз переносить конфиг с бэкапа, согласен с автором, если можете не обновляться лучше не обновляться.
26. ser6702 129 11.05.22 08:51 Сейчас в теме
В центре угла любой проблемы д. стоять не программист, а тот для кого он должен являться обслуживающим персоналом, который его облизывает как официант посетителя ресторана.
По иной аналогии, если не нравится ресторанная, как авиационные техники и инженеры обслуживают летный состав, начиная работы за несколько часов до полетов и заканчивая через несколько часов после окончания полетов.
Поэтому для оптимизации решения задач учёта хозяйственной деятельности предприятия и человека следует иначе расставлять весовые коэффициенты. Если главный бухгалтер срочно требует внести поправки, связанные с финансовыми регулятивными рисками, а в вашей базе в тот же момент проходит отгрузка на складе на несколько сотен миллионов? Вы не можете никого выгнать

У вас как у чукчи из анекдота: а если потеряешь билет - есть второй, а если второй потеряешь - есть проездной
По бэкапам должно быть также
Вы должны осознавать и иметь подтвержденные регламенты от руководства документальные. Возможность восстановить в случае сбоя на заданную точку времени.
И выполнить задачу
В таком случае динамический способ обновления - это не зло а благо. Все определяется приоритетами. Забудьте что главный это программист. Это в корне не верно
32. dubrovin 11.05.22 10:21 Сейчас в теме
(26)
Забудьте что главный это программист. Это в корне не верно


Главным должен быть здравый смысл, а не позиция в пищевой цепочке :)
Решения должны приниматься взвешенно и обсуждаться всеми специалистами.
Если есть возможность не делать рискованную операцию, то лучше избежать риска.
Если ситуация аховая и без динамического обновления ну прям никак, то придется делать. Максимально подстраховавшись по возможности.
А потом неплохо бы проанализировать как можно избежать подобных ситуаций. Опять же совместно.
Как адекватные люди. А то ведь в следующий раз может не повезти. И, как результат, сорванная сделка на несколько сотен миллионов и финансовые потери, связанные с регулятивными исками.
Кто в этом случае будет виноват: главный бухгалтер или "не главный" программист (админ) ?
YPermitin; EliasShy; zqzq; ser6702; +4 Ответить
27. Droonimus 11.05.22 09:01 Сейчас в теме
Статья хорошая, пока не увидишь своими глазами хотя бы один труп конфига в продуктивном контуре, не будет полного ощущения момента. Каждый должен разок в карьере положить хотя бы одну базу в несколько сотен гигов. Но если уж обновлять базы фоном без бэкапов, то только в режиме V2.Для подстраховки можно даже обмены не тормозить, особенно если у вас несколько сотен узлов. Наличие пары - тройки расширений с включенными в их состав новыми объектами и реквизитами - будет огромным плюсом.))
28. laperuz 54 11.05.22 09:38 Сейчас в теме
Очень интересно почитать насчёт расширений, устанавливаемых "на лету", с учётом того, что в технологии fresh это основной вариант установки расширений)
33. reset2 11 11.05.22 10:23 Сейчас в теме
Сбой сети.
Регламентные работы на сервере, внезапно.
Обслуживание базы, которое завершило блокирующий сеанс, опять же внезапно!
Конфигуратор вылетел из-за ошибки внутренней.
Разработчик 1С был странным и завершил сеанс конфигуратора во время обновления.
И еще сотни причин, которые лень добавлять.

думаю стоит с этим сначала разбираться, а не с ошибками дин.обновления
34. dubrovin 11.05.22 10:23 Сейчас в теме
Хорошо написано.
Про расширения продолжишь ?
zinzillya; Necessitudo; kalyaka; +3 Ответить
37. YPermitin 12200 11.05.22 11:24 Сейчас в теме
(34) возможно, но пока без гарантий)
38. kalyaka 803 11.05.22 11:26 Сейчас в теме
Увлекаться точно не стоит, но это удобно. Я обычно придерживаюсь правила: не более 3-х дин. обновлений в одно нормальное обновление.
Ну и конечно дифференциальный бэкап должен быть всегда!

Конечно опасная операция, однако достаточно надежная, чтобы ей пользоваться. Особенно если в течении длительного времени ни одного инцидента не происходило (уже лет 10 не наблюдал проблем). Но тут каждый определяет по своему опыту, надежности сети, оборудования. Обновление всегда произвожу из терминального соединения, а не с рабочего компьютера. Из личного опыта знаю, что сбой произойдет, если при обновлении была открыта транзакция на прямое чтение таблиц 1С.

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

Из статьи для себя сделал вывод: перезапуск сервиса 1С, как и отсутствие соединений, не убирает динамически обновленные записи - требуется провести нормальное обновление в монопольном режиме.
43. ig-efrem 8 11.05.22 12:20 Сейчас в теме
Я на своей работе запретил динамические обновление на рабочих базах, после того как пару лет назад выяснилось, что в некоторых случаях (не понял явной связи) после динамического обновления переставали работать фоновые задания - просто отчеты не формировались и тд. Спасало только перезапуск служб.
Принял волевое решение и как бы руководство не настаивало на срочном обновлении, я динамически не обновлял - или ждем ночи или останавливаем работу баз на 5-10 мин для монопольного обновления.
В тестовом контуре разработчики практикуют динамическое обновление и периодически(примерно, раз в год) какая нить база тестовая падает после такого обновления
44. sea123 14 11.05.22 12:31 Сейчас в теме
У нас при динамическом обновлении другая проблема: перестают проводиться документы. Транзакции просто подвисают, я, при открытии списка документов, впервые увидел надпись "ошибка транзакции". Лечится только пересбором статистики на сервере 1С.
45. lazarenko 228 11.05.22 13:29 Сейчас в теме
46. ManyakRus 450 11.05.22 13:37 Сейчас в теме
У нас сломалась база 1С один раз из-за динамического обновления, выдавало ошибку что-то типа "транзакция ещё не закончена...". Решилось через 3 часа путём нормального обновления 1С. Напарник до сих пор считает что это не он поломал 1С, и динамически обновляет каждый день.
47. anig99 2806 11.05.22 13:42 Сейчас в теме
Ошибки при обновлении могут возникать и без динамического обновления. Поэтому нужно взять за правило перед обновлением сохранять резервные копии основных таблиц, связанных с обновлением.
48. Silenser 543 11.05.22 14:34 Сейчас в теме
В свое время сделал обработку на 1С которая копировала содержимое таблиц Config и ConfigSave и, если что-то пошло не так, то восстанавливала их из копии. В моих разработках есть, но пиарить не буду, кому интересно - найдет. Но вообще, сейчас этот вопрос решается расширениями, что работает на порядок надежнее, так что динамику давно пора из платформы выпилить.
49. oldcopy 140 11.05.22 14:37 Сейчас в теме
Динамическое обновление с завидной регулярностью ломает обмен в РИБ. Это, конечно, лечится. Но лечится долго и нудно - путем выгрузки CF из основной базы и ручной заливкой ее в периферийные. А если таких баз десяток? И половина из них с мобильным интернетом? После одного такого развлечения от одной только надписи Обновить динамически начинает дергаться глаз.
zqzq; Silenser; YPermitin; +3 Ответить
51. Silenser 543 11.05.22 16:49 Сейчас в теме
(49) По идее, там предопределенные элементы чаще веселья добавляют :)
53. oldcopy 140 11.05.22 18:09 Сейчас в теме
(51) Больше всего веселья там сейчас добавляют патчи и отдельные, сказочно смелые товарищи, которые включают их автоматическую установку.
52. user_2010 677 11.05.22 17:34 Сейчас в теме
Тоже как-то словила проблемы с динамическим обновлением... очень странные... так показалось в тот момент. Внесла изменения. Обновила динамически. Ключевые пользователи - для которых делалось обновление - перезашли в программу, увидели результат обновления, написали инструкции по новому функционалу. А на следующий день - внесенные изменения пропали!
YPermitin; +1 Ответить
54. CheBurator 3068 12.05.22 23:51 Сейчас в теме
Программировать надо нормально. Планировать. А не делать костыли. Тогда и не будет срочности и демонического всего. Подождут до завтра. А пока будут ждать - посиди, подумай. Из очередного гвонокостылся сделай хоть что-то напоминающее нормальное решение...
55. anosin 30 13.05.22 08:34 Сейчас в теме
Что-то ничего не увидел про механизм фонового обновления когда даже "Рестуктуризация" выполняется без завершения сеансов пользователей
получается еще более "страшная и ненадежная" операция?
56. rpgshnik 2871 13.05.22 10:49 Сейчас в теме
Используя 8.3.21 мы можем спокойно обновляться демонически! УРА! УРА! УРА!
60. JohnyDeath 300 15.05.22 11:57 Сейчас в теме
(56) а что там в 21ю завезли по этому поводу?
57. rpgshnik 2871 13.05.22 10:50 Сейчас в теме
Это как с короновирусом, пока сам не столкнёшься с последствиями демонического обновления, не будешь верить до последнего (большинство конечно).
59. anosin 30 13.05.22 11:18 Сейчас в теме
(57) сталкивались и неоднократно, но руки чешутся :) так что сравнение както не показательно.
63. пользователь 18.05.22 15:06
Сообщение было скрыто модератором.
...
61. Vodoley 1 15.05.22 21:29 Сейчас в теме
хм. я думал правка на лету расширениями - способ обойти такие риски. А тоже не все так просто?
62. titanium2008 28 16.05.22 08:34 Сейчас в теме
Пользуюсь дин обновлением постоянно, на 8.3 вроде полет нормальный.
64. rpgshnik 2871 19.05.22 03:19 Сейчас в теме
Провел у себя в чатике опрос https://t.me/top_1c/109 , проголосовали 34 человека из них 41% не пользуется, 59% пользуются :)
65. protexprotex 128 20.05.22 20:11 Сейчас в теме
Раз поймал такое - база упала и не вставала уже с любыми радиусами бубен. Пришлось из копии восстановится. Благо как и у всех :-) есть горячее бекапирование
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Механизмы платформы 1С v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    88318    Serginio    116    

Об одной неочевидной проблеме перехода на версию платформы 8.3.20

Механизмы платформы 1С v8 Бесплатно (free)

При переходе на платформу 8.3.20 мы столкнулись с ошибкой "Повторяющийся псевдоним "Ссылка" Ссылка AS Ссылка,Presentation AS Presentation,Ссылка AS Ссылка" в ряде типовых конфигураций. Причём, эта проблема оказались неизвестна ни Яндексу, ни Гуглу. Путём мучительных экспериментов нам удалось найти решение. Пока я ещё не уверен, действительно это решение или обходной костыль, а настоящая проблема -- в чём-то другом, но это решение работает в ситуации, когда всё сломалось, а проблему надо решать срочно. Предположительная причина: платформа 8.3.20 более строго относится к типизации данных в запросах, чем предыдущие версии, вываливая в случае несоблюдения новшеств малопонятные ошибки.

08.04.2022    3569    Kernelbug    22    

Отборы динамического списка

Механизмы платформы 1С v8 Бесплатно (free)

Динамический список предоставляет несколько объектов "Отбор". В статье разбирается, какой для чего нужен и как их использовать на форме. Рассматриваются только возможности платформы (без БСП).

28.03.2022    3409    Gladkov_Anton    3    

Фишки платформы 1С 8.3 для начинающего разработчика

Механизмы платформы 1С v8 1cv8.cf Россия Бесплатно (free)

В данной заметке рассмотрены вспомогательные инструменты платформы, которыми часто пренебрегают начинающие программисты 1С.

11.03.2022    7461    Dimbayyyy    96    

Использование программных перечислений, ч.1: строковые константы Промо

Механизмы платформы 1С v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    41806    unichkin    74    

Экспертный кейс. Расследование деградации производительности системы. Проведение документа “Поступление товаров и услуг” (1С:ERP 2)

Механизмы платформы 1С Запросы HighLoad оптимизация v8 ERP2 Бесплатно (free)

В ходе проведения нагрузочного тестирования одним из наших клиентов была выявлена сильная деградация производительности системы в целом и, в частности, выполнения ключевой операции “Проведение документа поступление товаров и услуг” в течение выполнения теста. Согласно данным подсистемы БСП “Оценка производительности”, время выполнения ключевой операции “Проведение документа поступление товаров и услуг” возрастало в процессе тестирования с 15-20 секунд в начале тестирования до 150-200 секунд в его финале.

02.03.2022    2805    it-expertise    47    

Генератор представлений для базы данных 1С

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка для генерации скриптов создания представлений баз данных 1С. Поддержка SQL Server + некоторые служебные функции.

10 стартмани

20.02.2022    4852    4    YPermitin    0    

Модульная архитектура или пара слов о расширениях. Часть I (мысли, рассуждения)

Механизмы платформы 1С v8 Бесплатно (free)

Статья-размышление о том, какое может быть применение технологии расширений 1С и зачем нам, разработчикам/программистам на 1С, знать общепринятые паттерны проектирования приложений. Итак, а что если я вам скажу, что технология расширений 1С - это одно из прекрасных новшеств компании 1С? Пусть эта статья будет хвалебной одой расширениям 1С.

14.02.2022    4456    amon_ra    67    

Вспомогательные инструкции в коде 1С Промо

Механизмы платформы 1С v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    37847    tormozit    107    

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

Механизмы платформы 1С v8 1cv8.cf Бесплатно (free)

Начиная с платформы 8.3.18.1128 переработана технология работы с асинхронными вызовами. В данной статье хочу описать новые асинхронные вызовы и сравнить их с предыдущими на примере функции - Вопрос на клиенте.

31.01.2022    3089    Shining_ninja    15    

Несколько простых приемов для удобной работы в конфигураторе

Универсальные функции Механизмы платформы 1С v8 Бесплатно (free)

Простая и удобная среда разработки 1С:Предприятия позволяет практически любому человеку начать работать под капотом 1С - в конфигураторе. Время идет, новички становятся программистами, специалистами, а об удобных приемах работы узнают годами, по ходу своего карьерного пути. А здорово было бы, если бы все знали удобные приемы в начале своего пути? Эти несколько приемов будут полезны новичкам, так как они затрагивают ту область работы, с которой приходится сталкиваться в начале карьеры.

12.11.2021    7994    acces969    95    

Как спроектировать структуру регистра сведений

Механизмы платформы 1С v8 v8::Запросы Бесплатно (free)

«Что может быть проще?» — это первое, что приходит в голову. Но что, если это не так? В этой статье мы попробуем затронуть некоторые вопросы, которые могут возникнуть при проектировании больших регистров.

08.11.2021    6377    Neti    60    

Как прикрутить ГУИД к регистру сведений Промо

Механизмы платформы 1С v8 Бесплатно (free)

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

16.04.2019    23981    m-rv    18    

О вложенных попытках, исключениях и о представлении ошибок

Механизмы платформы 1С v8 1cv8.cf Бесплатно (free)

В данной статье, на небольшом примере, мне бы хотелось показать, как себя ведут вложенные "Попытка-Исключение". А также о том, чем отличаются методы ОписаниеОшибки() и ИнформацияОбОшибке().

07.11.2021    3800    Nicholas    17    

Обработчик ожидания. Нюансы

Механизмы платформы 1С v8 Бесплатно (free)

ПодключитьОбработчикОжидания: некоторые подробности и особенности работы

24.08.2021    11655    Yashazz    25    

Прогресс-бар в поле динамического списка

Механизмы платформы 1С v8 Бесплатно (free)

Изображаем прогресс-бары в колонке динамического списка

23.08.2021    3359    Yashazz    13    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Механизмы платформы 1С v8 1cv8.cf Бесплатно (free)

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

05.12.2017    31295    itriot11    34    

ПриПолученииДанныхНаСервере + Контекст формы. Лайфхак

Механизмы платформы 1С v8 Бесплатно (free)

Передать свои произвольные данные в событие, которое "без контекста"? Легко!

13.08.2021    4411    Yashazz    16    

Новичок новичку: как добавить программно кнопку на форму путем расширения

Механизмы платформы 1С v8 Россия Бесплатно (free)

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

13.05.2021    17895    user1312100    23    

Экспорт технологического журнала. Набор инструментов (приложения + исходный код)

Технологический журнал Абонемент ($m)

Набор инструментов для экспорта данных технологического журнала во внешнее хранилище на базе ClickHouse для Windows и Linux. Готовое приложение и исходный код.

10 стартмани

09.05.2021    7845    18    YPermitin    32    

Ускоряем 1С: модули с повторным использованием возвращаемых значений Промо

Механизмы платформы 1С v8 Бесплатно (free)

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

04.09.2017    60530    m-rv    63    

Программное создание расширения

Механизмы платформы 1С v8 Бесплатно (free)

Создание нового расширения "на лету", только штатными средствами 1С.

06.04.2021    5234    Yashazz    14    

Неочевидные нюансы записи управляемой формы

Механизмы платформы 1С v8 v8::УФ Платформа 1C v8.2 1cv8.cf Бесплатно (free)

Разберем несколько нюансов записи управляемой формы.

02.04.2021    17973    SeiOkami    56    

Советы из Желтой тетради 📒 #1

Механизмы платформы 1С v8 Бесплатно (free)

В этой публикации я собрал в одном месте часть советов и лайфхаков, которые открыл для себя в последнее время. Регулярно я публикую их в своём телеграм-блоге "Жёлтая тетрадь 📒 Блог программиста 1С", здесь же - дайджест этих публикаций.

15.03.2021    5385    builin    120    

Регулярные выражения без внешних компонент? Легко! Промо

Механизмы платформы 1С v8 Бесплатно (free)

Сложный способ организовать проверку строки с помощью регулярного выражения в 1С. При этом ни одна внешняя компонента не пострадала. Ну и от платформы (Linux, MustDie) - не зависит.

04.03.2016    74288    starik-2005    109    

Флаг "Использовать ПОЧТИ всегда", или Нюанс динамических списков

Механизмы платформы 1С v8 Платформа 1C v8.2 1cv8.cf Бесплатно (free)

Небольшая пятничная история по программной работе со строкой динамического списка.

11.02.2021    7100    SeiOkami    36    

Расширенный автоподбор при вводе по строке в поле ввода в управляемых формах

Механизмы платформы 1С v8 v8::УФ 1cv8.cf Бесплатно (free)

Началось все с того, что штатный автоподбор при вводе по строке в поле ввода для некоторых больших справочников устраивать перестал. Вообще, для способа поиска строки "Любая часть" он работает на первый взгляд очень хорошо: работает как полнотекстовый (т.е. по нескольким словам) даже без активации полнотекстового поиска, красиво подсвечивает слова поиска в результатах. Казалось бы, все отлично. Но есть неприятное ограничение - всего лишь 10 значений в результирующем списке (у вас может быть несколько больше, так как платформа неявно добавляет результаты поиска по истории ввода). Для небольших справочников или справочников с разнородным ассортиментом все хорошо. Но не в моей ситуации. А простых путей увеличить количество выдаваемых строк на момент написания статьи мне обнаружить не удалось. Пришлось полностью переопределять автоподбор. Ниже речь пойдет именно об этом. И, к слову, в типовых конфигурациях для некоторых справочников используются похожие приемы для увеличения количества строк результата автоподбора.

21.01.2021    5428    herfis    7    

О формах 1С замолвите слово... Необычное использование знакомого всем объекта

Механизмы платформы 1С v8 Бесплатно (free)

Неочевидно, но форму 1С можно использовать как универсальный объект, который доступен на клиенте и имеет уникальный набор свойств, методов, событий и конструктор, принимающий параметры. При этом у формы может не быть интерфейса, и ее можно даже не открывать. О реальных примерах применения такого подхода пойдет рассказ.

13.01.2021    8755    CyberCerber    46    

Методика переопределения и вызова обработчиков событий обычной формы Промо

Механизмы платформы 1С v8 1cv8.cf Россия Бесплатно (free)

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

24.06.2007    90179    tormozit    31    

Ускоряем медленный/долгий и тормозной стандартный поиск по динамическому списку, настраиваем его под себя

Механизмы платформы 1С v8 v8::УФ 1cv8.cf Бесплатно (free)

Пользователи привыкли искать на форме списка, но, вбивая в поиск некорректные данные, могут завесить всю систему, а если еще искать нужно по НЕ полям списка, то решение только в своём поиске - все это решим в публикации с открытым кодом.

14.12.2020    30023    SizovE    2    

Передача параметров по значению в языке 1С

Механизмы платформы 1С v8 ИТ-компания Бесплатно (free)

Все мы знаем, что в 1С можно написать такое: Процедура ОбработатьОбъект(Знач Объект) КонецПроцедуры Т.е. тем самым мы передаем в процедуру параметр по значению Далее в статье будут рассмотрены некоторые особенности передачи по значению объектов НЕпримитивных типов.

26.11.2020    4013    direktorSan    9    

Установка отбора для поля ввода управляемой формы через ПараметрыВыбора (без переопределения событий "НачалоВыбора", "Автоподбор")

Механизмы платформы 1С v8 v8::УФ Бесплатно (free)

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

15.11.2020    9399    Eugen-S    11    

Отладка подключаемых обработок Промо

Механизмы платформы 1С v8 1cv8.cf Бесплатно (free)

На самом деле для этого не нужно ни изменять конфигурацию, ни пользоваться вспомогательной обработкой-отладчиком.. Все просто :)

04.01.2017    80750    unichkin    118    

Групповое изменение реквизитов объектов расширений

Механизмы платформы 1С v8 ERP2 УТ11 КА2 Бесплатно (free)

Доработка встроенной обработки "Групповое изменение реквизитов" для возможности изменения ссылочных реквизитов с ссылками на объекты расширения. Работает в Комплексной конфигурации 2.4.

07.11.2020    2182    Alfn    14    

Лайфхаки для разработчиков 1С. Часть 1

Универсальные функции Механизмы платформы 1С v8 Россия Бесплатно (free)

Собрали 20 лайфхаков, которые используют наши программисты при работе с 1С. Формы, контрагенты, СКД, процедуры, глюки платформы и многое другое. В этой статье публикуем первую часть.

30.09.2020    7764    Neti    47    

Мастер создания копии информационной базы для отчетности

HighLoad оптимизация Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Прототип инструмента для подготовки реплики в режиме только для чтения к использованию. Позволяет использовать "read-only" реплики как обычные информационные базы 1С.

10 стартмани

28.08.2020    11746    12    YPermitin    13    

Программные перечисления, ч.2: приемы кэширования при разработке Промо

Универсальные функции Механизмы платформы 1С Запросы v8 Бесплатно (free)

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

30.10.2017    28486    unichkin    18    

Контекст любого объекта конструкцией #Если Фамилия Тогда

Механизмы платформы 1С v8 1cv8.cf Бесплатно (free)

Делаем инициализацию переменной в "своей" инструкции препроцессора, для получения контекстной подсказки объекта через точку. В дальнейшем в компилированном коде сама инициализация игнорируется, т.к. "своя" инструкция препроцессора НИКОГДА не выполняется.

17.08.2020    2719    sapervodichka    36    

Новое отображение ошибок в 1С

Механизмы платформы 1С v8 1cv8.cf Бесплатно (free)

Рассмотрим развитие механизма отображения ошибок в 1С (начиная с 8.3.17)

10.08.2020    25227    SeiOkami    44    

Динамический список, ключи записей. Нюансы

Механизмы платформы 1С v8 Бесплатно (free)

Заметки об особенностях динамических списков с произвольным запросом и видом ключа, отличным от "Авто"

07.08.2020    7425    Yashazz    6    

Недокументированное использование стандартных обработок из меню "Все функции". Промо

Механизмы платформы 1С v8 1cv8.cf Бесплатно (free)

Рассмотрены возможности произвольного использования стандартных функций, вызываемых из меню платформы "Все функции" - "Стандартные" (Активные пользователи, Журнал регистрации, Поиск ссылок на объект, Проведение документов ...).

19.06.2015    124094    ekaruk    138    

Диагностика контекста выполнения (внешняя компонента)

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Небольшая экспериментальная внешняя компонента для получения дополнительной информации о контексте выполнения.

1 стартмани

24.07.2020    10906    2    YPermitin    14    

Вы запускаете приложения, но делаете это без уважения

Механизмы платформы 1С v8 1cv8.cf Бесплатно (free)

О запуске сторонних приложений и скриптов из кода встроенного языка платформы 1С.

21.07.2020    11401    YPermitin    32    

Использование Стека вызовов в качестве условия оператора Если [...] Тогда

Механизмы платформы 1С v8 1cv8.cf Бесплатно (free)

Делюсь интересным приёмом, позволяющим использовать данные стека исполнения кода 1С в качестве условия, накладываемого на выполнение кода.

12.07.2020    10033    sapervodichka    62    

Простая и быстрая эмуляция операций с битовыми строками Промо

Механизмы платформы 1С v8 Бесплатно (free)

Битовые строки могли бы упростить реализацию некоторых алгоритмов на языке платформы «1С: Предприятие 8». Но пока в платформе операций с битовыми строками нет. В то же время уже сделанные попытки смоделировать эти операции преобразованиями над числами опираются на циклы обработки отдельных битов, что плохо сказывается на скорости их работы. Предлагается новое простое решение, основанное на представлении битовых строк строками символов «0» и «1». Приводится примеры кода выполнения основных логических операций AND, OR, XOR, NO без использования циклов. В качестве прикладной задачи рассмотрено получение последовательных значений кода Грэя, который можно использовать для ускорения перебора вариантов.

22.06.2016    30629    ildarovich    14    

Экспорт журнала регистрации. Набор инструментов (приложения + исходный код)

Инструментарий разработчика v8 Абонемент ($m)

Набор инструментов для экспорта данных журнала регистрации во внешние хранилища для Windows и Linux (SQL Server, PostgreSQL, MySQL). Готовые приложения и исходный код.

10 стартмани

26.05.2020    16080    112    YPermitin    0    

Серверные вызовы, которые нельзя вызывать

Механизмы платформы 1С v8 v8::УФ 1cv8.cf Бесплатно (free)

Не баян, а классика. Рассмотрим особенность платформы настолько же древнюю, как сами УФ.

12.05.2020    10917    SeiOkami    34    

Как обойти глюк механизма расширений. Пошаговая инструкция в картинках

Механизмы платформы 1С v8 БП3.0 Бесплатно (free)

После очередного обновления Бухгалтерии 3.0 в одной очень известной фирме мне звонит наш программист 1С, который ведет эту фирму, со словами - Шеф. Все пропало. Нам конец. Наше расширение грохнулось.

26.04.2020    13809    alfanika    21    

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

Механизмы платформы 1С v8 Бесплатно (free)

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

12.01.2016    352570    mrXoxot    209    

Выгрузка новых стандартных обработок

Механизмы платформы 1С v8 Россия Бесплатно (free)

Описывается способ определить адрес ресурса, по которому стандартная обработка хранится в платформе 8.3, с последующим сохранением обработки в файл внешней обработки.

24.04.2020    2870    anddro    5    

Информация о пользователях информационной базы (отчет на СКД)

Инструменты администратора БД Роли и права v8 v8::Права v8::СКД 1cv8.cf Абонемент ($m)

Два простых отчета по пользователям информационной базы и информации по ним.

1 стартмани

02.03.2020    12702    58    YPermitin    8    

Совместимость работы со строками. Жизнь до 8.3.6 и после

Механизмы платформы 1С v8 Бесплатно (free)

Немного о совместимости со старыми версиям платформы 1С в работе со строками.

21.02.2020    6505    YPermitin    24    

Мастер полнотекстового поиска

Поиск данных v8 v8::УФ 1cv8.cf Абонемент ($m)

Набор инструментов для работы с полнотекстовым индексом платформы 1С. Стандартные и расширенные возможности.

2 стартмани

07.02.2020    20204    194    YPermitin    32