Ошибка при вызове конструктора реквизитформы

   Repinovich

24.02.23 — 23:35

Вылезает такая ошибка

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

{ОбщаяФорма.Форма.Форма(94)}:        РеквизитФормы = Новый РеквизитФормы (ТекВалюта.Значение.МеждународныйКодВалюты, Новый ОписаниеТипов(«Число», , , Новый КвалификаторыЧисла(10, 3)));

{ОбщаяФорма.Форма.Форма(11)}:    ПолучитьКурсыВалют (Дата);

по причине:

Недопустимое значение параметра (параметр номер ‘1’)

ТекВалюта.Значение.МеждународныйКодВалюты это строка «985»

Новый ОписаниеТипов(«Число», , , Новый КвалификаторыЧисла(10, 3)) Пробывал менять на Новый ОписаниеТипов(«Строка», , , Новый КвалификаторыСтроки(3)) ничего не изменилось.

&НаСервере

Процедура  ПолучитьКурсыВалют (ВыбДата)

    
    
    ТЗКурсы = РаботаСКурсами.ПолучениеКурсаВыбраннойВалюты(ВыбДата);

    
    ДобавляемыеРеквизиты = Новый Массив;

    УдаляемыеРеквизиты = Новый Массив;    

    УдаляемыеЭлементы = Новый Массив;    

    
    Для Каждого ПодчиненныйЭлемент Из Элементы.ГруппаКурсовВалют.ПодчиненныеЭлементы Цикл

        УдаляемыеРеквизиты.Добавить(ПодчиненныйЭлемент.Имя);

    КонецЦикла;  

    
    Для Каждого ТекРеквизит Из УдаляемыеРеквизиты Цикл

        ТекЭлемент = Элементы.Найти(ТекРеквизит);    

        Элементы.Удалить(ТекЭлемент);

    КонецЦикла;

    
    Для Каждого ТекВалюта Из Валюты Цикл

        Если Не ТекВалюта.Пометка Тогда Продолжить; КонецЕсли;    

        
        РеквизитФормы = Новый РеквизитФормы (ТекВалюта.Значение.МеждународныйКодВалюты, Новый ОписаниеТипов(«Число», , , Новый КвалификаторыЧисла(10, 3)));

        
        ДобавляемыеРеквизиты.Добавить(РеквизитФормы);

    КОнецЦикла;

    
    ИзменитьРеквизиты(ДобавляемыеРеквизиты, УдаляемыеРеквизиты);

    
    Для Каждого ТекВалюта Из Валюты Цикл

        Если Не ТекВалюта.Пометка Тогда Продолжить; КонецЕсли;

        ИмяРеквизита = ТекВалюта.Значение.МеждународныйКодВалюты;

        
        СтрокаЗначенияКурса = ТЗКурсы.Найти(ИмяРеквизита, «Код»);

        
        ЭлементФормыТекВалюты = Элементы.Добавить(ИмяРеквизита, Тип(«ПолеФормы»), Элементы.ГруппаКурсовВалют);

        ЭлементФормыТекВалюты.ПутьКДанным = ИмяРеквизита;

        ЭлементФормыТекВалюты.Вид = ВидПоляФормы.ПолеНадписи;

        ЭлементФормыТекВалюты.Шрифт = Новый Шрифт(ШрифтыСтиля.ОбычныйШрифтТекста,,,,,,,80);        

        
        Если СтрокаЗначенияКурса = Неопределено Тогда Продолжить; КонецЕсли;

        
        ЭтаФорма[ИмяРеквизита] = СтрокаЗначенияКурса.Курс;

        КонецЦикла;

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

{Документ.РобочийТабель.Форма.ФормаДокумента.Форма}: Ошибка при вызове конструктора (РеквизитФормы)         НовыйРеквизит = Новый РеквизитФормы(эл.Представление, Новый ОписаниеТипов(«СправочникСсылка.прЛинии»), , эл.Представление, Истина); по причине: Недопустимое значение параметра (параметр номер ‘1’)

По факту: нечего ветки плодить «Недопустимое значение параметра (параметр номер ‘1’)» что непонятного?

Тэги:

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

Похожие вопросы 1С

В этой группе 1С

Перейти к контенту

Я
   Близняшка

25.01.10 — 12:07

МассивТипа=Новый Массив;

МассивТипа.Добавить(ТипЗнч(Документы.ПоступлениеТоваровУслуг.ПустаяСсылка()));

ТипДокумента=Новый ОписаниеТипов(ТипДокумента,МассивТипа);

Пишет ошибка: Ошибка при вызове конструктора (ОписаниеТипов): Несоответствие типов (параметр номер ‘2’)

   Stepa86

1 — 25.01.10 — 12:09

дарю: Новый ОписаниеТипов(«ДокументСсылка.ПоступлениеТоваровУслуг»);

   Ц_У

2 — 25.01.10 — 12:09

(0) ИМХО: без фото не взлетит…

   Близняшка

3 — 25.01.10 — 12:12

(1) а почему как у меня не работает ?

   Ненавижу 1С

4 — 25.01.10 — 12:13

(3) что говорит СП?

   zbv

5 — 25.01.10 — 12:13

(3) ТипДокумента = неопределено

   Близняшка

6 — 25.01.10 — 12:14

(1)

МассивТипа=Новый Массив;

МассивТипа.Добавить(«ДокументСсылка.ПоступлениеТоваровУслуг»);

ТипДокумента=Новый ОписаниеТипов(ТипДокумента,МассивТипа);

та же ошибка …..

   Stepa86

7 — 25.01.10 — 12:15

(6) читаем внимательно: ТипДокумента = Новый ОписаниеТипов(«ДокументСсылка.ПоступлениеТоваровУслуг»);

   Ц_У

8 — 25.01.10 — 12:15

(6)МассивТипа.Добавить(Тип(«ДокументСсылка.ПоступлениеТоваровУслуг»));

   RealSaint

9 — 25.01.10 — 12:16

(3) Потому-что нужно читать документацию и синтакс-помошник. Вот прочитай описание этого конструктора и сама ответь на свой вопрос.

   Близняшка

10 — 25.01.10 — 12:18

(7) спасибки сработало

(8) пасибо думаю сработает аналогично

(9) 2-й параметр, добавляемые типы, которые содержатся в массиве. и в чем ошибка ???

   RealSaint

11 — 25.01.10 — 12:22

(10) Ошибка в том, что первый параметр в данном случае не нужен.

  

Близняшка

12 — 25.01.10 — 12:24

(11) спасибо, я поняла свою ошибку

TurboConf — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Автор Александр Мун, 29 ноя 2019, 09:27

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

Добрый день!
Пытаюсь в цикле вывести на форму получаемые картинки, и не могу понять, что я делаю не так


Для каждого Фото Из JSON.photos Цикл
    i = i + 1;
    путь = "D:1CPhotoFines" + Строка(Объект.billid) + "" + Строка(i) + "-" + Строка(Объект.billid) + ".jpeg";
    ДвоичныеДанные = Base64Значение(Фото.base64Value);
    ДвоичныеДанные.Записать(путь);

    Хранилище = Новый ХранилищеЗначения(Новый Картинка(путь), Новый СжатиеДанных(9));

    нРеквизиты = Новый Массив;
    РеквизитХ = Новый РеквизитФормы("РеквизитХ" + Строка(i), Новый ОписаниеТипов("ХранилищеЗначения", Хранилище), ,"Созданное поле картинка", Истина);
    нРеквизиты.Добавить(РеквизитХ);
    ИзменитьРеквизиты(нРеквизиты);

    Элемент = ЭтаФорма.Элементы.Добавить("Поле" + Строка(i), Тип("ПолеФормы"), ЭтаФорма.Элементы.Группа7);
    Элемент.Вид = ВидПоляФормы.ПолеКартинки;
    Элемент.ПутьКДанным = "РеквизитХ" + Строка(i);
КонецЦикла;

Получаю ошибку:
Ошибка при вызове конструктора (ОписаниеТипов): Несоответствие типов (параметр номер ‘2’)


Потому что нет такого конструктора у объекта «ОписаниеТипов». Попробуйте в строке


РеквизитХ = Новый РеквизитФормы("РеквизитХ" + Строка(i), Новый ОписаниеТипов("ХранилищеЗначения", Хранилище), ,"Созданное поле картинка", Истина);

Написать

   
РеквизитХ = Новый РеквизитФормы("РеквизитХ" + Строка(i), Новый ОписаниеТипов("ХранилищеЗначения"), ,"Созданное поле картинка", Истина);

«Дай человеку рыбу, и ты накормишь его на один день, научи его рыбачить, и он будет сыт всю жизнь»


Описание типов «ЛюбаяСсылка»

Типа «ЛюбаяСсылка» или «ВсеСсылки» не существует поэтому при создании объекта Новый ОписаниеТипов(«ЛюбаяСсылка») выходит ошибка.

Описание типов — объект, предназначенный для указания/ограничения реквизита списком определенных  программистом типов.

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

Причина ситуации

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

ЛюбаяСсылка

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

оОписание = Новый ОписаниеТипов;
оОписание = Новый ОписаниеТипов(оОписание, Справочники.ТипВсеСсылки().Типы());
оОписание = Новый ОписаниеТипов(оОписание, Документы.ТипВсеСсылки().Типы());
оОписание = Новый ОписаниеТипов(оОписание, Перечисления.ТипВсеСсылки().Типы());
оОписание = Новый ОписаниеТипов(оОписание, ПланыСчетов.ТипВсеСсылки().Типы());
оОписание = Новый ОписаниеТипов(оОписание, ПланыВидовХарактеристик.ТипВсеСсылки().Типы());
оОписание = Новый ОписаниеТипов(оОписание, Задачи.ТипВсеСсылки().Типы());
оОписание = Новый ОписаниеТипов(оОписание, ПланыВидовРасчета.ТипВсеСсылки().Типы());
оОписание = Новый ОписаниеТипов(оОписание, ПланыОбмена.ТипВсеСсылки().Типы());

Большой рекламный бюджет не ведет к высокому уровню сбыта. Наоборот, высокий уровень сбыта ведет к большому рекламному бюджету.

Recommend Projects

  • React photo

    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo

    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo

    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo

    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo

    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • D3 photo

    D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Visualization

    Some thing interesting about visualization, use data art

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo

    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo

    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo

    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    Tencent

    China tencent open source team.

Первая статья в новом 2021 году будет посвящена программе 1С. Это связанна с тем что данное ПО очень распространено. Так как альтернативы пока что нет. К типовым конфигурация претензий практически нет, в них не появляются ошибки, при обновлении, переносе и других манипуляциях. Что нельзя сказать о самопысных конфигурациях или измененных типовых. Как правило занимаются этим программисты не высокого уровня, так как час разработки профессионала стоить достаточно дорого. В результате конечный пользователь получаем огромные проблемы которые возникают после каких либо манипуляций либо с базой или клиентами. Сегодня поговорим об одной интересной ошибки которая появляется при попытке распечатать какой либо документ «Ошибка при вызове конструктора (COMOбъект) класс не зарегистрирован».

Использование COMOбъектов в 1С это прошлый век, сейчас уже ни кто так не пишет. Раньше с его помощью реализовали печать документов. Они выгружались в OpenLibre Office и от туда уже печатались.

Появиться такая ошибка может после

1 Обновления платформы

2 Переустановки ОС и 1С

3 Обновление конфигурации

4 Проблем с офисными пакетами

5 и т.д.

Это самые распространенные.

У меня есть еще несколько статей в которых я рассказывал как можно исправить различные ошибки 1С рекомендую прочитать.

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

При появлении ошибки в 1С нет кнопки подробнее

Как настроить сортировку в отчете

Как сохранить обработку (как внешнюю)

Как указать версию платформы

Как посмотреть изменения в конфигурации

Три способа избавиться от ошибки «Ошибка при вызове конструктора…»

И так после каких либо манипуляций с 1С у вас стала появляться ошибка.

Ошибка при вызове конструктора (COMOбъект): -2147221164(0x80040154) класс не зарегистрирован

Ошибка при вызове конструктора (COMOбъект) класс не зарегистрирован
Ошибка при вызове конструктора (COMOбъект): -2147221164(0x80040154) класс не зарегистрирован

Первый способ

Самое простое это переустановить офисные пакеты OpenLibre, так же как вариант если у вас стоял Open поставить Libre и на оборот. Это нужно для того чтобы обновить специальный компонент.

Второй способ

Попробовать зарегистрировать самостоятельно, для этого запускаем командную строку от имени администратора, переходим в каталог введя команду.

cd windowssyswow64

И регистрируем

regsvr32 «C:Program Files (x86)1cv88.3.16.18.14comcntr.dll»

-2147221164(0x80040154) класс не зарегистрирован

Кстати данную манипуляцию нужно проводить на сервере.

Третий способ

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

Ошибка при вызове конструктора (COMOбъект)

Версию можно указать и в ярлыке запуска 1С.

Ошибка при вызове конструктора (COMOбъект):  класс не зарегистрирован

Можно еще попробовать самостоятельно создать COM + , но лично из своего опыта могу сказать это не помогает. Самый действенный вариант это установка х32 клиента. Так как компонента которая необходимо работает только с х32.

Так же проблема может быть непосредственно в самом коде.

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

Ошибка при вызове метода контекста (РеквизитФормыВЗначение)
{Отчеты Отчет.НовыйОтчетПрофилей.Форма.ФормаОтчета.Форма(201)}:РеквизитПользователя = РеквизитФормыВЗначение("Пользователь"); //
{Отчеты Отчет.НовыйОтчетПрофилей.Форма.ФормаОтчета.Форма(230)}:ТабДокумент                          = СформироватьМакетНаСервере();

по причине:
Недопустимое значение параметра (параметр номер '1')

Как это можно исправить?

Вот сам код:

&НаСервере
Функция СформироватьМакетНаСервере()
    
    ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); 
    РеквизитПользователя = РеквизитФормыВЗначение("Пользователь"); //
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(ОтчетОбъект.СхемаКомпоновкиДанных,  ОтчетОбъект.КомпоновщикНастроек.Настройки, , ,  Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    
    ТаблицаЗначений = Новый ТаблицаЗначений;
    ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); 
        
    ТабДокумент = Новый ТабличныйДокумент;
    
    ТабДокумент.Очистить();
    Макет = ОтчетОбъект.ПолучитьМакет("Макет");
                                            
    Возврат ТабДокумент;
    
КонецФункции

&НаКлиенте
Процедура СформироватьМакет(Команда)
    
    ТабДокумент                         = СформироватьМакетНаСервере();    
    КоллекцияПечатныхФорм               = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("Макет");
    ПечатнаяФорма                       = УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, "Макет");
    ПечатнаяФорма.СинонимМакета         = "Макет";
    ПечатнаяФорма.ТабличныйДокумент     = ТабДокумент;
    ПечатнаяФорма.ИмяФайлаПечатнойФормы = "Макет";
    
    ОбластиОбъектов = Новый СписокЗначений;
    УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов);
    
КонецПроцедуры

Вот форма со свойствами поля:

И свойства реквизита:

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове loadlibrary не найден указанный модуль regsvr32
  • Ошибка при вызове конструктора отчетов
  • Ошибка при вызове load library
  • Ошибка при вызове конструктора недопустимая строка с указанием класса
  • Ошибка при вызове imagemagick с командной строкой 1с документооборот