Переход ERP 2.5 на 2.6, часть 2: что на самом деле удалили в 2.6.1 и 2.6.2
Что 1С написала про удаление
В первой части я проверял, что сломается в наших доработках при переходе ERP 2.5.27 на 2.6.1, и пообещал разобраться, что в 2.6.1 удалили на самом деле. Пока разбирался, вышла 2.6.2.59, так что смотрел уже на три версии.
Сначала прочитал официальные описания на ИТС, в "Новое в версии 2.6.1.47" про удаление всего несколько фраз. Офлайн-взаиморасчёты удалены. Удалены устаревшие объекты конфигурации и неактуальные обработчики обновления, без списка. Создание новых цепочек документов по устаревшей функциональности ограничено, а старые цепочки надо закрыть или отменить к 2.6.2.
В "Новое в версии 2.6.2.59" про устаревшее одна фраза: "Создание новых документов, относящихся к устаревшей функциональности, не допускается". Каких именно документов, не сказано. Ещё там есть принудительный переход с контроля лимитов 2.4 на 2.5, вынос механизмов перехода с других конфигураций в отдельное расширение и отказ от выбора режима ограничения доступа на уровне записей (RLS).
Для пользователя этого, наверное, хватает. Разработчику нужен список, поэтому я сравнил выгрузки трёх версий целиком. В 2.6.1 удалено 850 экспортных методов, в 2.6.2 ещё 205, и поимённо на ИТС не назван ни один. Создавать нельзя 18 документов. А в 2.6.2 у 9 329 типовых процедур поменялся текст, хотя у 5 593 из них поменялся только английский перевод.
Как сравнивал
Сравнивал три выгрузки в файлы, сделанные одной платформой 8.3.27: ERP 2.5.27.88, 2.6.1.70 и 2.6.2.59. Все три чистые, без доработок.
Объекты и реквизиты я сопоставлял по внутренним идентификаторам, поэтому переименование не путается с удалением. Тексты процедур сравнивал вместе со строками и текстами запросов, но без комментариев, как это делает платформа при проверке применимости расширений. Запреты на создание документов искал в коде ПередЗаписью, где после условия с ЭтоНовый() сразу стоит исключение.
Двенадцать механизмов, из них удалены два
Форма готовности к переходу в 2.5.27 проверяет двенадцать механизмов, от которых 1С отказывается. Я ожидал, что в 2.6.1 их начнут удалять один за другим. Вышло иначе.

Целиком в 2.6.1 удалили только офлайн-взаиморасчёты. Это 31 объект, и среди них одиннадцать отчётов, в том числе ДебиторскаяЗадолженность, КредиторскаяЗадолженность и РасчетыСКлиентами. Ещё ушли константы и функциональные опции, которыми переключалась архитектура расчётов, общий модуль РаспределениеВзаиморасчетовВызовСервера и регламентное задание. Свои варианты этих отчётов и расширения, которые их дорабатывают, на 2.6.1 работать перестанут. В 2.6.2 удалили контроль лимитов 2.4, а при обновлении учёт сам переходит на контроль лимитов 2.5.
Производство 2.1, давальческое сырьё и переработку 2.4 не удалили. Их документы, регистры и отчёты на месте, а новые документы создавать постепенно запрещают. Зато в 2.6.1 выпилили обработку перехода с производства 2.1 на 2.2 и помощник перехода комиссионных продаж на 2.5. Выходит, помощники для перевода учёта остались только в 2.5.27, и пользоваться ими надо до обновления. Объекты остальных механизмов, от маршрутных карт до единого документа ввода остатков, в 2.6.2 тоже на месте. Всего объектов устаревших механизмов в 2.6.2 ещё 147, и по плану 1С вести на них учёт станет нельзя в 2.6.3.
18 документов, которые нельзя создать
Запрет устроен одинаково. В ПередЗаписью документа стоит проверка, и если документ новый, запись прерывается исключением. Для производства 2.1 текст такой:
Функциональность "Управление производством 2.1" устарела.
Создание новых документов запрещено.
Необходимо перейти на "Управление производством 2.2".
Старые документы открываются и правятся, ИТС прямо говорит, что изменение существующих документов доступно, если надо поправить ошибки. А вот любая доработка, которая создаёт такой документ кодом, на записи упадёт.

В 2.6.1 запретили 6 документов, причём три из них с условием. Выпуск продукции и передачу материалов в производство можно было оформлять только по распоряжению, передачу сырья переработчику только по заказу. В 2.6.2 с этих трёх условия сняли и добавили ещё двенадцать документов, три из них снова с условием.
Два запрета меня удивили. Заказ на производство 2.2 и этап производства 2.2 относятся к новому механизму, но в 2.6.2 их тоже нельзя создать, если в них стоит операция производства из давальческого сырья. А заказ материалов в производство можно создать только для производства 2.2. Если у вас есть обработки, которые создают эти документы, их надо проверить, даже если вы давно на 2.2.
Удалено сверх плана
Считал я экспортные методы общих модулей, модулей менеджеров и модулей объектов, вместе с теми, что ушли с удалёнными объектами. Именно их вызывают доработки.

В 2.6.1 сверх плана удалено 709 методов, и почти две трети из них составляют обработчики обновления данных из модулей менеджеров справочников, документов и регистров. Это те самые неактуальные обработчики, про которые пишет ИТС. Обновиться на 2.6.1 можно только с 2.5.27, и свою работу они к этому времени уже сделали.
Остальные методы разбросаны по всей конфигурации, и сильнее всего досталось неоперативной очереди заданий. ИТС пишет, что принципы работы оперативной и неоперативной очередей объединили. На деле общий модуль НеоперативнаяОчередьЗаданий переписали. От прежних 35 экспортных методов в 2.6.1 осталось девять, зато появилась полсотня новых. Часть старых переехала в новый общий модуль ДопроведениеДокументовСервер, часть заменили другими методами, а у двух убрали Экспорт, и снаружи их больше не вызвать. Если ваш код сам выполнял задания очереди по списку документов, вызов придётся поменять. Вот как он выглядит в типовом модуле АктВыполненныхРаботЛокализация:
// 2.5.27
НеоперативнаяОчередьЗаданий.ВыполнитьЗаданияНеоперативнойОчередиПоСпискуДокументов(МассивДокументов,
Справочники.ВидыНеоперативныхЗаданий.АктуализацияДвиженийПоФинансовымРегистрам);
// 2.6.1
НеоперативнаяОчередьЗаданий.ВыполнитьЗаданияПоДокументамОднопоточно(МассивДокументов,
Справочники.ВидыНеоперативныхЗаданий.АктуализацияДвиженийПоФинансовымРегистрам);
Старый метод в 2.5.27 вызывался из двух с лишним десятков типовых модулей, и почти везде его заменили новым. Второй параметр у нового метода называется ВидыЗаданий и принимает как один вид задания, так и список.
Остальное мельче и разбросано от интеграции с маркетплейсами до регламентированных уведомлений. Удалили и саму обработку "Готовность к переходу на редакцию 2.6 (11.6)", после перехода она не нужна.
В 2.6.2 сверх плана удалено 196 экспортных методов, и больше трети из них приходится на обработку УниверсальныйОбменДаннымиXML. Её удалили вместе с помощником перехода с других конфигураций. По словам ИТС, ради безопасности механизмы перехода вынесли в отдельное расширение, которое скачивается с сайта обновлений 1С, и перенесли туда обработки загрузки в ERP. Если ваш обмен или загрузка завязаны на УниверсальныйОбменДаннымиXML, проверьте, есть ли эта обработка в расширении 1С, или переносите логику к себе. Ещё 22 метода убрали из модуля РегламентированнаяОтчетностьУП и шесть из УчетУСНПСНСервер.
Переименовали тихо
Удаление хотя бы видно сразу. С переименованием хуже, потому что объект на месте, а обращение по старому имени перестаёт работать. В 2.6.2 я нашёл такие случаи:
- у заказов клиентов, заказов поставщикам и заявок на возврат товаров от клиентов форму ФормаСпискаДокументов переименовали в ФормаСписка, а прежнюю ФормаСписка удалили. Расширение, которое заимствует любую из этих форм, не применится;
- значение Арендованное перечисления ВидыИмущества стало ЗаБалансом, а у вариантов выбытия маркируемой продукции переименованы два значения;
- ресурс ЗалоговаяСтоимость регистра СтоимостьОС стал СтоимостьЗаБалансомРегл;
- общая команда ОбменСWildberries стала ПродажиНаWildberries.
Самое коварное изменение в печати счетов-фактур. ИТС пишет про печать универсального передаточного документа (УПД) в валюте, валюту теперь определяет сам счёт-фактура. А из метода ПолучитьСчетаФактурыНаПечать убрали параметр ПечатьВВалюте, причём из середины списка. Типовая печать в 2.5.27 и 2.6.1 вызывает метод одинаково, а в 2.6.2 уже иначе:
// 2.5.27 и 2.6.1
РезультатАнализа = Документы.СчетФактураВыданный.ПолучитьСчетаФактурыНаПечать(
ОснованияНаРеализацию, ,
ПараметрыПечати.ПечатьВВалюте, Перевыставленный);
// 2.6.2
РезультатАнализа = Документы.СчетФактураВыданный.ПолучитьСчетаФактурыНаПечать(
ОснованияНаРеализацию, , Перевыставленный);
Если ваша печатная форма скопировала старый вызов целиком, на 2.6.2 она упадёт, потому что параметров стало меньше. А если вызов передавал только первые три аргумента, он не упадёт. Признак печати в валюте молча уйдёт в параметр Перевыставленный.
5 593 процедуры с новым английским текстом
Самая большая цифра 2.6.2 вообще не про удаление. Между 2.6.1 и 2.6.2 поменялся текст у 9 329 типовых процедур. Я разобрал, что именно поменялось, и у 5 593 из них русский текст остался прежним. Поменялась только английская часть строк НСтр. 1С перевела строки, где в английском варианте лежала копия русского, и поправила старые переводы.
// 2.6.1
ТекстСообщения = НСтр("ru = 'Поле ""Организация"" не заполнено.';
|en = 'Поле ""Организация"" не заполнено.'");
// 2.6.2
ТекстСообщения = НСтр("ru = 'Поле ""Организация"" не заполнено.';
|en = 'The ""Company"" field is required.'");
Русскоязычный пользователь разницы не увидит. А перехватчик &ИзменениеИКонтроль на такую процедуру не применится, потому что платформа сравнивает текст вместе со строками. В нашем основном расширении при переходе с 2.6.1 на 2.6.2 перестают применяться 44 перехватчика, и у 20 из них в типовой процедуре поменялись только строки.

Через 2.6.1 или сразу на 2.6.2
Для тех, кто планирует работы, тут есть важная деталь. Если обновляться ступенькой и задержаться на 2.6.1, перехватчики придётся переносить дважды. У нас это 60 перехватчиков на первом шаге и те же 44 на втором, а при переходе с 2.5.27 сразу на 2.6.2 их 78.
С удалёнными методами разница меньше. По шагам их набирается 1 055, а при прямом переходе из методов 2.5.27 пропадает 1 019, потому что часть удалённого в 2.6.1 в 2.6.2 вернули, а часть методов прожила всего одну версию.
Обновление на 2.6.1 и следующие версии 1С поддерживает с 2.5.27. Есть ли готовый файл обновления сразу до нужной вам версии, смотрите в описании релиза. Но если пропустить 2.6.1 можно, доработки выгоднее готовить сразу под 2.6.2.
Где сравнение заканчивается
- Я сравнивал 2.5.27.88, а последняя версия длительной поддержки уже 2.5.27.98. Что 1С успела поменять в 2.5.27 после 88-й сборки, в эти цифры не попало.
- Объект, которому дали префикс "Удалить", я считаю переименованным к удалению. Данные в нём остались для переноса, но обращаться к нему уже нельзя.
- Запрет создания я нахожу только по шаблону в ПередЗаписью. Если 1С запретит документ в форме или в обработке заполнения, так его не найти.
- Формы и макеты я сравнивал по наличию и именам, а не по содержимому.
Итог
ИТС описывает, от чего уходит 1С. Это офлайн-взаиморасчёты, старое производство, давальческая схема и переработка 2.4. Списка того, что сломается в коде, там нет и, видимо, не будет. Он есть только в выгрузках, и это больше тысячи удалённых экспортных методов, 18 запрещённых документов, тихие переименования и тысячи процедур, у которых поменялись одни английские строки.
Из такого сравнения выгрузок у меня выросла внешняя обработка "Проверка расширений и обработок перед переходом на 1С:ERP 2.6". Она проверяет расширения и внешние обработки и для каждой находки пишет, в какой версии место сломается и чем его заменить.
В следующей части разберу офлайн-взаиморасчёты подробно, что от них осталось и на что переходить в доработках.
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.