Ошибка неверный тип структуры количества количество для расчета

Показывать по
10
20
40
сообщений

Новая тема

Ответить

enches

Дата регистрации: 24.01.2014
Сообщений: 9

«Здравствуйте! Подскажите, пожалуйста, что нужно заполнить. При выполнении регламентных операций по каждому дому (Расчет квартплаты и бухгалтерия ЖКХ 2.0) ошибки: 1) Невенрный тип структуры количество (количество для расчета); 2) Лицевой счет: Иванов Иван Иванович. Не удалось выполнить преобразование единиц. Вид тарифа: Эл.энергия (кВт/ч)->(квт/ч.норматив для преобразования не указан»

uinny

Дата регистрации: 12.01.2008
Сообщений: 4814

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

Показывать по
10
20
40
сообщений

Читают тему:

Процедура УстановитьУправляемуюБлокировку(СтруктураПараметров, КоллекцияЗначенийБлокировки = Неопределено, КоллекцияОписанияИсточника = Неопределено, Отказ = Ложь, Заголовок = «») Экспорт

   
   Если НЕ ТипЗнч(СтруктураПараметров) = Тип(«Структура») Тогда

       Возврат;

   КонецЕсли;

   
   ИспользоватьЗначенияБлокировки = КоллекцияЗначенийБлокировки <> Неопределено

       И (ТипЗнч(КоллекцияЗначенийБлокировки) = Тип(«Структура»)

           ИЛИ ТипЗнч(КоллекцияЗначенийБлокировки) = Тип(«Соответствие»))

       И КоллекцияЗначенийБлокировки.Количество() > 0;

       
   ИспользоватьИсточникДанных     = КоллекцияОписанияИсточника <> Неопределено

       И (ТипЗнч(КоллекцияОписанияИсточника) = Тип(«Структура»)

           ИЛИ ТипЗнч(КоллекцияОписанияИсточника) = Тип(«Соответствие»))

       И КоллекцияОписанияИсточника.Количество() > 0

       И СтруктураПараметров.Свойство(«ИсточникДанных»);

   
   Если НЕ ИспользоватьЗначенияБлокировки И НЕ ИспользоватьИсточникДанных Тогда

       Возврат;

   КонецЕсли;

   
   Блокировка = Новый БлокировкаДанных;

   
   ТипТаблицы = ?(СтруктураПараметров.Свойство(«ТипТаблицы»), СтруктураПараметров.ТипТаблицы, «РегистрНакопления»);

   ИмяТаблицы = СтруктураПараметров.ИмяТаблицы;

   ПространствоБлокировки = ТипТаблицы  + «.» + ИмяТаблицы;

   ЭлементБлокировки = Блокировка.Добавить(ПространствоБлокировки);

   
   РежимБлокировки = ?(СтруктураПараметров.Свойство(«РежимБлокировки»), СтруктураПараметров.РежимБлокировки, РежимБлокировкиДанных.Исключительный);

   ЭлементБлокировки.Режим = РежимБлокировки;

   
   Если ИспользоватьЗначенияБлокировки Тогда

       
       Для каждого ЭлементКоллекции Из КоллекцияЗначенийБлокировки Цикл

           
           ЭлементБлокировки.УстановитьЗначение(ЭлементКоллекции.Ключ, ЭлементКоллекции.Значение);

           
       КонецЦикла;

   
   КонецЕсли;

   
   Если ИспользоватьИсточникДанных Тогда

       
       ИсточникДанных = СтруктураПараметров.ИсточникДанных;

       
       Если ТипЗнч(ИсточникДанных) = Тип(«МенеджерВременныхТаблиц») Тогда

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

           Запрос.МенеджерВременныхТаблиц = ИсточникДанных;

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

           Для каждого ЭлементКоллекции Из КоллекцияОписанияИсточника Цикл

               ТекстЗапроса = ТекстЗапроса + «,

               |    Таб.» + ЭлементКоллекции.Значение;

           КонецЦикла;

           ТекстЗапроса = Сред(ТекстЗапроса, 2);

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

           «ВЫБРАТЬ РАЗЛИЧНЫЕ»

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

           |ИЗ

           |    » + СтруктураПараметров.ИмяВременнойТаблицы + » КАК Таб»;

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

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

           
           ЭлементБлокировки.ИсточникДанных = Результат;

           
       Иначе

           
           ЭлементБлокировки.ИсточникДанных = ИсточникДанных;

           
       КонецЕсли;

   
       Для каждого ЭлементКоллекции Из КоллекцияОписанияИсточника Цикл

           
           ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ЭлементКоллекции.Ключ, ЭлементКоллекции.Значение);

           
       КонецЦикла;

   
   КонецЕсли;

   
   Попытка

   
       Блокировка.Заблокировать();

   
   Исключение

       
       ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(), Отказ, Заголовок);

       ВызватьИсключение «Операция не выполнена»;

       
   КонецПопытки;

КонецПроцедуры

Содержание:

1.       Несоответствие типов данных

2.       Ошибка внутри таблицы в запросе

3.       Причина ошибки внутри команды

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


1.    Несоответствие типов данных

Тип – это характеристика у значения, которая определяет поведение и свойства, которые имеет данное значение.

В командах внутри системы 1С параметры имеют некую специальную очерёдность, а также все параметры имеют ссылку на данные, которые связаны с каким-либо типом. В случае, когда какой-то из параметров находится в неположенном месте, либо название не соответствует типу, выполняются невозможные действия для конкретного типа – появляется сообщение, в котором говорится о несоответствии типов данных (показано на скриншоте ниже):

Сообщение об ошибке несоответствии типов

Рис. 1 Сообщение об ошибке несоответствии типов

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

2.    Ошибка внутри таблицы в запросе

Рассмотрим пример: при чтении цен из номенклатуры согласно регистру данных «Цены номенклатуры» с общего внешнего отчёта всплывает ошибка «Неоднозначное поле «ТипЦен.Номенклатура».

Ошибка Неоднозначное поле

Рис. 2 Ошибка Неоднозначное поле

Видим, что в окне с сообщением о неполадке указано место в коде, где возникла ошибка несоответствия типов: «Параметр номер «1», в строчке вида:

«РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.

Чтобы устранить данную ошибку в первую очередь откроем конфигурацию с данным отчётом и найдем внутри кода с формой строчку, которая была приведена выше:

Исправление ошибки несоответствия типов (Параметр номер 1)

Рис. 3 Исправление ошибки несоответствия типов (Параметр номер 1)

При помощи «Синтаксис-Помощника», в меню конфигурации 1С можно сверить, насколько правильно была написана команда:

Исправление ошибки несоответствия типов

Рис. 4 Проверка написания команды с помощью Синтаксис-Помощника

Согласно описанию, в команде «СрезПоследних» находится два параметра: «Отбор» и «Период».

В случае, когда параметр «Период» не был указан, в данной команде будет пустое поле, а после запятой будет написан параметр для отбора. Для нашего примера этим параметром будет «ТипЦен». После правок команда видоизменится так: «СрезПоследних(,ТипЦен = &ТипЦен).

Исправление команды СрезПоследних

Рис. 5 Исправление команды СрезПоследних

После того как команда СрезПоследних была исправлена, стоит снова сформировать отчёт из «Главное меню → Файл → Открыть». 

3.    Причина ошибки внутри команды

Имеем такую ошибку: когда происходит поиск вариантов ссылок на контрагента в отчёте системы 1С, то возникает ошибка «Несоответствие типов (параметр номер «2»), как на скриншоте ниже:

Несоответствие типов

Рис. 6 Несоответствие типов (параметр номер «2»)

В системе 1С указано то место, где произошла неполадка – это недопустимый параметр номер 2, если кликнуть на кнопку «ERROR». Чтобы её исправить нужно запустить отчёт в конфигураторе системы 1С, далее ищем форму строчки, в которой написана команда «НайтиПоСсылкам», внутри модуля.

Команда НайтиПоСсылкам внутри модуля

Рис. 7 Команда НайтиПоСсылкам внутри модуля

Можно проверить верность того, как написана команда при помощи «Синтаксис-Помощника» в панели меню системы 1С, кнопка будет выделена:

Команда НайтиПоСсылкам

Рис. 8 Команда НайтиПоСсылкам в Синтаксис-Помощнике

По описанию следует: в команде «НайтиПоСсылкам» находится такие четыре параметра: СписокСсылок, ИсключитьОбъекты, ВключитьОбъекты и ОбластьПоиска.

В параметре с названием «ОбластьПоиска» будет тип «массив», в примере указана единица. Параметр «ОбластьПоиска» — не является обязательным, так что команда, которую исправили будет иметь следующий новый вид: НайтиПоСсылкам(МассивПоиска, , , МассивИсключений).

Тип массив в НайтиПоСсылкам

Рис. 9 Тип массив в НайтиПоСсылкам

Далее запускаем наш отчёт в системе 1С.

После наших действий команда работает исправно и ошибки нет.

 НайтиПоСсылкам

Рис. 10 Проверка на наличие ошибок в системе конфигурации 1С


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

Специалист компании «Кодерлайн»

Айдар Фархутдинов

скд неверные параметры «*»

Автор svv1979, 13 фев 2015, 11:43

0 Пользователей и 1 гость просматривают эту тему.

Выручка/100 * [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))]
скд неверные параметры «*»
Если написать просто [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] тогда выводиться значение там например 2
У общего реквизита тип число


ЦитироватьВыручка/100 * [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))]

а это откуда? из макета?

если помогло нажмите: Спасибо!


Цитата: LexaK от 13 фев 2015, 12:31

ЦитироватьВыручка/100 * [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))]

а это откуда? из макета?

Забыл написать это пользовательское поле


попробуйте так:

Выручка/100 * Число([Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))])

сам такие конструкции не пробовал…

может лучше в вычисляемые поля поместить?

Добавлено: 13 фев 2015, 14:41


да-а-а, на Число() у меня ругается в пользовательском поле

ошибка в том что какая-то переменная в вашей формуле не является числом!
или проверьте что бы все числами были, или надо найти способ как не из числа получить число, может глобальные функции преобразования попробуете?

Добавлено: 13 фев 2015, 14:51


зато Выбор Когда Тогда Конец работает — можно кейс построить! как вариант!

если помогло нажмите: Спасибо!


Цитата: LexaK от 13 фев 2015, 13:59
попробуйте так:

Выручка/100 * Число([Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))])

сам такие конструкции не пробовал…

может лучше в вычисляемые поля поместить?

Добавлено: 13 фев 2015, 14:41


да-а-а, на Число() у меня ругается в пользовательском поле

ошибка в том что какая-то переменная в вашей формуле не является числом!
или проверьте что бы все числами были, или надо найти способ как не из числа получить число, может глобальные функции преобразования попробуете?

Добавлено: 13 фев 2015, 14:51


зато Выбор Когда Тогда Конец работает — можно кейс построить! как вариант!

{mngbase/dcsexpsuserfield.lf(8)}: Ошибка при вызове метода контекста (УстановитьПредставлениеВыраженияДетальныхЗаписей)
         Data.SetDetailRecordExpressionPresentation(DetailRecordExpressionPresentation);
по причине:
Синтаксическая ошибка «Число»

Добавлено: 13 фев 2015, 17:08


Это общий реквизит номенклатуры(ДополнительныеРеквизитыИСведения) с типом значения число(1С 8.3 УТ 11.1)
В наборе СКД так и обозначено Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))
Да изменяю отчет Валовая прибыль по подразделениям в розницу


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

если помогло нажмите: Спасибо!


Цитата: LexaK от 13 фев 2015, 17:41
сделайте расчет этого поля в запросе и не парьтесь,
пользовательские поля, тем более расчеты там, это для очень продвинутых юзеров,
которые секут в
Языке выражений системы компоновки данных !!!

Да я посмотрел реквизит имел тип строка
Я так особо не конфигурирую так в меру необходимости

Выбор
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «0.5»
         Тогда 0.5
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «1»
         Тогда 1
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «2»
         Тогда 2
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «3»
         Тогда 3

Есть ли возможность проще преобразовать строку в число

Добавлено: 13 фев 2015, 23:16


Цитата: svv1979 от 13 фев 2015, 20:39

Цитата: LexaK от 13 фев 2015, 17:41
сделайте расчет этого поля в запросе и не парьтесь,
пользовательские поля, тем более расчеты там, это для очень продвинутых юзеров,
которые секут в
Языке выражений системы компоновки данных !!!

Да я посмотрел реквизит имел тип строка
Я так особо не конфигурирую так в меру необходимости

Выбор
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «0.5»
         Тогда 0.5
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «1»
         Тогда 1
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «2»
         Тогда 2
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «3»
         Тогда 3

Есть ли возможность проще преобразовать строку в число

Цитата: svv1979 от 13 фев 2015, 20:39

Цитата: LexaK от 13 фев 2015, 17:41
сделайте расчет этого поля в запросе и не парьтесь,
пользовательские поля, тем более расчеты там, это для очень продвинутых юзеров,
которые секут в
Языке выражений системы компоновки данных !!!

Да я посмотрел реквизит имел тип строка
Я так особо не конфигурирую так в меру необходимости

Выбор
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «0.5»
         Тогда 0.5
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «1»
         Тогда 1
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «2»
         Тогда 2
      Когда [Номенклатура.Для расчета ЗП Продавца (Справочник «Номенклатура» (Общие))] = «3»
         Тогда 3

Есть ли возможность проще преобразовать строку в число

Все решилась проблема предистория такая был перенос из ут 10 в 11
Номенклатура был параметр категории  сформировал отчет сохранил в Excel
сделал загрузку в ут 11 и он записал значение общего реквизита с типом строка
хотя в конфигурации назначен ему тип число вот такая история
при загрузке назначил загружаемому реквизиту тип число и все пошло:zebzdr::ooifh:
И спасибо за помощь!!!


Толстый клиент. На 8.2 отрабатывает нормально. На 8.3 пишет: ——————— {Справочник.Пользователи.Форма.ФормаЭлемента.Форма}: Ошибка при установке значения атрибута контекста (Значение)     ЭлементыФормы.ПраваДоступаПользователей.ОтборСтрок.ОбластьДанных.Значение = Элемент.ТекущиеДанные; по причине: Неверный тип значения ——————— Прохожу отладчиком. Элемент.ТекущиеДанные — ПеречислениеСсылка.НаборПравПользователей Тип у «ЭлементыФормы.ПраваДоступаПользователей.ОтборСтрок.ОбластьДанных.Значение» — тот-же. Если прописать жестко, то так работает: Почему это происходт? Ведь отладчиком вижу, что «Элемент.ТекущиеДанные = Перечисления.НаборПравПользователей.АдминистраторККМ» = ИСТИНА

ПеречислениеСсылка.НаборПравПользователей <> Перечисления.НаборПравПользователей.АдминистраторККМ

Я имел в виду не значение, а тип. В данном случае и типы и значения идентичны!

Прикол в том, что так не работает: А так работает:

Я в уже обяснил. А в чем разгадка ?

Еще раз: Прикол в том, что так не работает: ЭлементыФормы.ПраваДоступаПользователей.ОтборСтрок.ОбластьДанных.Значение = Элемент.ТекущиеДанные; А так работает:

Тэги: 1С 8

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

Понравилась статья? Поделить с друзьями:
  • Ошибка неверный тип аргумента stringp nil в автокаде
  • Ошибка неверный сигнал д скор
  • Ошибка неверный сертификат vipnet csp
  • Ошибка неверный регистрационный номер swat 4
  • Ошибка неверный размер тома veracrypt