Коротко по сути: подписки на события для одинаковых источников и действия выполняются в порядке размещения подписок в конфигураторе сверху вниз. Т.е. если для документа Реализация товаров в конфигурации есть две подписки на событие ПриЗаписи, то в начале выполнится та, которая расположена выше. При этом если в типовой конфигурации есть добавленные свои подписки, то при обновлении конфигурации на новый релиз поставщика, может измениться порядок размещения объектов и добавленные подписки могут "съехать" выше типовых. Если в конфигурации есть типовая подписка на это же событие с этим же источником, то может измениться и порядок вызова типовой и добавленной подписки, что может привести к изменению логики работы.
Собственно сабж, обновил доработанную базу Бухгалтерия 3.0, всё проверил, пересмотрел, всё правильно. Порадовался и спать. Добавленные модули и подписки даже не посмотрел, что там может случиться? :)
А случиться, оказывается, может, слетела доработанная нумерация счетов-фактур и реализаций. (Префиксы должны формироваться по дате, что б была сквозная нумерация за каждый день: 161011-0001, 161011-0002 и тд,)
Начал разбираться, оказалось, что добавленная подписка на событие ПриУстановкеНовогоНомера съехала вверх и оказалась выше типовой подписки ПриУстановкеНовогоНомера, которая формирует префикс по узлу обмена и организации. В итоге в начале запускалась доработанная подписка, а потом типовая добавляла стандартный префикс, получался номер типа ОРИБ-161011, дальше не хватает символов, ошибка не уникального номера и тд.
Вывод: Если в конфигурации есть добавленные подписки на события, то надо после обновления проверять порядок следования подписок и возвращать добавленные подписки на своё место, что б порядок их выполнения не повлиял на алгоритм работы.
Я при обновлениях ноу хау никогда не использовал, всегда действовал вручную несколько часов, сливая новый код вендора со старыми изменениями. Почитал тут статью "Использование нейросети для обновления расширений 1С: GPT, Git и анализ эффективности на 33 реальных проектах", ну и времени всегда мало, приходится искать варианты, как сделать, чтобы его было достаточно. Мое мнение в том, что методы 1С по тысячам строк, которые приходится лопатить, сначала дорабатывать а потом обновлять, плохо влияют на здоровье, интерес к различным средствам автоматизации процесса обновлений у меня очень высок. Делюсь своими потугами после первого применения. Вывод - ИИ оказался полезным. Простые случаи выгоднее обновлять ручным слиянием традиционно так как ИИ как такси, на обновлениях жрет очень много контекста. Для сложных, которые жрут не меньше, но убивают больше нервов, нашаманил скилл. Описываю процесс, подробно обо всем понемногу. Возможно, у Вас получится лучше, я торопился.
К нам на проект сложного обновления пришла конфигурация «1С:ERP УХ» с доработанным отчетом, построенным на базе типового «Задолженность поставщикам по срокам». После обновления целевая форма открывалась без учета переданных данных.
На проекте сложного обновления 1С:ERP 2.4.14.181 до версии 2.5.22.106 нам было нужно уложить обновление в технологическое окно 48 часов (выходные). Исходный замер, с учетом промежуточных релизов 2.5.8.443, 2.5.12.270, 2.5.17.234, 2.5.22.106, показал требуемое время в 659 часов…
Обновление ролей в расширении 1С отличается от аналогичного процесса в основной конфигурации. Ситуация осложняется, когда доработки вносятся не в «обычное», а в поставляемое расширение.
Внешняя обработка для проверки методов расширений с директивами &Вместо, &Перед, &После и &ИзменениеИКонтроль после обновления типовой конфигурации.
Обработка анализирует файловые выгрузки старой и новой конфигурации, автоматически определяет изменившиеся типовые методы и формирует список методов расширения, требующих проверки.
Делюсь практикой переноса доработок при обновлении 1С:КА с 2.5.22 на 2.5.27 с помощью Claude, подключённого к конфигурации в EDT через MCP. Что у ИИ получилось хорошо, где он бессилен, что он осознанно отказался переносить — и какой главный вывод я сделал для следующего раза.
Когда доработанную 1С не обновляли годами, начинать приходится не с переноса кода, а с разбора того, что вообще накопилось в базе. Там могут быть десятки обработок, расширения, правки типовых объектов, а документации либо нет, либо она давно не актуальна. На примере реального обновления разбираем, как кодовые агенты, MCP-серверы и языковые модели помогают навести порядок в доработках, собрать план миграции, понять, где при переносе будут проблемы, и автоматизировать часть исправлений.
ВАЖНО! Обновление предназначено для технических специалистов!
Поддержка формата обмена V2 в локальном модуле ЧЗ.
Поддержка формата обмена V2 в модуле ПиоТ.
Поддержка многих видов маркируемой продукции.
(1) qwinter, на практике выполняются сверху вниз, я не встречал ситуации, чтобы было иначе. Но разработчики однозначно говорят, что ориентироваться на этот порядок нельзя и что "Подписки могут выполняться в любом порядке".
(1) qwinter, где-то для 8.2 видел видел информацию, что по порядку, сейчас говорят, что в любом порядке, но на деле ни разу не сталкивался, что б не в порядке в конфигурации вызывались. Видимо не хотят отвечать, в случае изменений в алгоритмах платформы. :)) Описанная ошибка в частности это подтверждает, изменение порядка в конфигураторе, приводит к изменению порядка вызова. (платформа 8.3.8.2054)
Еще момент, что подписки с источником общего типа ДокументОбъект, СправочникОбъект выполняются позже, чем с источником конкретного типа, даже если он составной.
Еще момент, что подписки с источником общего типа ДокументОбъект, СправочникОбъект выполняются позже, чем с источником конкретного типа, даже если он составной.
(1) qwinter, раньше, может, выполнялись в произвольном порядке. Проблему, решенную автором, подтверждаю - месяц назад подобную исправил. Решил точно переносом своей подписки в конец всех подписок.
А случиться, оказывается, может, слетела доработанная нумерация счетов-фактур и реализаций. (Префиксы должны формироваться по дате, что б была сквозная нумерация за каждый день: 161011-0001, 161011-0002 и тд,)
И как налоговая относится к такой нумерации? Бухи какую только ерунду не придумывают :)
(5) Armando, ну для разработок с "нуля" - однозначно, а при доработке типовых конфигураций, не всегда целесообразно ради небольших доработок вносить изменения в типовой функционал, особенно в Бухгалтерии, которая требует регулярного обновления.
А не проще ли не нужные подписки просто отключать?. Ну и естественно при обновлении прослеживать "новинки".
И если честно такая нумерация меня тоже удивила: вроде как она должна быть сквозной в пределах года.
(8) lvictor58, А как их отключать без внесения изменений в типовой функционал? Если типовой документ вызывает типовую подписку? И в данной конкретной задаче типовая тоже нужна, только для всех остальных документов кроме реализации и СФ. Если отключить эти два документа из составного типа, то ОЧЕНЬ не удобно будет обновлять..
Про нумерацию точно не скажу, не юрист, но уже не первый раз сталкиваюсь с такой. Очень удобно когда заносятся документы и текущим и задним числом. Что налоговая про это говорит, не знаю, но по моей информации это допустимо, нужно оформить только соответствующий приказ и возможно в учетной политике внести изменения.