Все давно свыклись, что в компании 1С при разработке платформы очень вольно обходятся с обратной совместимостью:
♦️ то базовую строковую функцию поиска переименовали с Найти() на СтрНайти() при переходе с 8.3.5 на 8.3.6
♦️ то проверка доступа РольДоступна() начинает Исключение выдавать вместо Ложь при проверке на несуществующую роль (например, из расширения) при переходе с 8.3.3 на 8.3.4
♦️ то периодическая смена англоязычных наименований почти в каждой версии - самое свежее было с ОписаниеОповещения которая при переходе с 8.3.23 на 8.3.24 переименовалась с NotifyDescription на CallbackDescription
... и множество других подобных ситуаций, из-за которых иногда нужно тотально переписывать код модулей 🤦
Но есть коварное исключение!
В ранних версиях 8.3.1 и 8.3.2 для полей ввода был реализован метод НачалоВыбораИзСписка, чтобы иметь возможность до показа списка выбора заполнить значения согласно бизнес-логике. Но уже для версии 8.3.3 методологи 1С передумали. Цитата с ИТС:
В "1С:Предприятии 8.3" у поля ввода не вызывается НачалоВыбораИзСписка. Это связано с <оправдание>. Подробнее см. документацию "Руководство разработчика".
Для устранения несовместимости необходимо найти поля ввода с обработчиком НачалоВыбораИзСписка и перенести его код в другие обработчики согласно критериям:
🔸 код по добавлению элементов в список выбора следует разместить в обработчике формы ПриСозданииНаСервере. Кроме того, если состав списка выбора зависит от значений других полей, то код по изменению элементов списка выбора следует вызывать в обработчиках изменения соответствующих полей, например при помощи обработчиков ПриИзменении;
🔸 реализацию кода, не связанного с заполнением списка выбора, необходимо пересмотреть с использованием тех средств, которые предоставляет платформа "1С:Предприятие" версии 8.3.3.
Казалось бы один из многих случаев и событие не стоит внимания; тем более, что до версии 8.3.5 релиз обоснованно считался сырым и подавляющее большинство пользователей продолжали работать на 8.2. Но именно тут разработчики решили "пойти на встречу общественности" и с целью обратной совместимости оставили в палитре свойств неработающее событие НачалоВыбораИзСписка (BeginListSelection), которое доступно на абсолютно всех версиях 8.3.* в Конфигураторе и в ЕДТ.
Недавно мне нужно было как раз ограничивать список выбора согласно выбранного типа операции, вида договора и еще пары параметров (все проверки на клиенте без вызова сервера) - больше часа ушло на понимание, что это не у меня руки кривые, а это такая шутка от разработчиков платформы. Обсудил с коллегами - оказалось, что и они периодически наступают на эти же грабли 🤕