Ошибка обновления типовых конфигураций УТ/ЕРП/КА и других "Превышен максимальный расход памяти сервера за один вызов"

18.08.25

База данных - Обновление 1С

При обновлении конфигураций ЕРП/КА/УТ типовыми обновлениями можно получить ошибку  Превышен максимальный расход памяти сервера за один вызов". С чем это связано? Рассмотрим исправление этой ошибки.

Например, посмотрим регистры накопления:

  • ЗаданияНеоперативногоДопроведенияДокументов
  • ДенежныеСредстваБезналичные

В модулях менеджера которых есть процедура "ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию", в которой выполняется выборка данных.

Затем эта выборка, в качестве ТЗ или массива уходит в процедуру ОбновлениеИнформационнойБазы.ОтметитьКОбработке"

Самое забавное, что 1С  для нас (но, видимо, не для себя)  написали комментарий к процедуре 
"ОтметитьКОбработке"

// Отмечает, что переданные данные необходимо обновить.
// Важно: не рекомендуется передавать в параметр Данные сразу все данные, которые
// необходимо зарегистрировать к обработке, т.к. большие коллекции типа Массив
// или ТаблицаЗначений могут занять существенный объем памяти сервера и привести
// к сильному снижению производительности системы. Рекомендуется получать и передавать
// данные небольшими порциями, например по 1000 объектов.

Это отлично .. но при этом в обработчике обновлений ... мы получаем огромную выборку .. без каких-либо разделений на порции.. в после передачи этой выборки  (массив или ТЗ)  в "ОтметитьКОбработке".. даже на мощных серверах .. мы просто падаем ...

Выход:

1) Создаем общий модуль "РаботаСПорциямиСервер" (Сервер, внешнее соединение)

Код модуля:

 

#Область ПрограммныйИнтерфейс

Функция РазбитьМассивНаПорции(ВходящийМассив, РазмерПорции) Экспорт
	
	ПулМассивов = Новый Массив;
	
	МассивПорция = Новый Массив;
	
	Если ВходящийМассив.Количество() <= РазмерПорции Тогда
		
		ПулМассивов.Добавить(ВходящийМассив);
		Возврат ПулМассивов;
		
	КонецЕсли;

	Для Индекс = 0 По ВходящийМассив.ВГраница() Цикл
		
		Если МассивПорция.Количество() = РазмерПорции Тогда
			
			ПулМассивов.Добавить(МассивПорция);
			МассивПорция = Новый Массив;
			
		КонецЕсли;

		МассивПорция.Добавить(ВходящийМассив.Получить(Индекс));
		
	КонецЦикла;
	
	Если Индекс -1 = ВходящийМассив.ВГраница() И МассивПорция.Количество() <> 0 Тогда
		
		ПулМассивов.Добавить(МассивПорция);
		
	КонецЕсли;
	
	Возврат ПулМассивов;
	
КонецФункции

Функция РазбитьТЗНаПорции(Тз, РазмерПорции) Экспорт
	
	ПулМассивов = Новый Массив;
	
	Если Тз.Количество() <= РазмерПорции Тогда
		
		ПулМассивов.Добавить(Тз);
		Возврат ПулМассивов;
		
	КонецЕсли;
	
	ТзПорция = ПустаяТз(Тз);
	
	Для Сч = 0 По Тз.Количество() -1 Цикл
		
		Если ТзПорция.Количество() = РазмерПорции Тогда
			
			ПулМассивов.Добавить(ТзПорция);
			ТзПорция = ПустаяТз(Тз);
			
		КонецЕсли;
		
		НоСтрокаТз = ТзПорция.Добавить();
		ЗаполнитьЗначенияСвойств(НоСтрокаТз, Тз.Получить(Сч));
		
	КонецЦикла;
	
	Если Сч = Тз.Количество() И ТзПорция.Количество() <> 0 Тогда
		
		ПулМассивов.Добавить(ТзПорция);
		
	КонецЕсли;
	
	Возврат ПулМассивов;
	
КонецФункции

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

Функция ПустаяТз(Тз)
	
	Возврат Тз.СкопироватьКолонки();
	
КонецФункции

#КонецОбласти

 


Исправление в расширении выглядит так:

 
 

 

#Удаление
  ОбновлениеИнформационнойБазы.ОтметитьКОбработке(
  Параметры, Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Регистратор"), ДополнительныеПараметры);
#КонецУдаления

#Вставка
  
  РазмерПорции = 500;
  
  ДанныеДляОбработки = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Регистратор");
  ПулМассивовДляОбработки = РаботаСПорциямиСервер.РазбитьМассивНаПорции(ДанныеДляОбработки, РазмерПорции);
  
  Для Каждого ЭлМассива Из ПулМассивовДляОбработки Цикл
  
    ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, ЭлМассива, ДополнительныеПараметры);
    
  КонецЦикла;
  
#КонецВставки

 


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

PS все это справедливо для "больших баз", где первички очень много...

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Обновление 1С Программист 1С 8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

В данной статье рассмотрена ошибка, с которой мы столкнулись после обновления «1С:ERP Управление предприятием» с релиза 2.5.7 на релиз 2.5.22. Для модификации операций закрытия месяца у клиента было отдельное расширение, в котором были модифицированные копии типовых методов.

27.05.2026    798    1c-izh    10    

9

Перенос данных 1C Обновление 1С Системный администратор Программист 1С 8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

07.05.2026    454    0    gzharkoj    0    

2

Обновление 1С Программист 1С 8.3 1С:ERP Управление предприятием 2 Отраслевые Сельское хозяйство и рыболовство Бесплатно (free)

В одном из наших проектов сложного обновления с «1С:ERP 2.5« присутствовал интегрированный модуль «1С:Птицеводство» с неопределенным релизом и накопленными дефектами предыдущих слияний. Прямое обновление было нецелесообразно из-за рисков некорректной реструктуризации. В статье описан метод идентификации версии через анализ метаданных и алгоритм удаления неактуальных объектов перед финальным переходом.

30.04.2026    527    1c-izh    0    

4

Обновление 1С Программист 1С 8.3 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1C:ERP Бесплатно (free)

В ходе тестового обновления нетиповой конфигурации «1С:ERP» с версии 2.5.7.201 на 2.5.22.129 после завершения всех регламентных процедур были зафиксированы массовые отрицательные остатки по складам.

17.04.2026    780    1c-izh    1    

5

Обновление 1С Программист 1С 8.3 1С:ERP. Управление холдингом Бесплатно (free)

Проект обновления «1С:ERP Управление холдингом» с 3.2.1 на 3.2.8 принёс задачку: логика проверки заполнения обязательных реквизитов «переехала» с момента проведения на этап первичной записи документа.

16.04.2026    707    1c-izh    2    

3

Обновление 1С Программист 1С 8.3 Россия Абонемент ($m)

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

1 стартмани

09.04.2026    635    5    NAlex    0    

2

Обновление 1С Перенос данных 1C Программист 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 Бесплатно (free)

Однажды к нам на проект сложного обновления пришла конфигурация «1С: Документооборот КОРП», которую требовалось обновить в технологическое окно 1 час. И мы обновили базу так, как это делают в подобных случаях с ERP — используя механизм «Обновление через копию».

06.04.2026    3843    1c-izh    9    

6

Обновление 1С Программист Бесплатно (free)

Рассматриваем типичные проблемы обновления 1С: ручную рутину, ошибки при релизах и перегрузку команды. Учимся автоматизировать обновления, работу с доработанными конфигурациями и процессы групповой разработки с помощью инструмента «Обновлятор». Разбираемся, как выстроить безопасный и управляемый процесс доставки изменений – от проверки релизов до автоматического обновления рабочих баз. В результате команда освобождается от рутинных задач и может сосредоточиться на развитии системы.

01.04.2026    1672    vladimir-89    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Xershi 1553 19.08.25 05:45 Сейчас в теме
Элегантное решение!
2. aximo 2692 19.08.25 07:16 Сейчас в теме
Это что у вас «большие базы» на 32-ух разрядных серверах приложений работают?
4. iolko 346 19.08.25 09:12 Сейчас в теме
3. Vladimir-R 172 19.08.25 09:03 Сейчас в теме
У вас в настройках отложенного обновления сколько потоков обновления включено?
5. iolko 346 19.08.25 09:13 Сейчас в теме
(3) Там, понимаете, дело не в потоках .. а дело в том, что передается в качестве параметра большой объем данных.
О том, что так делать нельзя, 1С пишет в комментарии:

// Важно: не рекомендуется передавать в параметр Данные сразу все данные, которые
// необходимо зарегистрировать к обработке, т.к. большие коллекции типа Массив
// или ТаблицаЗначений могут занять существенный объем памяти сервера и привести
// к сильному снижению производительности системы. Рекомендуется получать и передавать
// данные небольшими порциями, например по 1000 объектов.

Но при этом сама не выполняет данные требования
Dach; sapervodichka; +2 Ответить
6. sapervodichka 7556 19.08.25 10:24 Сейчас в теме
(3) тут я так понял дело в том, что есть 1 параметр, там весь объем и по потокам эти данные не делятся (это ведь дописывать надо кодом) машина не сможет поделить по потокам выполнение процедуры. Вот Алексей решил все также оставить в 1 потоке, но только поделить на меньшие порции, чтобы прожевывало. А так классно было бы иметь встроенную возможность поделить на порции и эти порции в разные потоки для любого обработчика обновления - но это лучше самому 1С сделать везде в обработчиках обновления.
7. iolko 346 19.08.25 12:57 Сейчас в теме
(6) Да, совершенно верно, и это (во всяком случае у нас) огромная выборка, и если она передается вся, без разбиения на порции, то получаем недостаток памяти.

Если же передать весь объем, предварительно его разделив, то он спокойно порциями встает в очередь и затем так же спокойно отложено отработает.
Потому отложенные обработчики делят данные на порции, и на каждую порцию создается отдельное рег задание.
А вот именно при подготовке данных этого нет, что и исправляем
8. Dach 391 19.08.25 13:46 Сейчас в теме
(7) на партнерку бы еще написать и носом их ткнуть в этот код
9. Vladimir-R 172 20.08.25 13:43 Сейчас в теме
(8) ответ 1С
"При анализе решено. что деградации нет или она незначительна.
Ошибкой не считается."
10. iolko 346 21.08.25 03:34 Сейчас в теме
(9) Ну что тут сказать, возможно, на каких-то объемах проблемы нет, но с нашими - они возникли..
По этому: хочешь сделать хорошо - сделай сам, как обычно
Для отправки сообщения требуется регистрация/авторизация