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

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

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

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

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

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

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

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

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

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

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

image002

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

  1. В проводке не указано числовое значение. Некоторые думают, что по умолчанию это число «0». Даже если это так, значение должно быть прописано;
  2. Двойное обозначение единиц исчисления. Например, RUB и руб. Нужно использовать одно из обозначений, а если используются оба, необходимо указывать к ним одинаковые ставки и коэффициенты, чтобы не возникало конфликта;
  3. В программе указывается одна из операций в двух разных направлениях. Допустим, производится начисление налога и перечисление его по банку. Для решения проблемы нужно убрать одну из проводок (ошибка встречается только на 8-ой версии программы).
Решение проблемы

image003

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

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

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

  • На 7-ой версии 1С для этого требуется удалить cdx-файлы;
  • На 8-ой версии – файл chdbfl.exe
Конфликт 7-ой и 8-ой версии

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

В свойствах базы указывается развёрнутое сальдо, в том числе и по счёту 68.10. Когда в учёте наступает очередь этого счёта – появляется ошибка (на 8-ой версии). Для решения проблемы есть два пути:

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

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

Разберем основные вопросы преобразования типов в 1С 8.3: из строки в число, из числа в строку, из даты в число и прочие варианты. В этой статье мы рассмотрим функции преобразования значений, и я соберу в едино все варианты преобразования примитивных типов.

Строка в число в 1С

Узнаем, как в 1С 8.3 преобразовать строку в число.

Пусть, у нас есть числа в таком виде.

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

Обратите внимание, что разделять дробную часть можно в строке как при помощи символа точка «.», так и при помощи символа запятая «,». Если перед каким-то числом в строке стоят нули, то они отсекаются. У нас будет следующий результат.

Строка в число в 1С

Число в строку в 1С

Рассмотрим обратную задачу, когда в 1С 8.3 нужно преобразовать число в строку. Самый простой вариант использовать метод Строка, который преобразует собственный параметр в строку.

И какой результат возвращает этот код:

Число в строку в 1С

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

Результат будет без разрядов:

число в строку без пробелов 1C

Строка в дату 1С

Узнаем, как преобразовать в 1С 8.3 строку в дату. Для этого необходимо использовать метод Дата, который преобразует параметр (в том числе строку ) в дату . Причем, замечу, что строка должна быть задана в таком формате «ГГГГММДДЧЧММСС».

Подробнее о форматах дат читайте в этой статье: даты в 1С.

Строка в дату в 1С

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

Например, этот код:

Приведет к ошибке:

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

Дата в строку в 1С

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

В этом случае у нас выйдет строка в обычном «полном» формате даты.

Дата в строку в 1С

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

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

Мы изменим предыдущий код, написав вместо метода Строка метод Формат, а в качестве второго параметра у метода Формат напишем просто две кавычки.

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

Конструктор форматной строки

В этом конструкторе на закладке Дата вы можете выбрать удобный вам формат даты.

Конструктор форматной строки

И после нажатия кнопки ОК этого конструктора, нужный формат появится в виде строки.

В результате метода Формат, дата будет преобразована в строку в том виде, в каком нам необходимо.

Дата в строку в 1С

Строка в булево в 1С

При помощи метода Булево мы можем некоторые строковые представления (Да, Нет, Истина, Ложь) преобразовывать в значения Истина или Ложь.

Например, следующие переменные:

Будут иметь такие значения:

Строка в булево

Булево в строку в 1С

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

Например, как здесь:

У нас будет выходить следующий результат:

Булево в строку

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

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

Переделаем, предыдущий код:

Знакомым способом вызовем конструктор форматной строки, где на закладке Булево введем преставление значений Истина и Ложь.

Конструктор форматной строки Булево

После нажатия кнопки ОК конструктора, второй параметр метода Формат заполнится:

И будет следующий результат:

Булево в строку

Число в булево в 1С

В 1С 8.3. мы можем преобразовать любое число в булево по следующему правилу: 0 будет преобразован в Ложь, все остальные значения в Истина.

Будет следующий результат:

Число в булево в 1С

Булево в число в 1С

Можно сделать и обратное преобразование. Булево значение в число.

Для этого нужно воспользоваться методом Число, где в качестве параметра указать булево значение. Тогда Истина будет преобразована в 1С, а Ложь – в 0.

Например, как в этом коде:

С таким результатом:

Булево в число

Статьи о примитивных типах в 1С:

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

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

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

Такое сообщение выдаёт 1С Бухгалтерия 8.2 (версия 3.0) при попытке сформировать Книгу учёта доходов и расходов. Подскажите, пожалуйста, где кроется ошибка?

Сообщение от trud-consalting

Такое сообщение выдаёт 1С Бухгалтерия 8.2 (версия 3.0) при попытке сформировать Книгу учёта доходов и расходов. Подскажите, пожалуйста, где кроется ошибка?

  • Просмотр профиля
  • Сообщения форума
  • Блог
  • Просмотр профиля
  • Сообщения форума
  • Блог

Обновление не поможет. Отладчик тоже вряд ли что-то прояснит.
Столкнулась с этой ошибкой уже давно при формировании ОСВ.
Вот моё обращение в техподдержку:
Прошу Вас смоделировать на демо-версии следующую ситуацию.
1. Создать новое предприятие без начальных остатков по счёту 68
2. Ввести простейшую операцию БУ НУ начисления налога, например, 91.2 68.10 6000 руб
3. Ввести операцию списания с расчётного счёта этого налога 68.10 51 6000 руб
4. Сформировать ОСВ, выставив в её настройках развернутое сальдо по счёту 68 по субсчетам

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

ОСВ сформируется без ошибок если:
1) сумма начисления будет отлична от суммы перечисления хотя бы на копейку
2) есть начальные остатки по счёту 68 (причём по любому 68-му, совершенно не обязательно по 68.10)
3) в развернутом сальдо не стоит галочка 68 по субсчетам.

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

Ответ — «указанная ошибка не проявляется».

Проблема актуальна до сих пор. Перекопала инфостарт, перепробовала кучу вариантов. Пока спасаюсь бубном с переустановкой галочек по субконто в развёртываемых счетах. Помогает не всегда.
Если кто-то сталкивался и нашёл решение — присоединяюсь к ТС.

1С:Предприятие 8.2 (8.2.18.109)
Бухгалтерия предприятия, редакция 3.0 (3.0.24.11)

Разберем основные вопросы преобразования типов в 1С 8.3: из строки в число, из числа в строку, из даты в число и прочие варианты. В этой статье мы рассмотрим функции преобразования значений, и я соберу в едино все варианты преобразования примитивных типов.

Строка в число в 1С

Узнаем, как в 1С 8.3 преобразовать строку в число.

Пусть, у нас есть числа в таком виде.

СтрокаЧ1 = "120";
СтрокаЧ2 = "12.24";
СтрокаЧ3 = "12,24";
СтрокаЧ4 = "0,24";
СтрокаЧ5 = "0000001";

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

Ч1 = Число(СтрокаЧ1);
Ч2 = Число(СтрокаЧ2);
Ч3 = Число(СтрокаЧ3);
Ч4 = Число(СтрокаЧ4);
Ч5 = Число(СтрокаЧ5);

Обратите внимание, что разделять дробную часть можно в строке как при помощи символа точка «.», так и при помощи символа запятая «,». Если перед каким-то числом в строке стоят нули, то они отсекаются. У нас будет следующий результат.

Строка в число в 1С

Число в строку в 1С

Рассмотрим обратную задачу, когда в 1С 8.3 нужно преобразовать число в строку. Самый простой вариант использовать метод Строка, который преобразует собственный параметр в строку.

Например:

Ч1 = 120;
Ч2 = 12.24;
Ч3 = 10000000000;

СтрокаЧ1 = Строка(Ч1);
СтрокаЧ2 = Строка(Ч2);
СтрокаЧ3 = Строка(Ч3);

Сообщить(СтрокаЧ1);
Сообщить(СтрокаЧ2);
Сообщить(СтрокаЧ3);

И какой результат возвращает этот код:

Число в строку в 1С

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

Ч1 = 10000000000;
СтрокаЧ1 = Формат(Ч1,"ЧГ=");
Сообщить(СтрокаЧ1);

Результат будет без разрядов:

число в строку без пробелов  1C

Строка в дату 1С

Узнаем, как преобразовать в 1С 8.3 строку в дату.  Для этого необходимо использовать метод Дата, который преобразует параметр (в том числе строку ) в дату . Причем, замечу, что строка должна быть задана в таком формате «ГГГГММДДЧЧММСС».

Подробнее о форматах дат читайте в этой статье: даты в 1С.

Рассмотрим пример:

СтрокаД1 = "20120910";
СтрокаД2 = "20120910121559";
СтрокаД3 = "00010101121559";

Дата1    = Дата(СтрокаД1);
Дата2    = Дата(СтрокаД2);
Дата3    = Дата(СтрокаД3);

И результат:

Строка в дату в 1С

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

Например, этот код:

СтрокаД1 = "121559";
Дата1    = Дата(СтрокаД1)

Приведет к ошибке:

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

Дата в строку в 1С

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

Дата1 = Дата(2012,10,12);
СтрокаД = Строка(Дата1);
Сообщить(СтрокаД);

В этом случае у нас выйдет строка в обычном «полном» формате даты.

Дата в строку в 1С

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

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

Мы изменим предыдущий код, написав вместо метода Строка метод Формат, а в качестве второго параметра у метода Формат напишем просто две кавычки.

Дата1 = Дата(2012,10,12);
СтрокаД = Формат(Дата1,"");
Сообщить(СтрокаД);

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

Конструктор форматной строки

В этом конструкторе на закладке Дата вы можете выбрать удобный вам формат даты.

Конструктор форматной строки

И после нажатия кнопки ОК этого конструктора, нужный формат появится в виде строки.

Дата1 = Дата(2012,10,12);
СтрокаД = Формат(Дата1,"ДФ=dd/MM/yy");
Сообщить(СтрокаД);

В результате метода Формат, дата будет преобразована в строку в том виде, в каком нам необходимо.

Дата в строку в 1С

Строка в булево в 1С

При помощи метода Булево мы можем некоторые строковые представления (Да, Нет, Истина, Ложь) преобразовывать в значения Истина или Ложь.

Например, следующие переменные:

стр_Да     = Булево("Да");
стр_Нет    = Булево("Нет");
стр_Истина = Булево("Истина");
стр_Ложь   = Булево("Ложь");

Будут иметь такие значения:

Строка в булево

Булево в строку в 1С

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

Например, как здесь:

б_Истина = Истина;
б_Ложь   = Ложь;

СтрИстина = Строка(б_Истина);
СтрЛожь = Строка(б_Ложь);

Сообщить(СтрИстина);
Сообщить(СтрЛожь);

У нас будет выходить следующий результат:

Булево в строку

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

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

Переделаем, предыдущий код:

б_Истина = Истина;
б_Ложь   = Ложь;

СтрИстина = Формат(б_Истина,"");
СтрЛожь = Формат(б_Ложь,"");

Знакомым способом вызовем конструктор форматной строки, где на закладке Булево введем преставление значений Истина и Ложь.

Конструктор форматной строки Булево

После нажатия кнопки ОК конструктора, второй параметр метода Формат заполнится:

б_Истина = Истина;
б_Ложь   = Ложь;

СтрИстина = Формат(б_Истина,"БЛ='Ни как нет'; БИ=Конечно");
СтрЛожь = Формат(б_Ложь,"БЛ='Ни как нет'; БИ=Конечно");

Сообщить(СтрИстина);
Сообщить(СтрЛожь);

И будет следующий результат:

Булево в строку

Число в булево в 1С

В 1С 8.3. мы можем преобразовать любое число в булево по следующему правилу: 0 будет преобразован в Ложь, все остальные значения в Истина.

У этого кода:

б_Ложь   = Булево(0);
б_Истина = Булево(100000);

Будет следующий результат:

Число в булево в 1С

Булево в число в 1С

Можно сделать и обратное преобразование. Булево значение в число.

Для этого нужно воспользоваться методом Число, где в качестве параметра указать булево значение. Тогда Истина будет преобразована в 1С, а Ложь – в 0.

Например, как в этом коде:

б_Истина = Истина;
б_Ложь   = Ложь;

ч_Истина = Число(б_Истина);
ч_Ложь = Число(б_Ложь);

С таким результатом:

Булево в число

Статьи о примитивных типах в 1С:

Примитивный тип Строка

Примитивный тип Булево

Примитивный тип Дата

Примитивный тип Число

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси
  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

1 / 1 / 0

Регистрация: 16.10.2012

Сообщений: 37

1

1C 8.x

Внутренняя ошибка «Преобразование значения к типу Дата не может быть выполнено»

06.11.2012, 13:26. Показов 60697. Ответов 4


1С.8.2 / При загрузке Выписки из казначейства в Документ Кассовые выбытия происходит ошибка, на прошлой неделе было нормально все!
Внутренняя ошибка: Общий Модуль.Библиотека функцийОбмена.Модуль (2717)}: Преобразование значения к типу Дата не может быть выполнено

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



2954 / 1766 / 82

Регистрация: 03.11.2011

Сообщений: 8,280

06.11.2012, 14:23

2

Цитата
Сообщение от Zloydog
Посмотреть сообщение

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

Что там вместо даты теперь? Время инноваций как-никак. Скоординируйте формат у авторов источника.



0



1 / 1 / 0

Регистрация: 16.10.2012

Сообщений: 37

06.11.2012, 15:19

 [ТС]

3

Цитата
Сообщение от duk337
Посмотреть сообщение

Что там вместо даты теперь? Время инноваций как-никак. Скоординируйте формат у авторов источника.

Все исправили, проблемма была в нумерации, но не понятно почему он на дату ругался!



0



2954 / 1766 / 82

Регистрация: 03.11.2011

Сообщений: 8,280

06.11.2012, 17:29

4

Цитата
Сообщение от Zloydog
Посмотреть сообщение

проблемма была в нумерации,

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



0



1 / 1 / 0

Регистрация: 16.10.2012

Сообщений: 37

06.11.2012, 22:27

 [ТС]

5

Цитата
Сообщение от duk337
Посмотреть сообщение

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

нумерация документов кривая была!



1



1

При входе в интерфейс кассира или в настройки в интерфейсе кассира ошибка:

{ОбщийМодуль.ОбщийМодульНаСервере.Модуль(243)}: Преобразование значения к типу Дата не может быть выполнено Возврат Дата(Значение);

Опубликовано: 13 декабря 2022

Ярилин Константин

1 ответ

  • популярные
  • новые


  • 3

    Ярилин Константин

    Ярилин Константин

    13 декабря 2022 20:07

    #

    Решение

    В регистре сведений Настройки ККМ удалить запись, где Имя переменной = ДатаНачалаОбработкиОтложенныхЧеков

    ответить


Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите

Доброго времени суток, При выполнении в 1С 8.3 выдает ошибку: Преобразование значения к типу Дата не может быть выполнено Имеется файл формата dbf я из него выгружаю данные, дата была в формате строки, я ее переделал в формат дата: Я знаю что не учитываются пробелы с лева и точное время создания документа, но из строки в формат даты перевести получается и она «по идее» должна идти дальше в запрос: Я начинающий в 1С. Кто знает в чем ошибка? Прошу помощи исправить.

Остановись отладчиком, посмотри, что возвращает.

очередная жертва неразрывного пробела…

НВдат принимает значение 13.08.2015 0:00:00

значит «гуляют» либо число либо месяц… больно они вырубаются топорно…

Пробела между датой и временем? имеете ввиду что они не на своих местах?

вот бы ХБасе умел даты датами говорить…

у тебя отладчик есть… а в нем «останавливаться по ошибке» что гадать сидеть

Дело в том что там формат строки, и он в дату переводится только как в

Вариант синтаксиса: По составляющим Синтаксис: Дата(<Год>, <Месяц>, <День>, <Час>, <Минута>, <Секунда>)

Я писал что я начинающий 2 недели работаю с 1С. Еслиб мог давно бы сам решил проблему)

а образованиев для того, чтобы понять, что в переменной хрень, не хватает?

Хм… тоесть мне надо перевернуть дату? у меня 13.08.2015 0:00:00

тебе надо понять, как три строки сделать датой

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

он уже все сделал:  НВдат = Дата(Год + Месяц + День); не сношайте мозг ребенку

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

Благодарю за оптимизацию)

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

Тут хоть и костыль, но рабочий. А вот подходит ли формат моей даты для функции НачалоДня

если он всегда «ГГГГ» + «ММ» + «ДД» с ведущими нулями (т.е. март = «05», а первое число = «01») — то подходит

НачалоДня(13.08.2015 0:00:00)

лучше как в Дата(Число(Год), Число(Месяц), Число(День))

13.08.2015 0:00:00 — это строка такая? или дата?

Переделал, результат тот же

где-то автор свистит… или смотрит не туда

в конце запроса переменная принимает другое значение = 7446029151, а вот почему я еще не понял

Год=2015 Месяц=08 День=13

То есть не в конце а когда доходит до строки НачалоДня

на какой строке изменяется?

Запрос.УстановитьПараметр(«ДатаН», НачалоДня(НВдат));

нет вру где то в другом месте пойду искать…

Не подскажете как правильно условие составить на останов отладчика, мне надо остановить когда НВдат<> 13.08.2015 0:00:00, множно <> Дата типу даты или ваши варианты)

ТипЗнч(НВдат)<>Тип(«Дата»)

не надо тебе никаких условий — галку ставь «останавливаться по ошибке» — сам встанет

зы… если функция серверная и — не встанет без -debug

ну он мне останавливает когда уже НВдата изменил значение, я пытаюсь вычислить где он его меняет

я понял в чем проблема, ИНН поменялся значениями с НВдат, только немогу найти где именно поменялся…

переименуй, назови ГринписДат

Переименовал, но значения поменялись все равно…

эх, придумали бы уже какую-нибудь штуку с пошаговым выполнением кода и возможностью просмотра значений переменных…

зачем? все равно никто не будет пользоваться. хрень какая то.

Ну это ты зря, я бы использовал, если взят ьв пример python в IDE IDEA там вообще дебагер прелесть, все покажет и расскажет, а самое странное что нельзя шаг назад в дебаге сделать

шаг назад — это круто. ждём возможности сохранения

еще про оптимизацию вместо Возврат Выборка.Ссылка.номер; надо писать   Возврат Выборка.СсылкаНомер; соответственно в запросе

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

У меня 2 таких запроса на самом деле, один тянет ссылку а другой номер из ссылки, они слущат для разных целей. 1 создает документ поступление товаров, а 2 добавляет в документе номенклатуру если не находит то создает новую

А чем существующий отладчик не устраивает?

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

в связи с тем что я начинающий код плохо читаем и в нем можно запутаться)

не могу найти где значение НВдата меняется с ИНН

точки останова не судьба поставить? И значение НВДат кинуть вниз, в табло.

попробую переделать запрос, только надо ошибку исправить, а после займусь

Так по шагам иди, и смотри, где оно меняется.

Так и делал от НВдат ставил точку и F10 но он прыгает в один момент на функцию с запросом и уже поменял…

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

мда…. Выбирай — метла или утка?

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Понравилась статья? Поделить с друзьями:
  • Пресное тесто как исправить
  • Преобразование значения к типу булево не может быть выполнено 1с как исправить пошагово
  • Пресная гречка как исправить
  • Преобладающее большинство лексическая ошибка
  • Пренебрежение к фактору времени считал основной ошибкой предшествующих экономистов