Коварство &Вместо: почему «тихое» копирование процедур — это бомба замедленного действия при обновлении 1С

27.05.26

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

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

При обновлении эта сторона в работе ERP особенно опасна: ошибка закрытия месяца

В процессе тестирования закрытия месяца в обновленной базе выполнение операции «Актуализация движений документов по данным взаиморасчетов» прерывалось ошибкой: «Временная таблица уже существует "ВтРучныеКорректировки"»
 



 

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

Слабое звено &Вместо

Для локализации проблемы был применен метод пошаговой отладки процедур закрытия месяца в контексте расширений. Установлено, что в обновленной базе в методе ВзаиморасчетыСервер.Выполнить_ФормированиеДвиженийПоРасчетамСПартнерамиИПереоценкаРасчетов переменная ТребуетсяПереоценка принимает значение Истина, а в базе до обновления  — Ложь:



 

Из-за этого отладка в обновленной базе заходит в цикл “Пока НачалоРасчета <= ПараметрыОбработчика.ПараметрыРасчета.КонецПериода”, а в базе до обновления — нет, но именно в этом цикле и вызывается метод ОперативныеВзаиморасчетыСервер.ИсправитьРазвернутоеСальдо, расширенный аннотацией &Вместо, который и содержит ошибку.

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

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

То есть после доработок клиента один метод выполнялся дважды, так как в типовом коде сначала вызывается метод ИсправитьОстаткиВзаиморасчетов, а сразу после ИсправитьРазвернутоеСальдо.

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

Как оказалось, в релизе 1С:ERP 2.5.22.129 в процедуре ИсправитьОстаткиВзаиморасчетов добавили текст уничтожения временной таблицы ВтРучныеКорректировки:





 

После обновления типовой код стал вызывать последовательно сначала актуализированный метод ИсправитьОстаткиВзаиморасчетов, а затем неактуальный расширенный метод ИсправитьРазвернутоеСальдо, в котором текст уничтожения ВТ отсутствует, что и вызывало конфликт имен временных таблиц.

Решение оказалось простым: код метода в расширении был обновлен в соответствии с актуальной типовой логикой ИсправитьОстаткиВзаиморасчетов из релиза 2.5.22.129, с последующим перенесением доработок клиента.



 

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

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

Чек-лист для обновления расширений с аннотациями &Вместо

Прикрепляем краткий чек-лист для обновления расширений 1С с аннотациями &Вместо, в которых расширенные методы являются копиями расширяемых:

  1. Контроль параметров: при обновлении конфигурации-поставщика в целевом методе могут появиться новые параметры, в том числе необязательные. Сверьте количество и состав параметров в расширении и в новой версии типовой конфигурации. Если параметры не совпадут, расширение просто не скомпилируется.
  2. Проверка контекста и экспортности: иногда при рефакторинге 1С переносит методы из одних модулей в другие или меняет признак Экспорт. Убедитесь, что заимствованный метод все еще находится в том же модуле и доступен для расширения.
  3. Анализ изменений в коде: это самое трудоемкое. Поскольку &Вместо полностью подавляет типовой код, вы обязаны знать, что именно изменил вендор внутри этого метода в новом релизе. Сравните текст типового метода «до» и «после» обновления.  Например, если 1С добавила в метод важную проверку или регистрацию в новом регистре сведений, а ваше расширение об этом «не знает» и крутит старую логику — вы получите расхождение в данных.
  4. Поиск альтернатив (Рефакторинг в &ИзменениеИКонтроль): если вы видите, что типовой метод часто меняется, это повод для рефакторинга. Рассмотрите возможность замены &Вместо на аннотацию &ИзменениеИКонтроль. Так платформа сама подсветит вам места изменений в типовом коде при обновлении (через трехстороннее сравнение), и вам не придется вручную выискивать отличия в текстах модулей.

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

обновление 1с 1С:ERP закрытие месяца

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

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

См. также

Обновление 1С Программист 1С 8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

История о том, как один программист чуть не остановил работу всего предприятия на длительное время.

14.06.2026    2909    SVLong    21    

1

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

Релиз 1С часто превращается в ночной аврал: задачи собираются из переписок, внешние обработки забывают проверить, пользователи тестируют “как получится”, а после обновления команда тушит пожары. Разбираем минимальный релизный процесс для 1С-команды: состав релиза, роли, чек-листы, smoke-проверки, коммуникацию с пользователями и разбор ошибок после выпуска.

10.06.2026    456    NikolayMaerov    0    

1

Нейросети Обновление 1С Бесплатно (free)

Когда доработанную 1С не обновляли годами, начинать приходится не с переноса кода, а с разбора того, что вообще накопилось в базе. Там могут быть десятки обработок, расширения, правки типовых объектов, а документации либо нет, либо она давно не актуальна. На примере реального обновления разбираем, как кодовые агенты, MCP-серверы и языковые модели помогают навести порядок в доработках, собрать план миграции, понять, где при переносе будут проблемы, и автоматизировать часть исправлений.

05.06.2026    3533    wonderboy    6    

22

Обновление 1С Обмен с ГосИС Программист 1С 8.3 1С:Управление торговлей 10 Абонемент ($m)

ВАЖНО! Обновление предназначено для технических специалистов! Поддержка формата обмена V2 в локальном модуле ЧЗ. Поддержка формата обмена V2 в модуле ПиоТ. Поддержка многих видов маркируемой продукции.

10 стартмани

04.06.2026    554    12    andrew.ab    3    

2

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

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

1 стартмани

07.05.2026    545    0    gzharkoj    0    

2

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

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

30.04.2026    641    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    934    1c-izh    1    

5

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

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

16.04.2026    859    1c-izh    3    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. unknown181538 167 27.05.26 20:06 Сейчас в теме
Думаю, что это достаточно очевидная проблема. Если конфигурация на замке, то, на мой взгляд, если процедура длинная и потенциально изменяемая поставщиком с большой вероятностью, то лучше сделать комментированное изменение прямо в конфигурации, нежели потратить несколько часов, на поиск "бомбы".
zqzq; papche; Yashazz; Трактор; +4 Ответить
3. Dragonim 155 28.05.26 06:23 Сейчас в теме
(1) А &ИзменениеИКонтроль вас чем не устраивает?
SlavaKron; markw; +2 Ответить
4. markw 28.05.26 09:32 Сейчас в теме
(3)
А &ИзменениеИКонтроль вас чем не устраивает?

Ну, видимо, &Вместо позволяет героически создать трудности, а потом их преодолеть. Или просто был старый кусок, который работал, а потом вот так поломалось всё. Причём и раньше могло не всё работать, просто критических изменений не было, которые не приводили к описанному эффекту.
papche; d4rkmesa; DanilaSpevak; +3 Ответить
7. unknown181538 167 28.05.26 15:44 Сейчас в теме
(4) Я считаю, что вместо использовать целесообразно там, где логика процедуры меняется сильно до неузнаваемости, а изменение способа вызова не ожидается.
8. Dragonim 155 29.05.26 06:27 Сейчас в теме
(7) Когда у меня появляется желание имеющуюся функцию/процедуру изменить до неузнаваемости, я бью себя по рукам и ищу другую точку входа, которая не будет так сильно калечить имеющуюся логику программы.
9. unknown181538 167 29.05.26 20:24 Сейчас в теме
(8) я тоже так делаю. Но иногда не нахожу.
5. Dach 421 28.05.26 13:38 Сейчас в теме
(3) например, у обработчиков элементов форм нет этой директивы
unknown181538; +1 Ответить
6. unknown181538 167 28.05.26 15:42 Сейчас в теме
(3) В некоторых случаях устраивает, я иногда ее использую. Однако, опять же, переносить код при обновлении в конфигурации проще, чем восстанавливать корректность ИзменениеИКонтроль. К тому же, последняя до сих пор нередко глючит.
2. o.nikolaev 217 27.05.26 22:16 Сейчас в теме
Не реклама, но - просто отдайте накатку обновлений типовых мастерам из ИжТиСи и спите спокойно.
user592289_chel; pscorp; 1c-izh; user1805342; +4 1 Ответить
10. Suker86 86 30.05.26 15:47 Сейчас в теме
Когда я обновляю сильно измененную конфигурацию, всегда составляю список изменений по объектам метаданных (в экселе). При сравнении текущей конфигурации я всегда уделяю внимание, не изменена ли функция/процедура в которой &Вместо, если изменена сильно - я копирую её полностью и вношу предыдущие изменения, если незначительно - переношу измененные участки вручную. Это основное правильно, что бы ничего не сломалось.

Кстати, выявить все использования &Вместо можно в функционале "Анализ состава расширения", если интересно ссылка:
Анализ конфигураций, расширений, отчетов и обработок на наличие ошибок (версия 6). Анализ состава расширений.
11. BackinSoda 01.06.26 12:04 Сейчас в теме
По теме: расширения - зло.
Не по теме: Неужели удобно с этими ёлочками и точками на экране, чем обычный белый фон не устраивает ?
12. triviumfan 101 01.06.26 12:28 Сейчас в теме
(11) Это для пробелофобов
unknown181538; +1 Ответить
13. Baronello 30 01.06.26 14:28 Сейчас в теме
(11) Как включил, когда работал у вендора, так и привык. Чем елочки с точками не устраивают?
user1805342; +1 Ответить
14. interforum 01.06.26 15:45 Сейчас в теме
Патчи прилетают с аннотацией &Вместо и могут вырубить функционал расширения.
user1805342; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация