Проверка заполнения в 1С
В этой статье я рассмотрю основные механизмы платформы 1С 8.3, которые обеспечивают проверку заполнения реквизитов.
Проверка заполнения реквизита объекта 1С
У любого реквизита объекта 1С можно настроить проверку заполнения, когда нельзя сохранить новый элемент объекта, не заполнив этот реквизит. Выйдет ошибка.
Для того, чтобы у реквизита объекта осуществлялась проверка заполнения, достаточно в свойстве реквизита «Проверка заполнения» указать значение «Выдавать ошибку».
При таком конфигурировании реквизита, если это реквизит не заполнен, то при попытке записи элемента, выйдет соответствующая ошибка, и запись элемента не будет осуществлена.
Данная проверка будет осуществляться независимо от того, сгенерирована эта форма платформой 1С 8.3 автоматически, или используется форма созданная разработчиком.
Проверка заполнения табличной части в 1С
Помимо реквизитов у объектов можно проверять заполнение табличной части. Для этого у табличных частей объектов имеется свойство «Проверка заполнения», в которое также необходимо установить значение «Выдавать ошибку».
Если в этом случае мы попытаемся записать элемент, в котором будет табличная часть без строк, то выйдет ошибка, и записать элемент не получится.
В тоже время, мы спокойно сможем записать элемент, у которого имеется строка табличной части с пустыми полями.
Если мы хотим проверять реквизиты табличной части, то у них нужно заполнить аналогичное свойство.
Проверка заполнения программно в 1С
Иногда возникает необходимость проверить программно заполнение объекта в 1С. Для этих целей предназначен метод ПроверитьЗаполнение(), который имеется у большинства объектов 1С (справочники, документы и т. д.).
Например, во время программного создания элемента справочника, мы можем проверить заполнение реквизитов этого справочника, перед его записью.
В этом случае, элемент справочника не будет записан, если у него имеются реквизиты, у которых в свойстве ПроверкаЗаполнения установлено значение «Выдавать ошибку».
Иногда, нужно проверить заполнение реквизита, у которого в свойстве «Проверка заполнения» установлено значение «Не проверять». Например, у реквизита Артикул справочника Номенклатура.
Если нам нужно осуществлять проверку этого реквизита (например, по какой-то определенной логике), то необходимо в модуле объекта создать метод ОбработкаПроверкиЗаполнения.
У этого метода, который является процедурой, имеется параметр ПроверяемыеРеквизиты. Этот параметр массив, в котором содержится список имен реквизитов, которые нужно проверять. Если в этот список мы добавим название реквизита, то при сохранении элемента будет осуществляться проверка на то, заполнен этот реквизит или нет.
Также, мы можем удалить реквизит из проверяемых, если по какой-то причине нет необходимости в проверке заполнения этого реквизита.
Например, удалим из проверяемых реквизит ПолноеНаименование.
Тогда мы сможем спокойно записать элемент с незаполненным реквизитом ПолноеНаименование.
В этом случае, будет осуществляться проверка заполнения реквизита табличной части.
Проверка заполнения формы 1С
Иногда нужно проверить заполнение реквизитов формы. Разберем небольшую задачу: будем на форме умножать два числа друг на друга, если они заполнены. Создадим на форме реквизиты с типом Число — Множитель1, Множитель2 и Сумма. У реквизитов Множитель1 и Множитель2 установим в свойство «Проверка заполнения» значение «Выдавать ошибку».
При выполнении команды Посчитать, произведем расчет только в том случае, если реквизиты заполнены. Проверку заполнения будем выполнять при помощи метода ПроверитьЗаполнение.
Теперь мы не сможем посчитать сумму, если один из множителей не заполнен.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс. Деньги — 410012882996301
Web Money — R955262494655
Преобразование значения к типу Число не может быть выполнено 1С 8.3 — как исправить?
При написании кода 1С или проведения бухгалтерских операций в системе 1С 8.3 и более ранних системах вы можете столкнуться с уведомлением « Преобразование значения к типу Число не может быть выполнено ». Причиной ошибки обычно является попытка программиста преобразовать в число значение, которое числовым быть не может. Ниже разберём суть данной ошибки, а также представим возможные варианты её решения.
Причины ошибки выполнения преобразования значения к типу Число
Обычно данная проблема возникает при запуске кода, выполнении процедуры проверки кода на ошибки или при осуществлении стандартных операцией составления отчётности в системе 1С 8.3 (и ранних системах).
В частности, ошибка фиксировалась в следующих обстоятельствах:
Давайте разберём, как устранить ошибку «Преобразование значения к типу Число не может быть выполнено» в конфигурации 1С 8.3.
Обновите вашу систему 1С до самой актуальной версии
Прежде чем разбирать особенности ошибок в коде 1С, рекомендуем обновить вашу 1С до самой актуальной версии. В некоторых случаях ошибка «преобразование значения к типу число» вызвана устаревшим вариантом системы, на которой специалист пытается вести отчётность. Установите наиболее актуальную версию системы, и рассматриваемая нами ошибка может исчезнуть.
Внимательно проверьте код на наличие переменных
В большинстве случаев рассматриваемая ошибка вызвана невнимательностью программиста, вместо числового значения указавшего не числовое, что не позволяет системе выполнить правильный подсчёт числовых значений. Рекомендуем внимательно проверить создаваемый вами код, найти место в коде вызывающее исключение (ошибку) и пофиксить его.
Например, в примере:
переменная B будет вести к ошибке так как её формат не позволяет системе сложить числовое значение «А» и значение в форме даты. Для решения проблемы замените B на строку: B=5 или аналогичную. В этом случае система выдаст вам корректный результат (в данном случае это будет 8).
Измените первый тип слагаемого на число
В некоторых случаях платформа 1С анализирует тип первого слагаемого числа, обнаруживает строку, вследствие чего может решить, что в данном коде речь идёт о сложении строк, а не необходимых программисту числах. Вследствие этого она пытается выполнить преобразование каждого слагаемого в строку, после чего объединить их как строки.
Для решения проблемы необходимо использовать скобки, позволяя системе вначале выполнить вычисление результата в скобках как суммы чисел, а уже потом преобразовать результат в строку.
К примеру, вместо ошибочной строки:
Сообщить(«Результат: » + 7 + 8 + 9);
Будет необходимо использовать строку:
Сообщить(«Результат: » + (7 + 8 + 9));
Вследствие этого вы получите ожидаемый результат в виде числе 24.
Используйте конфигуратор для нахождения исключения кода
При возникновении ошибки и соответствующего сообщения «Преобразование значения к типу Число не выполнено» в системе 1С 8.3 рекомендуем использовать конфигуратор для нахождения кода. Последний способен в режиме отладки определить и указать на ошибку.
Порядок действий в этом случае будет следующим:
Переиндексируйте ваши файлы
В некоторых редких случаях исправить ошибку «Преобразование значения к типу Число» может помочь переиндексация ваших файлов. Для версии 1С 8.3 стоит использовать файл chdbfl. exe, запускающий переиндексацию. Обычно данный файл находится по пути C:\Program Files (x86) \1cv8\8.3ХХХ\bin. Вместо ХХХ у вас могут находиться указатели вашей версии продукта.
Запустите данный файл, укажите имя файла для проверки, поставьте галочку рядом с опцией «Исправлять обнаруженные ошибки», после чего нажмите на «Выполнить внизу». Дождитесь завершения процедуры проверки и исправления, после чего вновь попробуйте выполнить необходимые операции.
Используйте функцию «Есть NULL»
Если выскакивает ошибка, то иногда одна из задействуемых переменных может принимать значение NULL. Для исправления ошибки рекомендуется использовать функцию «ЕСТЬNULL» (переменная, 0), что позволит устранить рассматриваемую в статье проблему.
Заключение
В нашем материале мы рассмотрели причины появления уведомления «Преобразование значения к типу Число не может быть выполнено» в версии системы 1С 8.3, и как исправить возникшую проблему. Поскольку фактором ошибки обычно выступает невнимательность программиста, внимательно изучите ваш код на наличие нечисловой переменной, часто используемой в арифметическом уравнении. Замена данной переменной на числовую, а также выполнение других перечисленных нами советов поможет устранить рассмотренную нами ошибку в вашей системе.
https://www.1s-up. ru/proverka-zapolnenija-v-1s/
https://rusadmin. biz/oshibki/preobrazovanie-k-tipu-chislo-ne-vypolneno-1c-8-3/