При изучении основ разработки в системе «1С:Предприятие 8.3», особенно при прохождении известного обучающего курса М.Г. Радченко, начинающие программисты часто сталкиваются с досадной ошибкой при написании кода для проведения документов. Система выдает сообщение: «Переменная не определена (ПланыСчетов)». Ситуация осложняется тем, что визуально объект в конфигурации существует, он правильно назван, а код написан в точном соответствии с учебником. Рассмотрим подробно, почему это происходит и как настроить рабочую среду корректно.
Разберем типичную ситуацию. В модуле объекта документа (например, ПриходнаяНакладная) в процедуре ОбработкаПроведения создается программный код для записи движений в регистр бухгалтерии. Код выглядит стандартно:
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Основной.Товары;
Движение.СчетКт = ПланыСчетов.Основной.РасчетыСПоставщиками;
Движение.Период = Дата;
При попытке проверки этого кода (кнопка F7 или синтакс-контроль) система выдает критическую ошибку в строках, где идет обращение к объекту ПланыСчетов. Выясним причину. В современных версиях платформы 1С по умолчанию могут быть включены расширенные режимы проверки кода, которые эмулируют работу системы не только на персональном компьютере, но и на мобильных устройствах. Важно понимать: механизмы бухгалтерского учета (планы счетов и регистры бухгалтерии) не поддерживаются мобильной платформой 1С.
Если конфигуратор пытается проверить ваш код на совместимость с мобильным сервером, он закономерно сообщает, что такой переменной, как ПланыСчетов, в контексте мобильного приложения просто не существует.
Это самое частое решение, которое помогает в 90% случаев при прохождении уроков. Нам необходимо указать конфигуратору, для каких именно режимов работы приложения следует проверять синтаксис. Проанализируем шаги по настройке:
Если изменение настроек проверки не помогло или вы хотите полностью исключить конфликты с мобильной платформой, проверим свойства самого корня конфигурации. Рассмотрим ситуацию подробнее:
Щелкнем правой кнопкой мыши на самом верхнем элементе в дереве метаданных (название вашей конфигурации) и выберем пункт Свойства. В открывшейся панели найдем свойство «Назначение использования». Если там установлены флажки одновременно на «Приложение для ПК» и «Мобильное приложение», платформа будет требовать универсальности кода. В рамках обучения бухгалтерскому учету по Радченко рекомендуется снять флажок с мобильного приложения, так как учебная конфигурация на это не рассчитана.
Иногда ошибка «Переменная не определена» может указывать не на сам менеджер ПланыСчетов, а на конкретный счет (например, ПланыСчетов.Основной.Товары — ошибка может быть в слове «Товары»). Выясним, как это проверить:
В объекте ПланСчетов.Основной необходимо перейти на закладку Прочее и нажать кнопку Предопределенные. Здесь должны быть созданы элементы. Важно убедиться, что в колонке «Имя» (не «Код» и не «Наименование») указано именно то слово, которое вы используете в коде. Если в коде написано Товары, а в конфигураторе имя счета — Товар (в единственном числе), система выдаст ошибку неопределенной переменной.
Помимо настроек проверки, при работе с регистром Управленческий часто возникают другие сопутствующие сложности. Разберем их, чтобы ваше занятие прошло успешно:
Движение.СчетДт вы получите ошибку, так как у некорреспондирующего регистра есть только одно общее поле Счет.Основной. Без этой связки программное обращение к счетам через движения регистра будет выдавать ошибки типов данных.ПланыСчетов доступно только на сервере. Поскольку процедура ОбработкаПроведения в модуле объекта документа всегда выполняется на сервере, здесь проблем быть не должно. Однако, если вы попытаетесь обратиться к плану счетов напрямую в модуле формы под директивой &НаКлиенте, система снова выдаст ошибку, так как менеджеры объектов недоступны на стороне клиента.Подводя итог, можно сказать, что обучение разработке в 1С требует внимания не только к коду, но и к настройкам самой среды разработки. Отключение проверок для мобильных платформ — это стандартная практика при разработке классических настольных решений, использующих сложные механизмы учета. Следуя этим инструкциям, вы успешно завершите 16 занятие и сможете двигаться дальше по программе курса.