При выполнении штатного перехода с редакции «Розница 1.0» на переходный релиз «Розница 2.0.1.10» разработчики нередко сталкиваются с критической синтаксической ошибкой при обновлении конфигурации базы данных:
{РегистрНакопления.РасчетыСПоставщиками.МодульНабораЗаписей(3,2)}: Ожидается оператор препроцессора #Область ОбработчикиСобытий
{РегистрНакопления.РасчетыСПоставщиками.МодульНабораЗаписей(137,2)}: Ожидается оператор препроцессора #КонецОбласти
Проанализируем ситуацию, выясним истинную причину возникновения этой неполадки и разберем по шагам, как корректно выполнить переход между редакциями без потери данных.
Выясним причину, по которой конфигуратор выдает ошибку на ключевые слова #Область и #КонецОбласти. Данные директивы препроцессора были реализованы разработчиками фирмы «1С» только начиная с версии платформы 8.3.4 для структурирования и визуальной группировки блоков программного кода в модулях.
Платформа 8.2 (включая финальную сборку 8.2.19.130) в принципе не знает таких инструкций и воспринимает их как синтаксический сбой. Попытка вручную вырезать указанные области из модулей не приведет к успеху: переходная конфигурация 2.0.1.10 и библиотека стандартных подсистем (БСП) спроектированы под механизмы платформы 8.3. В коде используются методы и конструкции, которые платформа 8.2 физически не способна исполнить. Таким образом, переходная база должна работать исключительно на платформе 8.3.
Многие специалисты пытаются перевести базу на платформу 8.3 и сталкиваются с еще большим количеством ошибок во время первого запуска. Разберем ключевые нюансы, из-за которых это происходит, и способы их устранения:
2.0.1.х создавались во времена версий платформы 8.3.6–8.3.8. Начиная с релиза 8.3.9 разработчики платформы существенно ужесточили проверки синтаксиса, контроль типов и безопасность работы с временными таблицами. При конвертации на платформе 8.3.9 и выше всплывают внутренние ошибки старого кода БСП. Оптимальный вариант — выполнять первоначальную конвертацию на платформе ветки 8.3.8 (например, 8.3.8.2197).Рассмотрим подробнее регламент перехода на новую редакцию:
Тестирование и исправление информационной базы. Обязательно отмечаем пункты проверки логической и ссылочной целостности, а также пересчет итогов регистров накопления и сведений..dt перед выполнением любых деструктивных действий.
/RunModeManaged
2.0.1.10 и выполняем обновление конфигурации базы данных (клавиша F7).Если база «Розница 1.0» велась много лет, имела нетиповые доработки или накопила ошибки в регистрах движений, сквозное обновление через релиз 2.0.1.10 может оказаться неоправданно трудоемким. В таких ситуациях надежнее применить альтернативный подход:
Номенклатура (с характеристиками, штрихкодами и упаковками), Контрагенты, Магазины и Склады.Такой способ гарантирует отсутствие скрытых ошибок старых регистров и позволяет начать работу в новой редакции с чистой базой.