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

Доброго времени суток,
При выполнении в 1С 8.3 выдает ошибку:
Преобразование значения к типу Дата не может быть выполнено
   Запрос.УстановитьПараметр(«ДатаН», НачалоДня(НВдат));

Имеется файл формата dbf я из него выгружаю данные, дата была в формате строки, я ее переделал в формат дата:
   НВдатДБФ = (Лев(База.ПолучитьЗначениеПоля(«NVdat»), 10));
   Год = Прав(НВдатДБФ, 4); // 2005;
        Месяц1 = СтрЗаменить(НВдатДБФ, Лев(НВдатДБФ,3), «»);
   Месяц = СтрЗаменить(Месяц1, Прав(Месяц1,5), «»);

           День = Лев(НВдатДБФ, 2);   
        НВдат = Дата(Год + Месяц + День);
Я знаю что не учитываются пробелы с лева и точное время создания документа, но из строки в формат даты перевести получается и она «по идее» должна идти дальше в запрос:
Запрос = Новый Запрос(«ВЫБРАТЬ
                         |   ПоступлениеТоваровУслуг.Ссылка
                         |ИЗ
                         |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
                         |ГДЕ
                         |   ПоступлениеТоваровУслуг.НомерВходящегоДокумента = &НомерКонтрагента
                         |   И ПоступлениеТоваровУслуг.Контрагент = &Контрагент
                         |   И ПоступлениеТоваровУслуг.Дата МЕЖДУ &ДатаН И &ДатаК»);
   Запрос.УстановитьПараметр(«НомерКонтрагента», НВход);
   Запрос.УстановитьПараметр(«Контрагент», ПоискС(ИНН));
   Запрос.УстановитьПараметр(«ДатаН», НачалоДня(НВдат));
   Запрос.УстановитьПараметр(«ДатаК», КонецДня(НВдат));
   Результат=Запрос.Выполнить();

      Если Результат.Пустой() Тогда
      Возврат Неопределено;
   КонецЕсли;

        Выборка = Результат.Выбрать();
   Выборка.Следующий();

      Возврат Выборка.Ссылка.номер;
Я начинающий в 1С. Кто знает в чем ошибка? Прошу помощи исправить.

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

Я
   Gill

17.10.22 — 15:18

Всем привет!

ERP 2.5.8.267

При попытке создания документа из обработки (Меню «Финансовый результат и контроллинг» — «Распределение РБП» — «Распределить расходы») вылетает с ошибкой, при этом некоторые

статьи РБП формируются без проблем. Сравнение данных в соответствующих элементах справочника «Статьи РБП» результата не дали.

Ошибка при вызове метода контекста (ОткрытьФорму)

{Документ.РаспределениеРасходовБудущихПериодов.Форма.ФормаСпискаДокументов.Форма(284)}:            

ОткрытьФорму(«Документ.РаспределениеРасходовБудущихПериодов.ФормаОбъекта», СтруктураПараметры, Элементы.Список);

по причине:

Ошибка при выполнении обработчика — ‘ОбработкаЗаполнения’

по причине:

{Документ.РаспределениеРасходовБудущихПериодов.МодульМенеджера(290)}: Преобразование значения к типу Дата не может быть выполнено

            ОткрытьФорму(«Документ.РаспределениеРасходовБудущихПериодов.ФормаОбъекта», СтруктураПараметры, Элементы.Список);

Отладчик закинул сюда ТУТ :

Функция ПолучитьДатуВозникновенияРБП(ДанныеЗаполнения) Экспорт

    ТекстЗапроса = »

    |ВЫБРАТЬ

    |    МАКСИМУМ(ДатыРасходов.Период) КАК Период

    |ИЗ

    |    (ВЫБРАТЬ

    |        ПрочиеРасходы.Период КАК Период

    |    ИЗ

    |        РегистрНакопления.ПрочиеРасходы КАК ПрочиеРасходы

    |    ГДЕ

    |        ПрочиеРасходы.Организация = &Организация

    |        И ПрочиеРасходы.Подразделение = &Подразделение

    |        И ПрочиеРасходы.НаправлениеДеятельности = &НаправлениеДеятельности

    |        И ПрочиеРасходы.СтатьяРасходов = &СтатьяРасходов

    |        И ПрочиеРасходы.АналитикаРасходов = &АналитикаРасходов

    |        И ПрочиеРасходы.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)

    |        И ПрочиеРасходы.Активность

    |        И ПрочиеРасходы.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)

    |    

    |    ОБЪЕДИНИТЬ ВСЕ

    |    

    |    ВЫБРАТЬ

    |        СебестоимостьТоваров.Период

    |    ИЗ

    |        РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров

    |    ГДЕ

    |        СебестоимостьТоваров.Организация = &Организация

    |        И СебестоимостьТоваров.Подразделение = &Подразделение

    |        И СебестоимостьТоваров.КорНаправлениеДеятельности = &НаправлениеДеятельности

    |        И СебестоимостьТоваров.СтатьяРасходовСписания = &СтатьяРасходов

    |        И СебестоимостьТоваров.АналитикаРасходов = &АналитикаРасходов

    |        И СебестоимостьТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)

    |        И СебестоимостьТоваров.Активность

    |        И СебестоимостьТоваров.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)

    |        И СебестоимостьТоваров.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)) КАК ДатыРасходов»;

    
//++ НЕ УТ

    Если НЕ ЗначениеЗаполнено(ДанныеЗаполнения.СтатьяРасходов)

        И ТипЗнч(ДанныеЗаполнения.АналитикаРасходов) = Тип(«СправочникСсылка.ОбъектыВозникновенияЗатрат») Тогда

        
        ТекстЗапроса = »

        |ВЫБРАТЬ

        |    МАКСИМУМ(ДатыРасходов.Период) КАК Период

        |ИЗ

        |    (ВЫБРАТЬ

        |        ПрочиеРасходы.Период КАК Период

        |    ИЗ

        |        РегистрНакопления.ПрочиеРасходы КАК ПрочиеРасходы

        |    ГДЕ

        |        ПрочиеРасходы.Организация = &Организация

        |        И ПрочиеРасходы.Подразделение = &Подразделение

        |        И ПрочиеРасходы.АналитикаРасходов = &АналитикаРасходов

        |        И ПрочиеРасходы.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)

        |        И ПрочиеРасходы.Активность

        |        И ПрочиеРасходы.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)

        |    

        |    ОБЪЕДИНИТЬ ВСЕ

        |    

        |    ВЫБРАТЬ

        |        СебестоимостьТоваров.Период

        |    ИЗ

        |        РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров

        |    ГДЕ

        |        СебестоимостьТоваров.Организация = &Организация

        |        И СебестоимостьТоваров.Подразделение = &Подразделение

        |        И СебестоимостьТоваров.АналитикаРасходов = &АналитикаРасходов

        |        И СебестоимостьТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)

        |        И СебестоимостьТоваров.Активность

        |        И СебестоимостьТоваров.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)

        |        И СебестоимостьТоваров.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)) КАК ДатыРасходов»;

        
    КонецЕсли;

//— НЕ УТ

    
    Запрос = Новый Запрос;

    Запрос.Текст = ТекстЗапроса;

    ОбщегоНазначенияУТ.УстановитьПараметрыЗапроса(Запрос, ДанныеЗаполнения);

    
    Результат = Запрос.Выполнить();

    Выборка = Результат.Выбрать();

    
    Если Выборка.Следующий() Тогда

        Возврат НачалоДня(Выборка.Период); //ВОТ ЗДЕСЬ ВЫЛЕТАЕТ

    КонецЕсли;

    
    Возврат КонецМесяца(ДанныеЗаполнения.Период);

    
КонецФункции

  

Партнерская программа EFSOL Oblako

   Мультук

1 — 17.10.22 — 15:41

(0)

Ну и что показывает в отладчике Выборка.Период

NULL ?

   alarm2020

2 — 17.10.22 — 15:42

Классный запрос!

   Gill

3 — 17.10.22 — 15:43

(1)

Выражение             Значение                    Тип

Выборка.Период                                    Null

   Gill

4 — 17.10.22 — 15:44

(2) Это из типовой

   kostyan29

5 — 17.10.22 — 15:49

Выдернуть в отладчике ТекстЗапроса. Вставить в Консоль запросов. Посмотреть ДанныеЗаполнения, и из них заполнить все параметры в консоли запросов.

Запустить запрос на выполнение и посмотреть, что там происходит, почему возвращается null

   alarm2020

6 — 17.10.22 — 15:50

(4) Я понимаю, что из типовой. Это вовсе не мешает ему быть классным

   alarm2020

7 — 17.10.22 — 15:51

(5) Там происходит классный запрос

   Gill

8 — 17.10.22 — 16:05

(5) Делал.

Записей в результате 1, Период пусто…

   alarm2020

9 — 17.10.22 — 16:49

(8) Неудивительно. МАКСИМУМ от пусто и должен возвращать пусто

   Gill

10 — 17.10.22 — 16:56

так всё-таки, куда рыть дальше?

   alarm2020

11 — 17.10.22 — 17:09

(10) Зачем еще куда-то рыть?

   Gill

12 — 17.10.22 — 19:16

(11) в чем тут подвох? Подскажите

   alarm2020

13 — 17.10.22 — 19:31

(12) Ну мы же выяснили уже. Кривой запрос в типовой. Не будет у тебя работать распределение

   Gill

14 — 18.10.22 — 08:39

(13) а почему работает в зависимости от выбора конкретной статьи расхода? )

   mikecool

15 — 18.10.22 — 08:55

(14) все уже догадались

   Мультук

16 — 18.10.22 — 08:56

(14)

Тут два варианта

1) 1С налажала в коде. Это бывает

2) У вас какая-то ерунда в исходных данных

>>а почему работает в зависимости от выбора конкретной статьи расхода? )

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

   Gill

17 — 18.10.22 — 09:03

(17) дело в том, что я проверил оба регистра, и удивительно, что по 2 проверяемым статьям (одна из которой срабатывает) записи есть только одном регистре (а именно «ПрочиеРасходы»).Таким образом я убедился в наличии данных.

   Gill

18 — 18.10.22 — 09:05

(16) Про «ерунду» в исходных данных, имеется ввиду в ДанныеЗаполнения?

   Мультук

19 — 18.10.22 — 09:06

(17)

Хорошо, статья есть, а остальные отборы ?

P.S.

        |    ГДЕ

        |        ПрочиеРасходы.Организация = &Организация

        |        И ПрочиеРасходы.Подразделение = &Подразделение

        |        И ПрочиеРасходы.АналитикаРасходов = &АналитикаРасходов

        |        И ПрочиеРасходы.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)

        |        И ПрочиеРасходы.Активность

        |        И ПрочиеРасходы.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)

   Gill

20 — 18.10.22 — 09:24

   alarm2020

21 — 18.10.22 — 10:41

(20) НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)

   Gill

22 — 18.10.22 — 11:42

(21) вот скрины из рабочей базы, записи идентичны, тем не менее такая же история

https://disk.yandex.ru/i/sSP3yBBObg4lkg

https://disk.yandex.ru/i/7oPjaEtbEFqSiQ

   Smallrat

23 — 18.10.22 — 12:36

(5) ОбщегоНазначения.ЗапросВСтрокуXML(Запрос)

В консоли запросов в меню «Ещё» есть команда «Заполнить из XML»

   kostyan29

24 — 18.10.22 — 13:11

(23) Спасибо большое, не знал!

   Gill

25 — 18.10.22 — 13:12

(23) спасибо за способ, но результаты запроса идентичны.

Я не могу понять логику работы его в разрезе статей при одинаковых (с точки зрения заполнения) данных в регистре накопления.

  

Gill

26 — 18.10.22 — 13:13

(24) аналогично)

Содержание

  1. Ошибка «Преобразование значения к типу дата не может быть выполнено»
  2. Преобразование к типу дата
  3. Причина ошибки Преобразование значения к типу Число не может быть выполнено
  4. Решение Преобразование значения к типу Число не может быть выполнено
  5. Неявное преобразование типов
  6. Явное преобразование типов
  7. Дополнительные сведения
  8. Get expert help now
  9. Программирование в 1С для всех
  10. Строка в число в 1С
  11. Число в строку в 1С
  12. Строка в дату 1С
  13. Дата в строку в 1С
  14. Строка в булево в 1С
  15. Булево в строку в 1С
  16. Число в булево в 1С
  17. Булево в число в 1С

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

Добрый вечер. Сам не программист — больше бухгалтер.
До сегодняшнего дня всё работало отлично. Но при загрузке выписки из Клиент-Банка невозможно провести один документ списания.
Вылетает ошибка: «Преобразование значения к типу дата не может быть выполнено» и кнопка закрыть.

В отладчике следующий код:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
Преобразование значения к типу Дата не может быть выполнено
<ОбщийМодуль.УчетНДФЛ.Модуль(14858)>: Запрос.УстановитьПараметр(«ДатаОперации», КонецДня(ДатаБлижайшегоПлатежа));
<ОбщийМодуль.УчетНДФЛ.Модуль(7485)>: СтрокиРаспределения = РаспределитьПеречисленныйНалогПоФизическимЛицам(Ссылка, Организация, ДатаОперации, СтрокаДанных.Сумма, СтрокаДанных.МесяцНалоговогоПериода, РегистрацияВНалоговомОргане, ФизическиеЛица);
<ОбщийМодуль.УчетНДФЛ.Модуль(202)>: СформироватьПеречисленныйНалогПоФизическимЛицам(Ссылка, Движения, Отказ, Организация, ДатаОперации, ФизическиеЛица, РегистрацияВНалоговомОргане, Записывать);
<ОбщийМодуль.УчетЗарплаты.Модуль(5933)>: УчетНДФЛ.СформироватьПеречисленныйНалог(
<Документ.СписаниеСРасчетногоСчета.МодульОбъекта(507)>: УчетЗарплаты.СформироватьДвиженияПоНалогамИВзносамСФОТ(ПараметрыПроведения.Реквизиты,

Из самых простых вариантов — обновить конфигурацию. Есть вероятность, что ошибка исчезнет. Либо может кто-то сталкивался с подобным? Можно ли победить без правки конфигурации?

Источник

Преобразование к типу дата

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

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

В 1С:Предприятии при создании перемененных не нужно определять тип её значения. В других языках программирования типа C# или C++ при создании переменных необходимо сразу определять тип значения. Так как в 1С нет строгой типизации переменных, то в одну и туже переменную можно записывать значения разного типа.

Но при выполнении соединения строк или арифметических действий система 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С

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

Источник

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

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

  1. Что означает преобразование значения к типу Булево не может быть выполнено?
  2. Как преобразовать строку в дату 1с?
  3. Как задать дату в 1с?
  4. Что такое тип Булево?
  5. Что такое тип Булево в 1с?
  6. Как исправить дату в 1С?
  7. Как строку превратить в дату?
  8. Как преобразовать значение в строку 1С?
  9. Что такое рабочая дата в 1С?
  10. Сколько месяцев между датами 1С?
  11. Как поменять дату и время в 1С?
  12. Какие значения может принимать тип Булево?
  13. Какое условие можно использовать в операторе Если 1с?
  14. Для чего нужны запросы в 1с?
  15. Как в 1С преобразовать строку в число?
  16. Как изменить дату актуальности в 1С?
  17. Как изменить календарь в 1С?
  18. Как в 1С 8 изменить рабочую дату?
  19. Как в алгоритме обозначить тип дата 1С?
  20. Как в алгоритме обозначить тип дата?
  21. Как проверить на пустую строку 1С?
  22. Как получить текущую дату в 1С?
  23. Как найти дату в строке 1С?
  24. Как заменить символ в строке 1С?
  25. Как преобразовать строку в дату C#?
  26. Как разбить строку на слова 1С?

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

Значения данного типа возвращаются в качестве результата вычисления логических выражений. То есть, если преобразование значения к типу Булево не может быть выполнено в 1С — у вас неверно сформулировано это самое логическое выражение.

Как преобразовать строку в дату 1с?

Варианты преобразования даты из строки

СтроковаяДата = СтрЗаменить(СтроковаяДата, «:»,»»); НоваяДата = Дата(Прав(СтроковаяДата, 8) + Лев(СтроковаяДата,6));

Как задать дату в 1с?

Дата в программе 1С — примитивный тип данных. Дату можно задать прямо в коде программы 1С, в одинарных кавычках: первые 4 цифры — это год, затем 2 цифры — это месяц, и последние — день. Дату можно задать командой Дата () и указать параметры этой команды в скобках, из которых будет сформирована дата.

Что такое тип Булево?

Boolean (Булев, Логический тип данных) — примитивный тип данных в информатике, которые могут принимать два возможных значения, иногда называемых истиной (true) и ложью (false).

Что такое тип Булево в 1с?

Булево — один из базовых типов данных логических выражений. Значения типа Булево имеют два значения Истина и Ложь, задаваемых соответствующими литералами. Часто применяется в различных логических вычислениях. Для демонстрации работы с типом данных мы разработаем простой логический вычислитель Светофор.

Как исправить дату в 1С?

Для этого в главном меню пользователю необходимо выбрать опцию «Настройки» и перейти во вкладку «Персональные настройки». Переключатель нужно перевести в опцию «Другая дата», затем изменить дату на нужную пользователю.

Как строку превратить в дату?

Преобразование строки в дату:

  • Вариант 1 — по составляющим: Дата(<Год>, <Месяц>, <День>, <Час>, <Минута>, <Секунда>)
  • Вариант 2 — по строке — Дата(<строка>),, где Строка должна содержать дату в локальном формате даты или в каноническом виде YYYYMMDDHHMMSS.

Как преобразовать значение в строку 1С?

В 1С Бухгалтерия 3.0 преобразовать число в строку 1С можно с помощью функции «Строка()» или «СокрЛП()», а также с помощью «Формат()».

Что такое рабочая дата в 1С?

Рабочая дата, как правило, совпадает с текущей датой компьютера. Если вводится большое количество документов с датой, отличной от текущей, то на период такой работы удобно в качестве рабочей даты программы установить произвольную дату: Раздел: Главное — Персональные настройки.

Сколько месяцев между датами 1С?

Функция РАЗНОСТЬДАТ() в запросе

Рассчитать количество месяцев между датами в системе 1с проще всего в запросе, здесь разработчику доступна замечательная функция РАЗНОСТЬДАТ(). Функция рассчитывает календарную разницу между датами в заданной единице измерения.

Как поменять дату и время в 1С?

По правой клавише мыши выберите «Изменить выделенные ». В форме «Изменение выделенных элементов» на закладке «Реквизиты» установите флажок в поле «Дата». В колонке «Новое значение» укажите новую дату и время документов. Кнопка «Изменить реквизиты».

Какие значения может принимать тип Булево?

В языке программирования 1С переменную с примитивным типом Булево можно задать явно: А = Истина; Б = Ложь; Где Истина и Ложь единственные значения, которые может принимать примитивный тип Булево.

Какое условие можно использовать в операторе Если 1с?

В качестве оператора условия можно использовать ни только оператор Если, но также оператор?(вычислить выражение по условию). Этот оператор имеет следующий синтаксис. Если логическое выражение Условие принимает значение Истина, то выполняется выражение 1, а иначе выполняется выражение 2.

Для чего нужны запросы в 1с?

Механизм запросов — это один из способов доступа к данным, которые поддерживает платформа. Используя этот механизм, разработчик может читать и обрабатывать данные, хранящиеся в информационной базе; изменение данных с помощью запросов невозможно.

Как в 1С преобразовать строку в число?

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

СтрокаЧ1 = «120»; СтрокаЧ2 = «12.24»; СтрокаЧ3 = «12,24»; СтрокаЧ4 = «0,24»; СтрокаЧ5 = «0000001»; Для того, чтобы выполнить преобразование этих строк в число, необходимо воспользоваться методом Число. Этот метод преобразует параметр в число.

Как изменить дату актуальности в 1С?

Варианты управления механизмом «Дата актуальности учета»:

  • Дату актуальности можно установить (меню «Сервис» — «Управление датой актуальности учета»).
  • Механизм можно вообще отключить (меню «Сервис» — «Настройка программы» — «Дата актуальности» — флаг «Не использовать механизм даты актуальности учета»).

Как изменить календарь в 1С?

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

Как в 1С 8 изменить рабочую дату?

Как в «1С:Бухгалтерии 8» (ред. 3.0) установить рабочую дату для автоматической подстановки в документы?:

  • Раздел: Главное — Персональные настройки.
  • В открывшейся форме установите переключатель «Рабочая дата» в положение:
  • Кнопка «Записать и закрыть».

Как в алгоритме обозначить тип дата 1С?

В параметр <Дата> задаётся «наша дата», в параметр <Тип> временной интервал (Год, Полугодие, Месяц и т. д.). Пример: «ВЫБРАТЬ | ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(2019, 12, 31), ДЕНЬ, 1) КАК ДатаСоСдвигом» |.

Как в алгоритме обозначить тип дата?

В описании даты можно использовать любой разделитель. Например: ДатаДокумента =’2014.03.15′; Второй способ определения даты — это использование функции глобального контекста Дата(<Значение>).

Как проверить на пустую строку 1С?

В 1С проверка на пустое значение осуществляется специальной функцией. Что бы проверить заполнен ли имеющийся у вас реквизит или переменная следует использовать функцию из глобального контекста ЗначениеЗаполнено(<Значение>).

Как получить текущую дату в 1С?

Функция 1С ТекущаяДата() возвращает текущую дату и время компьютера, как они установлены в операционной системе. Например: Выполняем 1С ТекущаяДата() 1С возвращает «01.03.2012 12:00:00»

Как найти дату в строке 1С?

Как получить дату из строки?:

  • Используя строковые литералы: НоваяДата = ‘20200101’; Сообщить(НоваяДата); //Результат: // 01.01.2020 0:00:00.
  • Используя преобразование строкового значения с помощью встроенной функции Дата(): НоваяДата = Дата(‘20200101’); Сообщить(НоваяДата); //Результат: // 01.01.2020 0:00:00.

Как заменить символ в строке 1С?

1С СтрЗаменить — замена строки или символа:

  • Выполняем 1С СтрЗаменить(«Здесь; одни; точки;», «;», «.»)
  • 1С возвращает» Здесь.
  • Выполняем 1С СтрЗаменить(«Ежик любит посмеяться, Ежик любит попрыгать, Ежиковидный смех», «Ежик», «Кролик»)
  • 1С возвращает «Кролик любит посмеяться, Кролик любит попрыгать, Кроликовидный смех»

Как преобразовать строку в дату C#?

Чтобы преобразовать строковое представление даты и времени в DateTime объект, используйте DateTime. Parse() метод. Возвращаемое значение этого метода указывает, успешно ли выполнено преобразование.

Как разбить строку на слова 1С?

В новых версиях платформы 1С:Предприятие 8.3 существует функция встроенного языка СтрРазделить(), для разделения строки на подстроки по разделителю. Данная функция реализована в платформе 8.3.6.1977.

Ответить


Подборка по базе: практическая работа (1).rtf, государственное управление контрольная работа.doc, Курсовая работа Подкорытов 13 вариант ПОФП.docx, практическая работа 2 прогамма наставничества1111.docx, Лабораторная работа №3. Справочники, разработка форм.doc, Практическая работа 1.docx, Самостоятельная работа по теме «Сложение и вычитание смешанных ч, Практическая работа № 1_compressed (2).docx, Практическая работа № 2.docx, Тема 2.3 Практическая работа № 5. Выполнила Мищенко О.П.doc


1. Неверно, что работа со справочниками может осуществляться в режиме …
*просмотра и редактирования
*выбора элемента справочника
*диагностического функционирования
2. Синоним объекта конфигурации …
*это строка не более 128 символов, состоящая из букв, цифр и знаков подчеркивания
*не должен начинаться с цифры и содержать пробелы
*не имеет ограничений на использование символов
3. Ввод документа на основании – это возможность …
*автоматического копирования информации из одного вида документа в документ другого вида
*создания различных видов документов в строго определенной последовательности
*создания документов на основании заданных инструкций
4. Независимым называется регистр сведений, …
*не использующий подчинение регистратору
*закрытый для редактирования пользователем (оператором)
*временно заблокированный для ввода и хранения любой информации
5. В окне редактирования объекта свойства Имя, Синоним и Комментарий входят в состав
группы «…»
*Основные
*Представление
*Общие
6. Неверно, что тип данных «…» относится к базовым
*Число
*Строка
*Дата
*Булево
*Параметр
7. Синтаксический контроль модуля предназначен для …
*проверки на правильности использования синтаксических конструкций встроенного языка в редактируемом модуле
*выполнения автоматического смещения текста, расположенного внутри управляющих конструкций, на определенное количество знаков табуляции
*проверки правильности взаимодействия объектов метаданных, описанного в редактируемом модуле
8. Форма объекта конфигурации включает в себя …
*экранный диалог, модуль формы, список реквизитов
*экранный диалог и печатную форму
*только экранный диалог
9. Системными реквизитами любого справочника являются …
*Код и Наименование
*Имя, Синоним и Комментарий
*Номер и Дата
10. Все регистры на этапе конфигурирования описываются набором …
*измерений и ресурсов
*инструкций, обеспечивающих порядок фиксирования ошибок пользователей
*свойств, определяющих порядок действий пользователя при работе с конфигурацией

11. Особенность реквизитов отчета в том, что …
*они не сохраняются в информационной базе
*они имеют только один тип данных – «Дата»
*реквизиты отчета не могут располагаться в табличной части, т.к. у отчетов не может быть табличной части
12. Типизированными объектами конфигурации называются объекты конфигурации, …
*которые могут образовывать типы значений других объектов
*для которых может быть указан тип информации, содержащейся в объекте
*объединенные по типу данных в единую группу
13. Типообразующими объектами конфигурации называются объекты конфигурации, …
которые могут образовывать типы значений других объектов для которых может быть указан тип информации, содержащейся в объекте объединенные по типу данных в единую группу
14. Регистр расчета предназначен для …
*накопления и хранения данных, являющихся результатами расчетов
*формирования инструкций по порядку проведения сложных расчетов в информационной базе
*выдачи справочной информации о расчетах, используемых в бухгалтерском учете
*обеспечения работы калькулятора в информационной базе
15. Под объектом конфигурации понимается …
*формальное описание группы понятий со сходными характеристиками и одинаковым предназначением
*компьютерный аналог конкретного понятия, направленный на описание хозяйственной деятельности организации
*конфигурация, полностью созданная программистом самостоятельно с учетом потребностей организации
16. Регистр накопления предназначен для …
*накопления и хранения числовой информации в разрезе нескольких измерений
*формирования инструкций по порядку учета накопленной информации в информационной базе
*описания способов учета накопленных материальных средств на предприятии
17. Иерархические справочники – это …
*многоуровневые справочники, включающие в себя как отдельные элементы, так и группы элементов
*справочники, входящие в определенную группу справочников, объединенных по какому-либо критерию
*справочники-владельцы, имеющие в своем подчинении другие справочники
18. Регистры в 1С:Предприятие используются для …
*хранения информации о состояниях и количествах различных объектов информационной базы
*анализа остатков и движения средств
*регистрации действий пользователей системы
*подсчета количества ошибок, совершенных пользователями
19. Неверно, что в 1С:Предприятие существуют регистры …
накопления сведений бухгалтерии расчета учета и информации
20. Алгоритм поведения документа определяется …
*с помощью встроенных механизмов и встроенного программного языка

*только с помощью встроенного программного языка
*с помощью настройки диалоговой формы
*с помощью определения функционала пользователей
21. Движения документа – это …
*изменения в регистрах и других объектах конфигурации, порожденные этим документом
*перемещение документа из одного журнала документов в другой
*создание документа, его редактирование и удаление
22. Перечисления предназначены для …
*описания постоянных наборов значений, не изменяемых в процессе работы конфигурации
*описания возможных вариантов бухгалтерских операций при работе с финансами предприятия
*хранения информации обо всех видах объектов конфигурации
*хранения перечня всех объектов, размещенных в конфигурации
23. В качестве обязательных реквизитов каждый справочник имеет …
«код» и «наименование»
«код» и «синоним»
«идентификатор» и «синоним»
24. Палитра свойств доступна …
*только в Конфигураторе
*только в режиме 1С:Предприятие
*и в Конфигураторе, и в режиме 1С:Предприятие
25. Текстовый редактор 1С:Предприятие предназначен для …
*создания программных модулей на встроенном языке и редактирования документов в текстовом виде
*работы с объектами конфигурации при заполнении их текстовой информацией
*создания текстовых документов и формирования печатных форм документов
*комментариев и справочного материала, а также формирования сводной итоговой информации
26. Для запуска системы 1С:Предриятие можно использовать режимы: …
*1С:Предприятие, Конфигуратор, Монитор, Отладчик
*1С:Предприятие, Конфигуратор, Административный, Отладчик
*1С:Предприятие, Конфигуратор
*1С:Предприятие, Административный, Отладчик
27. Чтобы открыть модуль документа, надо …
*в окне редактирования документа перейти на закладку «Прочее» и нажать кнопку «Модуль объекта»
*в дереве конфигурации установить курсор на название интересующего документа, нажать правую кнопку мыши и из контекстного меню выбрать пункт «Открыть модуль объекта»
*в окне редактирования документа перейти на закладку «Прочее» и нажать кнопку «Модуль объекта» или в дереве конфигурации установить курсор на название интересующего документа, нажать правую кнопку мыши и из контекстного меню выбрать пункт «Открыть модуль объекта»
28. Регистр бухгалтерии предназначен для …
*накопления и хранения данных, учет которых ведется исходя из некоторого плана счетов
*формирования инструкций по порядку учета бухгалтерских проводок и операций в информационной базе
*выдачи справочной информации о расчетах, используемых в бухгалтерском учете
*того, чтобы фиксировать сведения о работе пользователей в подсистеме конфигурации
«Бухгалтерия»
29. Периодическим называется регистр сведений, …
*использующий привязку ко времени

*периодически изменяющий свое содержимое
*хранящий только периодическую информацию
30. Верным утверждением является «…»
*на этапе конфигурирования, используя режим Предопределенные, можно определить как группы элементов, так и сами элементы
*все без исключения элементы справочника вводятся в режиме 1С:Предприятия
*на этапе конфигурирования, используя режим Предопределенные, можно определить только группы элементов
31. При форматировании синтаксических конструкций встроенного языка «синтаксический
отступ» выполняет автоматическое …
*смещение вправо текста, расположенного внутри управляющих конструкций, на определенное количество знаков табуляции
*выравнивание текста строки по левой границе предыдущей строки
*смещение текста комментария от операторов на определенное количество знаков табуляции
32. Подчиненные документы – это …
*совокупность взаимосвязанных документов различных видов, имеющих ссылку на документ- родитель
*группа однотипных документов, созданных по одному шаблону
*документы, имеющие в своем составе реквизиты, подчиненные другим объектам конфигурации
33. С помощью конструктора … можно создать печатную форму отчета
выходных форм ввода на основании запросов
34. На закладке «…» окна редактирования регистра сведений определяется структура
хранения данных регистра
Данные
Подсистемы
Макеты
Формы
35. Внешние отчеты …
*по своему назначению и способу использования ничем не отличаются от обычных отчетов, но хранятся в отдельных файлах
*предназначены для формирования отчетной информации о деятельности организации по требованию внешних инстанций
*предназначены для формирования итоговой информации о внешней деятельности организации с другими организациями
*как вид отчетов в 1С:Предприятие не существуют
36. Агрегатными объектами конфигурации называются объекты конфигурации, …
*которые могут иметь в своем составе подчиненные объекты
*которые могут образовывать типы значений других объектов
*объединенные по какому-либо реквизиту в единую группу
37. Набор свойств объекта конфигурации …
*для каждого объекта конфигурации жестко определен программой и не может быть изменен, однако на этапе конфигурирования можно задать конкретные значения для каждого из свойств, определяя его поведение в режиме 1С:Предприятие
*для каждого объекта конфигурации в режиме конфигурирования может быть определен произвольно, ограничением является обязательное наличие у каждого объекта конфигурации основных свойств (Имя, Синоним и Комментарий)

*может быть изменен только у объектов типа «Форма» и «Справочник», а для остальных объектов конфигурации набор свойств определен еще на этапе разработки программной части системы
1С:Предприятие
38. Если необходимо создать регистр сведений для хранения данных по номенклатуре
товаров, реализуемых фирмой, …
*в этом случае номенклатура является измерением, а цена – ресурсом
*то, поскольку элементов всего два, для хранения данных не имеет значения, что выбрано в качестве измерения, а что – в качестве ресурса
*в этом случае цена является измерением, а номенклатура – ресурсом
39. В системе 1С:Предприятие режим Монитор предназначен для …
*наблюдения за пользователями, работающими в информационной базе, и системными изменениями
*слежения за выполнением программы и фиксирования результатов ее выполнения
*визуализации отдельных функций СУБД
*визуального представления отдельных результатов
40. Под ресурсами регистров понимают набор …
*данных, учитываемых в регистре
*значений, которые детализируют движения средств и в разрезе которых хранятся остатки
*числовых значений, определяющих возможности регистров по количественному накоплению информации
41. Неверно, что имя объекта конфигурации …
*это строка не более 128 символов, состоящая из букв, цифр и знаков подчеркивания
*не должно начинаться с цифры и содержать пробелы
*допускает смешивать прописные и строчные буквы
*не имеет ограничений на использование символов
42. Под измерениями регистров понимают …
*набор значений, в разрезе которых учитываются данные в регистре
*числовые величины, являющиеся количественными значениями остатков материальных средств
*набор числовых значений, определяющих возможности регистров по количественному накоплению информации
43. Для реквизита документа Дата установить тип данных «Дата» …
*невозможно, т.к. реквизит Дата жестко определен для любого документа
*можно, для этого необходимо для интересующего документа в дереве конфигурации в пункте
Реквизиты выбрать реквизит Дата и в свойствах данного реквизита измените тип данных на
«Дата»
*можно, для этого необходимо создать соответствующую процедуру в модуле объекта
44. Отношение подчиненности между справочниками заключается …
в связи элементов подчиненного справочника с элементами справочника-владельца в строгом соответствии количества реквизитов и их идентификаторов подчиненного справочника реквизитам справочника-владельца в невозможности редактирования значений элементов подчиненного справочника без внесения тех же изменений в справочник-владелец
45. Регистр сведений …
*предназначен для накопления и хранения любой информации в разрезе нескольких измерений
*предназначен для формирования инструкций по порядку учета накопленной информации в информационной базе
*предназначен для выдачи справочной информации об используемых объектах конфигурации фиксирует сведения о работе пользователей в конфигурации
46. Значения перечислений устанавливаются …

*в режиме Конфигуратор
*в режиме 1С:Предприятие
*в режимах Конфигуратор и 1С:Предприятие
47. Текстовое поле как элемент диалога может быть …
*статическим или информационным
*динамическим или функциональным
*вычислительным или стационарным

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
Процедура КнопкаВыполнитьНажатие(Кнопка)
    // Вставить содержимое обработчика.
    Если НЕ(ЗначениеЗаполнено(РД) и ЗначениеЗаполнено(Организация)) тогда
        предупреждение("Не определена организация или дата отчета");
        Возврат;
    КонецЕсли;
    Зап=Новый Запрос;
    Зап.Текст="ВЫБРАТЬ
    |   ВложенныйЗапрос.Сотрудник КАК Сотрудник,
    |   ВложенныйЗапрос.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
    |   ВложенныйЗапрос.Должность,
    |   Прием.ПриемНаРаботу,
    |   РАЗНОСТЬДАТ(Прием.ПриемНаРаботу, &РД, МЕСЯЦ) КАК МесяцыОтработано,
    |   0 КАК ДнейОтработано,
    |   0 КАК Отпуск,
    |   0 КАК ОстатокДней,
    |   0 КАК СреднедневнойЗаработок
    |ИЗ
    |   (ВЫБРАТЬ
    |       РаботникиОрганизацийСрезПоследних.Период КАК Период,
    |       РаботникиОрганизацийСрезПоследних.Регистратор КАК Регистратор,
    |       РаботникиОрганизацийСрезПоследних.НомерСтроки КАК НомерСтроки,
    |       РаботникиОрганизацийСрезПоследних.Активность КАК Активность,
    |       РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
    |       РаботникиОрганизацийСрезПоследних.Организация КАК Организация,
    |       РаботникиОрганизацийСрезПоследних.УдалитьФизлицо КАК УдалитьФизлицо,
    |       РаботникиОрганизацийСрезПоследних.УдалитьПриказ КАК УдалитьПриказ,
    |       РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
    |       РаботникиОрганизацийСрезПоследних.ОбособленноеПодразделение КАК ОбособленноеПодразделение,
    |       РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
    |       РаботникиОрганизацийСрезПоследних.Должность КАК Должность,
    |       РаботникиОрганизацийСрезПоследних.ГрафикРаботы КАК ГрафикРаботы,
    |       РаботникиОрганизацийСрезПоследних.ПериодЗавершения КАК ПериодЗавершения,
    |       РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавокЗавершения КАК ЗанимаемыхСтавокЗавершения,
    |       РаботникиОрганизацийСрезПоследних.ОбособленноеПодразделениеЗавершения КАК ОбособленноеПодразделениеЗавершения,
    |       РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизацииЗавершения КАК ПодразделениеОрганизацииЗавершения,
    |       РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения КАК ДолжностьЗавершения,
    |       РаботникиОрганизацийСрезПоследних.ГрафикРаботыЗавершения КАК ГрафикРаботыЗавершения,
    |       РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния,
    |       РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостоянияЗавершения КАК ПричинаИзмененияСостоянияЗавершения,
    |       РаботникиОрганизацийСрезПоследних.УдалитьТабельныйНомер КАК УдалитьТабельныйНомер,
    |       РаботникиОрганизацийСрезПоследних.УдалитьПричинаИзмененияСостояния КАК УдалитьПричинаИзмененияСостояния,
    |       РаботникиОрганизацийСрезПоследних.УдалитьОбособленноеПодразделение КАК УдалитьОбособленноеПодразделение,
    |       РаботникиОрганизацийСрезПоследних.ПервичныйДокумент КАК ПервичныйДокумент
    |   ИЗ
    |       РегистрСведений.РаботникиОрганизаций.СрезПоследних(&РД, Организация = &Организация) КАК РаботникиОрганизацийСрезПоследних) КАК ВложенныйЗапрос
    |       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |           МАКСИМУМ(РаботникиОрганизаций.Период) КАК ПриемНаРаботу,
    |           РаботникиОрганизаций.Сотрудник КАК Сотрудник
    |       ИЗ
    |           РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
    |       ГДЕ
    |           РаботникиОрганизаций.Организация = &Организация
    |           И РаботникиОрганизаций.Период <= &РД
    |           И РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)
    |       
    |       СГРУППИРОВАТЬ ПО
    |           РаботникиОрганизаций.Сотрудник) КАК Прием
    |       ПО ВложенныйЗапрос.Сотрудник = Прием.Сотрудник
    |ГДЕ
    |   ВложенныйЗапрос.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
    |
    |УПОРЯДОЧИТЬ ПО
    |   ВложенныйЗапрос.Сотрудник.Наименование";
    Зап.УстановитьПараметр("Организация",Организация);
    Зап.УстановитьПараметр("РД",КонецДня(РД));
    Рез=Зап.Выполнить().Выгрузить();
    Рез.Колонки.Добавить("сч");
    Для Каждого Стр из Рез Цикл
        состояние("Обработка - "+Стр.Сотрудник);
        //Определим Количестов Дней отпуска
        Зап.Текст="ВЫБРАТЬ
        |   ОтпускаОрганизацийРаботникиОрганизации.Сотрудник,
        |   СУММА(ОтпускаОрганизацийРаботникиОрганизации.КоличествоДней) КАК КоличествоДней
        |ИЗ
        |   Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ОтпускаОрганизацийРаботникиОрганизации
        |ГДЕ
        |   ОтпускаОрганизацийРаботникиОрганизации.Ссылка.Проведен = ИСТИНА
        |   И ОтпускаОрганизацийРаботникиОрганизации.Ссылка.Организация = &Организация
        |   И ОтпускаОрганизацийРаботникиОрганизации.ПричинаОтсутствия = ЗНАЧЕНИЕ(Перечисление.ПричиныОтсутствияНаРаботеВОрганизации.ОтпускЕжегодный)
        |   И ОтпускаОрганизацийРаботникиОрганизации.ДатаНачала >= &ДН
        |   И ОтпускаОрганизацийРаботникиОрганизации.ДатаОкончания <= &РД
        |   И ОтпускаОрганизацийРаботникиОрганизации.Сотрудник = &Сотрудник
        |
        |СГРУППИРОВАТЬ ПО
        |   ОтпускаОрганизацийРаботникиОрганизации.Сотрудник
        |
        |УПОРЯДОЧИТЬ ПО
        |   ОтпускаОрганизацийРаботникиОрганизации.Сотрудник.Наименование";
        КолДн=0;
        ЗАп.УстановитьПараметр("ДН",Стр.ПриемНаРаботу);
        ЗАп.УстановитьПараметр("Сотрудник",Стр.Сотрудник);
        жж=Зап.Выполнить().Выгрузить();
        Для Каждого фф из жж Цикл
            КолДн=КолДн+фф.КоличествоДней;
        КонецЦикла;
        Стр.Отпуск=КолДн;
        ТД=Дата(Формат(Год(РД),"ЧГ=0"),Месяц(РД),День(Стр.ПриемНаРаботу));
        Если День(Стр.ПриемНаРаботу)>День(РД) тогда
            Если Месяц(РД)=1 тогда
                ТД=Дата(Год(РД)-1,1,День(Стр.ПриемНаРаботу));
            иначе
                ТД=Дата(Год(РД),Месяц(РД)-1,День(Стр.ПриемНаРаботу));
            КонецЕсли;
        КонецЕсли;
        стр.ДнейОтработано=мв_ПолучитьКоличествоДней(РД,ТД);
        Стр.ОстатокДней=(?(стр.ДнейОтработано>14,1,0)+Стр.МесяцыОтработано)*2.33;
        Если Стр.ДнейОтработано<15 тогда
            Если Цел(Стр.МесяцыОтработано/12)=Стр.МесяцыОтработано/12 тогда
                Стр.ОстатокДней=28*Цел(Стр.МесяцыОтработано/12);
            КонецЕсли;
        КонецЕсли;
        Стр.ОстатокДней=Стр.ОстатокДней-Стр.Отпуск;
        ОБ=Документы.НачислениеОтпускаРаботникамОрганизаций.СоздатьДокумент();
        Об.Организация=Организация;
        Об.Дата=РД;
        Об.Сотрудник=Стр.Сотрудник;
        Об.ДатаНачалаОсновногоОтпуска=РД;
        ОБ.ДатаНачалаСобытия =РД;
        мСведенияОВидахРасчета = Новый Соответствие;
        ПериодРасчетаСреднегоЗаработкаОкончание=РД;
        ПериодРасчетаСреднегоЗаработкаНачало=РД+86400;
        ВидРасчета=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпКалендарныеДни;
        СведениеОВидеРасчета = ПроведениеРасчетов.ПолучитьСведенияОВидеРасчета(мСведенияОВидахРасчета, ВидРасчета);
        МесяцевРасчетногоПериода = ?(СведениеОВидеРасчета.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоКолдоговору,СведениеОВидеРасчета.ПериодРасчетаСреднегоЗаработка,НачислениеОтпускаРаботникамОрганизацийПереопределяемый.КоличествоМесяцевРасчетаПоЗакону(ОБ));
        //Определим счет затрат на сотрудника
        Зат=Новый Запрос;
        Зат.Текст="ВЫБРАТЬ
                  | БУОсновныеНачисления.ПериодРегистрации,
                  | БУОсновныеНачисления.СчетДт КАК сч
                  |ИЗ
                  | РегистрРасчета.БУОсновныеНачисления КАК БУОсновныеНачисления
                  |ГДЕ
                  | БУОсновныеНачисления.Организация = &Орг
                  | И БУОсновныеНачисления.Сотрудник = &Сотр";
        Зат.УстановитьПараметр("Орг",Организация);
        Зат.УстановитьПараметр("Сотр",Стр.Сотрудник);
        фф=Зат.Выполнить().Выгрузить();
        фф.Сортировать("ПериодРегистрации Возр");
        Если фф.Количество()>0 тогда
            Стр.Сч=фф[0].сч;
        КонецЕсли;
    КонецЦикла;
    Если рез.Количество()=0 тогда
        Предупреждение("Нет данных для вывода");
        Возврат;
    КонецЕсли;
    
    Таб=Новый ТабличныйДокумент;
    Макет=ПолучитьМакет(?(флСредний,"Макет1","Макет"));
    Обл=Макет.ПолучитьОбласть("Шапка");
    Обл.Параметры.РД=Формат(РД,"ДФ=dd.MM.yyyy");
    Обл.Параметры.Организация=Организация;
    Таб.Вывести(Обл);
    ИтогоСумма=0;
    ИтогоСуммаЕСН=0;
    ИтогоВсего=0;
    Если флРасшифровка и флСредний тогда
        Таб.НачатьАвтогруппировкуСтрок();
    КонецЕсли;
    Для Каждого Стр из рез Цикл
        Состояние("Обработка - "+Стр.Сотрудник);
        Если ЗначениеЗаполнено(Сотр) тогда
            Если Сотр<>Стр.Сотрудник тогда
                Продолжить;
            КонецЕсли;
        КонецЕсли;
        Обл=Макет.ПолучитьОбласть("Стр");
        Обл.Параметры.Заполнить(Стр);
        Обл.Параметры.РД=Формат(РД,"ДФ=dd.MM.yyyy");
        Если флСредний тогда
            ПорядокРасчета = Перечисления.ПорядокРасчетаОтпуска.ПоКалендарнымДням;
            мРассчитываемыеТаблицы = Новый Структура("Начисления,РасчетСреднего");
            мРассчитываемыеТаблицы.Начисления = Ложь;
            мРассчитываемыеТаблицы.РасчетСреднего = Истина;
            
            ДатаРасчета = РД;
            
            Док = Документы.НачислениеОтпускаРаботникамОрганизаций.НайтиПоНомеру("Временный", ДатаРасчета);
            Если Док.Пустая() Тогда
                текДок = Документы.НачислениеОтпускаРаботникамОрганизаций.СоздатьДокумент();
                текДок.Номер = "Временный";
            Иначе
                текДок = Док.ПолучитьОбъект();
                Если текДок.ПометкаУдаления Тогда
                    текДок.УстановитьПометкуУдаления(Ложь);
                КонецЕсли;
            КонецЕсли;
            текДок.Организация=Организация;
            текДок.Дата=РД;
            текДок.ДатаНачалаОсновногоОтпуска = НачалоДня(РД);
            текДок.ДатаОкончанияОсновногоОтпуска = КонецДня(ДатаРасчета);
            текДок.ПорядокРасчетаОсновногоОтпуска = ПорядокРасчета;
            текДок.ОсновнойОтпуск = Истина;
            текДок.ПериодРегистрации = НачалоМесяца(ДатаРасчета);
            текДок.ДатаВыплатыДохода = НачалоМесяца(ДатаРасчета);
            текДок.ДатаНачалаСобытия = ДатаРасчета;
            текДок.Сотрудник = Стр.Сотрудник;
            текДок.ПериодРасчетаСреднегоЗаработкаОкончание=КонецМесяца(ДобавитьМесяц(НачалоМесяца(РД),-1));
            текДок.ПериодРасчетаСреднегоЗаработкаНачало=НачалоДня(ДобавитьМесяц(НачалоМесяца(текДок.ПериодРасчетаСреднегоЗаработкаОкончание),-11));
            текДок.Записать();
            ЗаполнитьЗначенияСвойств(текДок, ОстаткиОтпусков.РабочийГодПериодаОтпуска(
            текДок.Сотрудник, текДок.ДатаНачалаОсновногоОтпуска, текДок.ДатаОкончанияОсновногоОтпуска, текДок.Ссылка, ТекДок.ПорядокРасчетаОсновногоОтпуска, ТекДок.ОсновнойОтпуск, ТекДок.ПорядокРасчетаОсновногоОтпуска));
            текДок.Рассчитать(мРассчитываемыеТаблицы);
            ВариантРасчетаДокумента = текДок.ОсновнойВариантРасчетаДокумента();
            ВидРасчета = ВариантРасчетаДокумента.ВидРасчета;
            мСведенияОВидахРасчета = Новый Соответствие;
            СведениеОВидеРасчета = ПроведениеРасчетов.ПолучитьСведенияОВидеРасчета(мСведенияОВидахРасчета, ВидРасчета);
            МесяцевРасчетногоПериода = 12;
            текДок.Записать();
            СреднийДневнойЗаработок = Формат(НачислениеОтпускаРаботникамОрганизацийПереопределяемый.РасчетСреднегоЗаработка(текДок, СведениеОВидеРасчета.СпособРасчета, МесяцевРасчетногоПериода, текДок.ПериодРасчетаСреднегоЗаработкаНачало, текДок.ПериодРасчетаСреднегоЗаработкаОкончание),  "ЧЦ=12; ЧДЦ=2; ЧН=");
            Обл.Параметры.СреднийЗаработок=СреднийДневнойЗаработок;
            Сумма=Окр(СреднийДневнойЗаработок*Стр.ОстатокДней,2);
            ИтогоСумма=ИтогоСумма+Сумма;
            Обл.Параметры.Сумма=Сумма;
            текДок.Записать(РежимЗаписиДокумента.Проведение);
            ВыборкаПоШапкеДокумента = текДок.СформироватьЗапросПоШапке().Выбрать();
            ВыборкаПоШапкеДокумента.Следующий();
            ТабДокумент = ФормированиеПечатныхФормЗК.ПечатьРасчетаСреднегоЗаработка(текДок.Ссылка, текДок.ДатаНачалаСобытия, ВыборкаПоШапкеДокумента.ПериодРасчетаСреднегоЗаработка, "с " + Формат(текДок.ДатаНачалаОсновногоОтпуска,"ДФ=dd.MM.yyyy") + " по " + Формат(текДок.ДатаОкончанияОсновногоОтпуска,"ДФ=dd.MM.yyyy"), ?(текДок.ПорядокРасчетаОсновногоОтпуска = Перечисления.ПорядокРасчетаОтпуска.ПоКалендарнымДням,Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоКалендарнымДням,Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоШестидневке), НачислениеОтпускаРаботникамОрганизацийПереопределяемый.ИспользуетсяСреднеЧасовойЗаработок(текДок));
            текДок.Удалить();
            БазаЕСН=ПолучитьБазуЕСН(НачалоГода(РД),РД,Стр.Сотрудник.ФизЛицо,Организация);
            ПроцЕСН=?(БазаЕСН<512000,ПолучитьПроцЕСН(Организация,РД),10);
            ПроцТравм=ПолучитьПроцТравм(Организация,РД);
            Обл.Параметры.ПроцТравм=ПроцТравм;
            Обл.Параметры.ПроцЕСН=ПроцЕСН;
            Обл.Параметры.БазаЕСН=БазаЕСН;
            СуммаЕСН=Окр(Сумма*((ПроцЕСН+ПроцТравм)/100),2);
            ИтогоСуммаЕсн=ИтогоСуммаЕсн+СуммаЕсн;
            Обл.Параметры.СуммаЕСН=СуммаЕСН;
            Всего=Сумма+СуммаЕСН;
            Обл.Параметры.Всего=Всего;
            ИтогоВсего=ИтогоВсего+Всего;
        КонецЕсли;
        Таб.Вывести(Обл,1);
        Если флСредний и флРасшифровка тогда
            Таб.Вывести(ТабДокумент,2);
        КонецЕсли;
    КонецЦикла;
    Если флСредний тогда
        Обл=Макет.ПолучитьОбласть("ит");
        Обл.Параметры.Сумма=ИтогоСумма;
        Обл.Параметры.СуммаЕСН=ИтогоСуммаЕСН;
        Обл.Параметры.Всего=ИтогоВсего;
        Таб.Вывести(Обл,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)

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