Преобразование значения к типу дата не может быть выполнено списание с расчетного счета

Обновлено: 25.04.2024

Внутренняя ошибка "Преобразование значения к типу Дата не может быть выполнено"
1С.8.2 / При загрузке Выписки из казначейства в Документ Кассовые выбытия происходит ошибка, на.

Преобразование значения к типу Число не может быть выполнено
Процедура КоманднаяПанельТабличногоДокументаСохранить(Кнопка) ДиалогВыбораФайла = Новый.

Преобразование значения к типу число не может быть выполнено (1с 8.3)
В документе, если цену указываешь в ручную, то всё работает, если ссылаешься на справочник, либо на.

Преобразование значения к типу Число не может быть выполнено
Здраствуйте выполнял работу по книжке. В конфигураторе всё настроено правильно,написал код кнопки.

Период = Выборка2.Период; что у вас тут возвращает? Может не дата?
Вам бы в выборке сделать выбор даты: ПродажиПоДисконтнымКартам.ДисконтнаяКарта.Дата Как Дата
А потом Период = Выборка2.Дата. Тогда и ошибки не будет точно

LIDENBROCK, что отладчик показывает вам? Это первое, второе, почему период получаем в йикле, а за циклом с ним работаем?

Если Период действительно может быть NULL, то 0 - это явно НЕ дата
И, так понял, первым запросом вам надо получить последнюю дату использования конкретной диск карты.
Тогда лучше
ВЫБРАТЬ первые 1
ПродажиПоДисконтнымКартам.Период КАК Период
. ..
УПОРЯДОЧИТЬ ПО
ПродажиПоДисконтнымКартам.Период Убыв

Добавлено через 7 минут
Понял. ЕстьNULL у вас присутствует, потому что по карте могло не быть продаж. Тогда надо ставить какое-то условие проверки на 0 перед

polax, что если там несколько одинаковых дат. И как мне записать на выборку первого!?

Добавлено через 6 минут
polax, Дело в том что мне нужно выбрать последнюю дату когда была совершена покупка по карте, ЕстьNULL - я пытался проверить на наличие, его можно убрать. Может мне убрать из цикла " Период = Выборка2.Период; " ?

LIDENBROCK, А как вы берете МАКСИМУМ в таком случае? Период - только дата без времени? Берите не реальную таблицу регистра накоплений а виртуальную и установите период секунда по нему порядок с убыванием. Получите самую последнюю запись

Добавлено через 1 минуту
LIDENBROCK, Уберете и как определите период?

Добавлено через 39 секунд

Все, уезжаю на работу вызвали )))

Преобразование значения к типу Булево не может быть выполнено
Подскажите в чем проблема, и как ее решить При начислении заработной платы, когда нажимаю.

Преобразование значения к типу Число не может быть выполнено
Помогите пожалуйста не могу понять в чем проблема, выбивает ошибку "Преобразование значения к типу.

Добрый вечер, Татьяна!
У вас ошибка связана с тем, что при обработке программного кода из передаваемых в алгоритм 1С данных, программа получает, по всей видимости, для поля типа «Дата» значение типа NULL или Неопределено.

Поскольку ситуация повторяется с разными документами, предположу, что дело в заполнении каких-то регистров по функции, вынесенной в общий модуль 1С. В пользу этого говорит, что ошибка возникает именно при проведении документов, если я вас правильно поняла.

Ошибка Преобразование значения типа Дата не может быть выбрано говорит, что внутри базы могут быть, например, «битые» ссылки, если некорректно удаляли какие-то данные или прошло некорректно обновление.
Так часто бывает, когда обновляются нетиповые, а измененные базы 1С.

Поэтому в этом случае могу просто описать, как бы я действовала в этом случае:

1. В документе, где фиксируется ошибка, например, Больничный лист в модуле объекта нашла бы процедуру обработки проведения документа и в режиме Отладчика прошлась бы по всем строчкам выполняемого кода.

2. В месте ошибки я бы определила функцию, где регистрируется ошибка и данные на основе которых эта ошибка происходит.

3. Определив это, уже смотрела бы причину некорректной отработки кода: это «битая» ссылка или ошибка в программном коде.

Поэтому без программиста победить вам ситуацию будет сложно.
Сказать без базы где и почему возникает эта ошибка, к сожалению, невозможно.

Но что можно сейчас, в первую очередь, попробовать сделать, если программиста нет:

Перед тем, как выполнять тестирование обязательно сделайте копию рабочей базы, обновление — процесс необратимый, можно испортить базу при исправлении:
Как сделать копию базы 1С 8.3

2. Если с базой все хорошо, выполните чистку кеша:
Очистка кэш 1С 8.3

Часто бывают ситуации при обновлении, когда сохраняется при работе с 1С старая информация по наиболее часто используемым функциям и процедурам в кеше. Чтобы новая информация из обновления бралась правильно, требуется кеш почистить.
Если программа работает без сбоев — таких ситуаций не возникает… но сбои часто случаются (даже мигнул свет — просто перепад электричества!), поэтому от этого никто не застрахован.

Если перечисленные выше действия не помогли — нужно обращаться к программисту, который в режиме Отладчик установит место в программном коде и причину ошибки.

Вы можете задать еще вопросов

Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8

Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>

Марина Аркадьевна, спасибо! Большой важный материал, отмечены основные изменения, у нас есть направление движения, самостоятельно даже не сориентируешься! Огромная работа! Будем изучать! Самые искренние слова благодарности!

Вы можете задать еще вопросов

Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8

Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>

Очень часто начинающие программисты 1С 8.3 встречаются с этой проблемой. Рассмотрим причины возникновения ошибки Преобразование значения к типу Число не может быть выполнено и методы её решения.


Причина ошибки Преобразование значения к типу Число не может быть выполнено

Причина достаточно банальна. Обычно при каком-либо арифметическом действии над переменными числового типа система ожидает увидеть в этом действии два значения числового типа, например:

Система, естественно, верно отработает это выражение и вернет 4.

Существуют ситуации, в которых в таких простых случаях в переменных оказывается не число, а, например, строка, NULL неопределено, дата и др.

Вот такой пример обязательно выдаст ошибку Преобразование значения к типу Число не может быть выполнено:

Потому как платформа не может сложить значения типа число и значения типа дата.

Единственное исключение — сложения со строкой, в которой содержатся только цифры:

Получите 267 видеоуроков по 1С бесплатно:

Система выдаст результат 4, однако, если поменять слагаемые местами, система выдаст строковые «22», т.к 1С 8 выбирает тип по первому в выражению значению.

Решение Преобразование значения к типу Число не может быть выполнено

В качестве решения рекомендую использовать дополнительные проверки. Например, на тип переменных:

Очень распространенная ошибка — это получение NULL в запросе и использование его в арифметических выражениях:

Здесь в строке Сч = Сч + Выборка.КоличествоОборот вполне вероятно появление данной ошибки в случае получения в качестве значения NULL.

Чтобы избежать данной ошибки, достаточно использовать проверку на NULL ресурсов в запросе:

Если в значении будет значение NULL, то система заменит его на ноль, тем самым ошибка будет исправлена.

Другие статьи по 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):


Программирование системы
15.08.2016 10:22
8131

Но при выполнении соединения строк или арифметических действий система 1С все равно будет пытаться приводить значения к необходимому типу. Например, при использовании оператора сложения все параметры сложения будут приведены к типу самого первого параметра.

Неявное преобразование типов

Неявное преобразование типов переменных возникает когда над переменными выполняется какие либо действия: сложение, вычитание, соединение строк, и т.д.

Явное преобразование типов

Для преобразования типов значений в 1С предназначены специальные функции: Число(), Строка(), Дата().

В некоторых случаях даты могут быть отформатированы и храниться в ячейках в виде текста. Например, возможно, вы ввели дату в ячейку, отформатированную как текст, или данные были импортированы или вставлены из внешнего источника данных в виде текста.

Даты, отформатированные как текст, выравниваются по левому краю в ячейке (вместо выравнивания по правому краю). Если включена Проверка ошибок , Текстовая дата с двумя цифрами года также может помечаться индикатором ошибки: .

Поскольку функция проверки ошибок в Excel распознает даты в текстовом формате с двузначным номером года, можно воспользоваться средством автозамены и преобразовать их в даты в формате даты. С помощью функции ДАТАЗНАЧ можно преобразовывать в даты большинство типов текстовых дат.

Если вы импортируете данные в Excel из другого источника или вводите даты с двумя цифрами года в ячейки, которые ранее были отформатированы как текст, в левом верхнем углу ячейки может появиться маленький зеленый треугольник. Этот индикатор ошибки указывает на то, что дата хранится в текстовом формате, как показано в данном примере.


Вы можете использовать индикатор ошибки для преобразования дат из текстового формата в формат даты.

Примечания: Сначала убедитесь в том, что в Excel включена проверка ошибок. Для этого:

Щелкните Файл > Параметры > Формулы.

В Excel 2007 нажмите кнопку Microsoft Office и выберите Параметры ExcelExcel 2007 формулы.

При проверке ошибокустановите флажок Включить фоновую проверку ошибок. Все найденные ошибки помечаются треугольником в левом верхнем углу ячейки.

В разделе правила проверки ошибоквыделите ячейки, которые содержат годы, представленные 2 цифрами.

Выполните указанные ниже действия, чтобы преобразовать дату в текстовом формате в обычную дату.

Выделите ячейку или диапазон смежных ячеек с индикатором ошибки в верхнем левом углу. Дополнительные сведения можно найти в разделе выделение ячеек, диапазонов, строк и столбцов на листе.

Совет: Чтобы отменить выделение ячеек, щелкните любую ячейку на листе.

Нажмите появившуюся рядом с выделенной ячейкой кнопку ошибки.


В меню выберите команду Преобразовать XX в 20XX или Преобразовать XX в 19XX. Если вы хотите отключить индикатор ошибки, не преобразуя число, нажмите кнопку пропустить ошибку.


Текстовые даты с двумя цифрами года преобразуются в стандартные даты с четырьмя цифрами года.

После преобразования ячеек с текстовыми значениями можно изменить внешний вид дат путем применения формата даты.

Если на листе есть даты, которые, возможно, были импортированы или вставлены так, как показано на рисунке ниже, вам, возможно, потребуется переформатировать их так, чтобы они выводились в виде коротких или длинных дат. Формат даты также будет более полезен, если вы хотите отфильтровать, отсортировать или использовать его в вычислениях дат.

Выделите ячейку, диапазон ячеек или столбец, которые нужно переформатировать.

Краткий формат даты выглядит следующим образом:


В длинный формат даты содержатся дополнительные сведения, как показано на рисунке:


Чтобы преобразовать текстовую дату в ячейку в серийный номер, используйте функцию ДАТАЗНАЧ. Затем скопируйте формулу, выделите ячейки, содержащие текстовые даты, и используйте команду Специальная Вставка , чтобы применить к ним формат даты.

Выполните указанные ниже действия:

Выберите пустую ячейку и убедитесь в том, что ее числовой формат является общим.

В пустой ячейке сделайте следующее.

Щелкните ячейку, содержащую дату в текстовом формате, которую следует преобразовать.

Нажмите клавишу ВВОД, и функция ДАТАЗНАЧ возвращает порядковый номер даты, представленной текстовым форматом даты.

Что такое серийный номер Excel?

В Excel даты хранятся в виде порядковых номеров, что позволяет использовать их в вычислениях. По умолчанию 1 января 1900 г. является порядковым числом 1, а 1 января 2008 — порядковый номер 39448, так как он составляет 39 448 дня после 1 января, 1900.To скопировать формулу преобразования в диапазон смежных ячеек, выделите ячейку, содержащую введенную формулу. , а затем перетащите маркер заполнения по диапазону пустых ячеек, который соответствует размеру диапазона ячеек, содержащих текстовые даты.

В результате получится диапазон ячеек с порядковыми номерами, который соответствует диапазону ячеек с датами в текстовом формате.

Выделите ячейку или диапазон ячеек, которые содержат серийные номера, а затем на вкладке Главная в группе буфер обмена нажмите кнопку Копировать.

Сочетание клавиш: Кроме того, можно нажать клавиши CTRL + C.

Выделите ячейку или диапазон ячеек, которые содержат даты в текстовом формате, и на вкладке Главная в группе Буфер обмена нажмите стрелку под кнопкой Вставить и выберите команду Специальная вставка.

В диалоговом окне Специальная вставка в разделе Вставить выберите параметр Значения и нажмите кнопку ОК.

На вкладке Главная нажмите кнопку вызова всплывающего окна рядом с полем число.

В поле Категория выберите пункт Дата, после чего укажите необходимый формат даты в списке Тип.

Чтобы удалить серийные номера после того, как все даты будут успешно преобразованы, выделите ячейки, содержащие их, а затем нажмите клавишу DELETE.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Get expert help now

Don’t have time to figure this out? Our expert partners at Excelchat can do it for you, 24/7.

При написании кода 1С или проведения бухгалтерских операций в системе 1С 8.3 и более ранних системах вы можете столкнуться с уведомлением « Преобразование значения к типу Число не может быть выполнено ». Причиной ошибки обычно является попытка программиста преобразовать в число значение, которое числовым быть не может. Ниже разберём суть данной ошибки, а также представим возможные варианты её решения.

Ошибка преобразование по типу число

Причины ошибки выполнения преобразования значения к типу Число

Обычно данная проблема возникает при запуске кода, выполнении процедуры проверки кода на ошибки или при осуществлении стандартных операцией составления отчётности в системе 1С 8.3 (и ранних системах).

В частности, ошибка фиксировалась в следующих обстоятельствах:

Параметр NULL

  • Вместо переменной числового типа был использован NULL, строка, индекс почты, ИНН, дата и другие значения. В этом случае стандартное арифметическое действие с двумя или несколькими числовыми переменными не может быть выполнено, так как какое-либо из значений не может быть трансформировано в число;
  • При выполнении операции по сложению чисел программист указал первым значением строку, а не число, тем самым совершив ошибку;
  • Было использовано двойное обозначение для единиц исчисления. К примеру, это может быть руб и RUB. Для устранения ошибки рекомендуем использовать одно унифицированное обозначение, в случае двоих указывайте для них одинаковые ставки и коэффициенты во избежание конфликта;
  • В коде указана операция в двух разных направлениях (наиболее часто встречается в 8 версии 1С). Во избежание дисфункции необходимо убрать одну из проводок;
  • Пользователь использует устаревшую (неотлаженную) версию 1С, где пытается работать с современными типами данных.

Давайте разберём, как устранить ошибку «Преобразование значения к типу Число не может быть выполнено» в конфигурации 1С 8.3.

Ошибка преобразование 1С

Обновите вашу систему 1С до самой актуальной версии

Прежде чем разбирать особенности ошибок в коде 1С, рекомендуем обновить вашу 1С до самой актуальной версии. В некоторых случаях ошибка «преобразование значения к типу число» вызвана устаревшим вариантом системы, на которой специалист пытается вести отчётность. Установите наиболее актуальную версию системы, и рассматриваемая нами ошибка может исчезнуть.

Внимательно проверьте код на наличие переменных

В большинстве случаев рассматриваемая ошибка вызвана невнимательностью программиста, вместо числового значения указавшего не числовое, что не позволяет системе выполнить правильный подсчёт числовых значений. Рекомендуем внимательно проверить создаваемый вами код, найти место в коде вызывающее исключение (ошибку) и пофиксить его.

Рисунок где ошибка

Например, в примере:

переменная B будет вести к ошибке так как её формат не позволяет системе сложить числовое значение «А» и значение в форме даты. Для решения проблемы замените B на строку: B=5 или аналогичную. В этом случае система выдаст вам корректный результат (в данном случае это будет 8).

Фото девушки жест отлично

Измените первый тип слагаемого на число

В некоторых случаях платформа 1С анализирует тип первого слагаемого числа, обнаруживает строку, вследствие чего может решить, что в данном коде речь идёт о сложении строк, а не необходимых программисту числах. Вследствие этого она пытается выполнить преобразование каждого слагаемого в строку, после чего объединить их как строки.

Для решения проблемы необходимо использовать скобки, позволяя системе вначале выполнить вычисление результата в скобках как суммы чисел, а уже потом преобразовать результат в строку.

К примеру, вместо ошибочной строки:

Сообщить(«Результат: » + 7 + 8 + 9);

Будет необходимо использовать строку:

Сообщить(«Результат: » + (7 + 8 + 9));

Вследствие этого вы получите ожидаемый результат в виде числе 24.

Используйте конфигуратор для нахождения исключения кода

Порядок действий в этом случае будет следующим:

  1. Выполните запуск конфигуратора;
  2. В его настройках поставьте галочку на опцию остановки по ошибке;
  3. Нажмите на кнопку F5 для запуска 1С;
  4. Выполните приведшие к ошибке операции. Программа определит строчку, где имеется некорректный код;
  5. Найдите в данной строчке ошибку и исправьте её. Проблема будете решена.

Остановка по ошибке

Переиндексируйте ваши файлы

Файл 1С

Запустите данный файл, укажите имя файла для проверки, поставьте галочку рядом с опцией «Исправлять обнаруженные ошибки», после чего нажмите на «Выполнить внизу». Дождитесь завершения процедуры проверки и исправления, после чего вновь попробуйте выполнить необходимые операции.

Окно переиндексации базы

Используйте функцию «Есть NULL»

Если выскакивает ошибка, то иногда одна из задействуемых переменных может принимать значение NULL. Для исправления ошибки рекомендуется использовать функцию «ЕСТЬNULL» (переменная, 0), что позволит устранить рассматриваемую в статье проблему.

Параметр ЕСТЬNULL

Заключение

Ошибка 1С: Преобразование значения к типу Число не может быть выполнено 1С

Чаще всего ошибка «Преобразование значения к типу Число не может быть выполнено» выскакивает из-за невнимательности программиста. В одной из переменных указывается не числовое значение, что и приводит к несоответствию.

Например, правильный код будет выглядеть следующим образом:

Программа вернёт значение 7.

Программа выдаст ошибку.

Исключение возможно только в случае, когда в строке указаны только числа, например:

Результат отобразится корректно – 8. Но если пункты a и b поменять местами, программа выдаст результат «35», так как при вычислении тип чисел выбирается по первому пункту.

На месте переменной всегда должно стоять число, то есть значение, предназначенное для арифметических вычислений. Любые другие данные на этой позиции (NULL неопределенно, индекс почты, дата, ИНН и т. д.) приведут к ошибке.

Причины возникновения конфликта

image002

Ситуации, в которых ошибка «Преобразование значения к типу Число не может быть выполнено» возникает чаще всего:

Решение проблемы

image003

Если возникает подобная ошибка, требуется найти исключение кода, которое не соответствует числовому значению. Для этих целей лучше всего подходит конфигуратор 1С, который в режиме отладки сам указывает на места с ошибками. Порядок действий:

  • Запустить конфигуратор;
  • В настройках установить галочку «Останов по ошибке» (по окончании работы её необходимо будет убрать);
  • Нажать на F5 (откроется 1С);
  • Выполнить операции, которые привели к ошибке – программа укажет на строчку, в которой введён некорректный код;
  • Затем необходимо найти в этой строчке ошибку.

В некоторых случаях помогает переиндексация файлов:

  • Необходимо удалить из развёрнутого сальдо счёт 68.10 (это не совсем удобно, так как дебетные и кредитные налоги начинают учитываться вместе, что не является верным);
  • Свернуть всю базу (в дополнительных настройках нужно поставить галочку «выводить забалансовые счета»). С установленной галкой ошибка не выскакивает.

Часто найти точную причину вывода ошибки может только программист. При работе с объемными базами разного рода ошибки не редкость, но исправлять их надо правильно, чтобы не были потеряны данные.

Автор статьи

Куприянов Денис Юрьевич

Куприянов Денис Юрьевич

Юрист частного права

Страница автора

Читайте также: