1с константа получить ошибка
Как в любом языке программирования, в платформе 1С есть предопределенные методы, которые облегчают жизнь разработчикам. Но выполнение этих команд требует правильного соблюдения синтаксиса языка программирования.
Самые распространенные ошибки при вызове типовых методов:
- Записать
- Создать
- Подключиться
- Connect
- ПроверитьВывод
- PreviewFile1C
- Прочитать
- Выполнить
- ВыполнитьПакет
- ПрочитатьИзменения
Рассмотрим пример. Мы программно создали запрос (справочник по запросам), передав в параметры «текст» вот такой фрагмент:
: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
<(13, 4)>: Синтаксическая ошибка
И >
Рассмотрим еще один пример:
Получите понятные самоучители по 1С бесплатно:
Перенесем ошибочный код в обработчик «ПередЗаписью» справочника «Версии программ» и попробуем записать справочник программно. Видим ошибку:
: Ошибка при вызове метода контекста (Записать)
Выборка.ПолучитьОбъект().Записать();
по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
<(13, 4)>: Синтаксическая ошибка
И >
Несмотря на то, что ошибка заключается в выполнения метода «Выполнить», система ругается и на строчку кода, где вызывается программная запись объекта.
Решение проблемы
Для решения проблемы достаточно понять, в чем именно заключается ошибка. В 99% случаев проблема решается банальным чтением справки и анализом проблемы.
Для того чтобы узнать, как пользоваться тем или иным методом, достаточно установить курсор на интересующей Вас функции и нажать «Ctrl + F1». Платформа 1С выдаст Вам контекстную подсказку по требуемому методу:
Проверьте параметры, передаваемые в функцию, и правильность её использования.
Другие статьи по 1С:
Константы 1С 8.3 — это объект метаданных, который хранит в себе редко изменяющуюся информацию.
Как правило, в константах хранят информацию о настройках системы. Например: валюта регламентированного учета, заголовок системы, значения для функциональных опций и т.д.
Разберем основные свойства, настройки и особенности технической реализации констант в 1С на уровне СУБД.
Свойства и настройка константы в 1С
У менеджера объекта две основных функции в программном коде:
- Константы..Получить(); — получение текущего значения константы;
- Константы..Установить(); — установка нового значения константы.
Рассмотрим основные свойства палитры свойств объекта метаданных — константа:
- Тип — тип константы ничем не ограничен.
- Модуль менеджера значения — модуль константы, в котором описываются следующие обработчики: ОбработкаПроверкиЗаполнения, ПередЗаписью, ПриЗаписи.
- Режим управления блокировкой данных — управляемый или автоматический режим блокировок 1С.
- Использовать стандартные команды — флаг, отвечающий за использование стандартного отображения команды на интерфейсе конфигурации. Часто этот флаг может стать ответом на вопрос — Почему не отображается константа в интерфейсе?
- Основная форма — форма из списка общих форм, которая установлена как основная для редактирования значения константы.
Видео по созданию и использованию констант:
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Особенности реализации констант на уровне СУБД и 1С
Особенности условно можно разделить на два типа по версиям платформы 1С:
- до релиза 8.2.14 — все константы в системе хранились в одной таблице. При изменении одной записи блокируется вся таблица. Необходимо быть очень аккуратным при использовании этого объекта метаданных;
- после релиза 8.2.14 — для каждой константы сделали свою таблицу. Параллельность работы повысилась.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Константы: разбираем ошибки
Начиная с версии 7.х Платформа 1С поддерживает такой вид метаданных, как константы. Данный объект предназначен для хранения не изменяющейся, либо редко изменяющейся информации. В типовых решениях, например, константы применяются для хранения имени организации или компании, для которой организован учет. В данной статье будет рассказано о наиболее часто встречающихся ошибок, которые допускают разработчики при использования данного класса объектов.
Проблема
То, что константы используются для хранения редко изменяющейся информации, сказано не просто так. Суть в том, что в ДБ каждая константа предствалена отдельной таблице с одной записью. Имя таблицы начинается с "_Const". А состав и количество колонок определяется тем типов значения, которое указано для данной константы. Для более наглядного представления приведем скриншот хранения таблиц констант в базе SQL.
Таким образом при попытке редактирования константы, полностью блокируется вся таблица (д о версии платформы 8.2.11 при попытке изменить константу, блокировались польностью вся таблица констант, начиная со следующей версии блокируется только одна таблица. Это связано с тем, что с этой версии изменился способ хранения констант в базе. Ранее они хранились все в одной таблице в единственной строке ). И если одну константу будут пытаться редактировать два или более пользователей, то сможет это сделать только один, для остальных же возникнет ошибка блокировки данных. После определенное интервала времени у процесса, ожидающего снятие блокировки, возникнет ошибка ожидания блокировки.
Этот интервал времени, называемый "таймаут блокировки", настраивается в свойствах ИБ. Для его изменения в конфигураторе откройте "Параметры информационной базы" из меню "Администрирование". Параметр называется "Время ожидания блокировки данных".
Мы видим, что неправильное использование констант может значительно сказаться на производительность работы пользователей, так как будут происходить постоянные ожидания на блокировках.
Исправляем ситуацию
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора
Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной
Рис.3 Синтакс-помощник
Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает
Чаще всего причиной подобных ошибок выступают следующие факторы:
- Невнимательность;
- Отсутствие опыта или знаний;
- Несогласованность действий разработчиков друг с другом;
- Изменения в методах контекста в новых версиях платформы.
Читайте также: