Ошибка 1с8 тип не определен

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

Предистория: Бухгалтерия предприятия базовая 2.0.66.138 нужно обновить до актуального релиза бухгалтерии 3.0.

Каких-то особых выдумок я применять не стал, скачал обновление с https://releases.1c.ru/total и установил его. Я сильно удивился увидев ошибку тип не определен.

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

Журнал регистрации всеми силами направлял меня в общий модуль управление доступом служебный.

тип не определен, журнал регистрации

тип не определен, журнал регистрации
Тип не определен
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(26085)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(25277)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(24362)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(23491)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(23243)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22956)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22337)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22217)}:
{РегистрСведений.ПараметрыОграниченияДоступа.МодульМенеджера(206)}:ДействующиеПараметры = УправлениеДоступомСлужебный.ДействующиеПараметрыОграниченияДоступа(
{РегистрСведений.ПараметрыОграниченияДоступа.МодульМенеджера(157)}:ЗапланироватьОбновление_00_00268406("ПереходНаВерсиюБСП_3.0.3.168");
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(4489)}:
{(1)}:УправлениеДоступомСлужебный.ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации()
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(6320)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2155)}:ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1707)}:ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2289)}:Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1036)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

Перехожу в конфигуратор ищу ОбщийМодуль.УправлениеДоступомСлужебный и что же я вижу. Исходный текст модуля отсутствует, конфигурация на поддержке и снимать и ломать модуль для рядового обновления это точно ложный путь.

Общий Модуль Управление Доступом Служебный

Общий Модуль Управление Доступом Служебный

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

https://bugboard.v8.1c.ru/error/000100482
https://partners.v8.1c.ru/forum/topic/1950512

В версиях платформы до 8.3.22.1704 конструкция Тип(“”) (где в качестве аргумента – пустая строка), возвращала пустое значение типа Тип, в новой версии платформы попытка выполнения данной конструкции приводит к ошибке.

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

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

Какой можно сделать вывод из этой истории – нужно обновлять платформу и конфигурации вовремя!

Тип не определен (ЗаписьJSON)

Ошибка «Тип не определен» говорит об устаревшей платформе. В конфигурации используются более современные объект, чем присутствуют в платформе.

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

В данном конкретном случае таким объектом является «ЗаписьJSON», которая появилась не так давно в версии 8.3 платформы 1С.

Полный текст ошибки

Тип не определен (ЗаписьJSON)
ЗаписьJSON = Новый <<?>>ЗаписьJSON;

Тип не определен

Особенности проблемы:

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

Если же объектами являются объекты метаданных (к примеру, такие как Web-сервисы), то изменить такую конфигурацию не возможно (хотя она будет работать без данных объектов, не вызывая ошибок)

На скриншоте ниже: с версией 8.2

Режим совместимости

Другие причины проблемы:

Возможно новая платформа установлена, но запускается старая

для этого зайдите в свойства базы («Изменить» в списке запуска:) — нижнее поле «Версия 1С:Предприятия»

Редактирование информационной базы

Либо указана устаревшая «версия» платформы (кнопка «Настройка» в списке баз) — раздел «Используемые версии»

Используемые версии

Поведение системы

В большинстве случаев «тип не определен» это критичная ошибка, которая возникает:

  • в момент запуска самой 1С, при этом полностью блокирует запуск.
  • при запуске форм списка или форм объектов — блокирует запуск этого или ряда объектов.

Обычно не связана с правами пользователя и со средой исполнения, если это не com/activex-объекты.

Часто вызывающие ошибку объекты:

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

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

Тип не определен (Запрос) Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)

Я
   Mikhail Volkov

23.06.22 — 13:05

Таких тем здесь много, ответ понятен, нельзя на клиенте использовать: Запрос = Новый Запрос; Но вопрос не в этом. Обычно работаю с конфигурациями ОФ: Альфа-Авто, КА1 (УПП)… Везде использую общий модуль мвДоработки с галочками: Сервер, Клиент (обычное приложение), Внешнее соединение (в Альфа-Авто не использую), Вызов сервера. Когда в конфигурацию надо внести более 2-х строк, то пишу их в этот модуль в виде функции, а вызов этой функции вставляю в то место, где нужно внести изменение. Когда поддержка КА1 закончилась, сделал базу на КА2 (еще вроде на КА2.1), но в ней пока не работаем, обновляем КА1 УПП. В КА2 тоже сделал общий модуль мвДоработки с галочками: Клиент, Сервер, Внешнее соединение. В нем написал несколько функций (в УФ я начинающий). Среди них есть:

// Возвращает Истина, если у номенклатуры единственное наименование

//

Функция ЕдинственноеНаименованиеНоменклатуры(Номенклатура) Экспорт

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

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

    |ВЫБРАТЬ

    |    Номенклатура.Ссылка КАК Ссылка

    |ИЗ

    |    Справочник.Номенклатура КАК Номенклатура

    |ГДЕ

    |    Номенклатура.Наименование = &Наименование»;

    Запрос.УстановитьПараметр(«Наименование», Номенклатура.Наименование);

    Выборка = Запрос.Выполнить().Выбрать();

    Счетчик = 0;

    Пока Выборка.Следующий() Цикл

        Если Счетчик > 0 Тогда

            Возврат Ложь;

        КонецЕсли;

        Счетчик = Счетчик + 1;

    КонецЦикла;

    Возврат Истина;

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

// Возвращает полное наименование ключа аналитики номенклатуры

// без дублей по наименованию

Функция ПолучитьПолноеНаименованиеКлючаАналитикиНоменклатуры(МенеджерЗаписи) Экспорт

    Попытка

        НаименованиеСклада = СокрЛП(МенеджерЗаписи.МестоХранения);

    Исключение

        НаименованиеСклада = СокрЛП(МенеджерЗаписи.Склад);

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

    Наименование = СокрЛП(МенеджерЗаписи.Номенклатура) + ?(ЕдинственноеНаименованиеНоменклатуры(МенеджерЗаписи.Номенклатура), «», «, »

        + ?(ПустаяСтрока(МенеджерЗаписи.Номенклатура.Артикул), СокрЛП(МенеджерЗаписи.Номенклатура.Код), СокрЛП(МенеджерЗаписи.Номенклатура.Артикул))) + «; »

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)

        + СокрНаименованиеСклада(НаименованиеСклада);

    Если СтрДлина(Наименование) > 100 Тогда

        Наименование = Лев(СокрЛП(МенеджерЗаписи.Номенклатура), СтрДлина(СокрЛП(МенеджерЗаписи.Номенклатура)) — СтрДлина(Наименование) + 97) + «…»

            + ?(ЕдинственноеНаименованиеНоменклатуры(МенеджерЗаписи.Номенклатура), «», «, »

            + ?(ПустаяСтрока(МенеджерЗаписи.Номенклатура.Артикул), СокрЛП(МенеджерЗаписи.Номенклатура.Код), СокрЛП(МенеджерЗаписи.Номенклатура.Артикул))) + «; »

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)

            + СокрНаименованиеСклада(НаименованиеСклада);

    КонецЕсли;

    Возврат Наименование;

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

которая вызывается из РС АналитикаУчетаНоменклатуры:

Функция ПолучитьПолноеНаименованиеКлючаАналитики(МенеджерЗаписи)

    Возврат мвДоработки.ПолучитьПолноеНаименованиеКлючаАналитикиНоменклатуры(МенеджерЗаписи);    //+МВ 12.05.2019

//    Возврат СокрЛП(МенеджерЗаписи.Номенклатура) + «; »

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)

//        + СокрЛП(МенеджерЗаписи.МестоХранения);

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

В данном случае галочка Клиент на мвДоработки не нужна, но можно ли ее убрать? Наверное это зависит от других функций модуля. Как навскидку определить: может ли функция выполняться только на клиенте? Вопрос наверное глупый, но в УФ я начинающий. Убрал галочку Клинт — ошибка: Тип не определен (Запрос) исчезла. Потом вернул ее, сохранил конфигурацию, ошибка не появилась!? Раньше она появлялась, до обновления на 2.5.8.221.

   Волшебник

Модератор

1 — 23.06.22 — 13:08

в тонком клиенте нет запросов. Управление надо передать на сервер

   youalex

2 — 23.06.22 — 13:19

Возврат Выборка.Количество() <= 1

   TormozIT

3 — 23.06.22 — 13:39

Инструкциями препроцессора (#Если Не ТонкийКлиент И Не ВебКлиент И Не МобильныйКлиент Тогда) можно заэкранировать фрагменты модуля, если не хочется делать отдельный модуль.

   Mikhail Volkov

4 — 23.06.22 — 14:31

(1) На счет запросов понятно — клиент их не может делать. Но вопрос: что может клиент, но не может сервер?

   lodger

5 — 23.06.22 — 14:33

(4)

ТекстовыйДокумент (TextDocument)

Показать (Show)

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.

   arsik

6 — 23.06.22 — 14:42

(4) В настройках синтаксис помощника

https://i.imgur.com/W1Nf3eh.png

   timurhv

7 — 23.06.22 — 14:56

(4) чтобы не было каши в названиях модулей и галочках

https://its.1c.ru/db/v8std#content:469:hdoc

   Mikhail Volkov

8 — 23.06.22 — 16:00

(5) ТекстовыйДокумент() — этого точно нет в общем модуле мвДоработки.

(6), (7) Спс. Значит можно снять галочку Клиент с мвДоработки.

   Mikhail Volkov

9 — 23.06.22 — 16:07

Эта тему можно закрыть. Может кто поможет с вопросом КД2: Сравнение и объединение правил обмена а то он не по теме.

   Mikhail Volkov

10 — 28.07.22 — 10:48

Рано еще зарывать. Раньше УПП работала 8.3.10, как и все базы, Альфа-Авто выше не работала. Теперь решил перевести на 8.3.19.1522 (установлена для КА2), знаю что Com-обмены могут работать на разных платформах, а вот OLE — не знаю? При загрузки Выписки из УПП выскочила ошибка Тип не определен Запрос = ОбъектКА.NewObject(«Запрос»); а затем: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса. Как убрать ошибку 1С «-2147221005(0x800401F3): Недопустимая строка с указанием класса» нашел статью: https://zen.yandex.ru/media/nastroyka1c/kak-ubrat-oshibku-1s-21472210050x800401f3-nedopustimaia-stroka-s-ukazaniem-klassa-5e56042f5c1f4e2533321a22 и ужаснулся: не уже ли так, больше никак?

   lubitelxml

11 — 28.07.22 — 10:52

(10) «и ужаснулся: не уже ли так, больше никак?» — уже давно так, ничего сложного там нет

   rudnitskij

12 — 28.07.22 — 11:12

(10) я больше ужаснулся, когда увидел, как зверски слово «неужели» разорвали на три части

   lodger

13 — 28.07.22 — 11:22

(12) разорвало в клочья.

   DayDreamer

14 — 28.07.22 — 11:52

(10)  «знаю что Com-обмены могут работать на разных платформах», можете поделиться ссылкой на описание, как это организовать?

   Aleksey

15 — 28.07.22 — 12:09

   Mikhail Volkov

16 — 28.07.22 — 15:25

(11) Давно, но так-то что-то настраивал в службе компонентов Службы компонентов: возможно ли создать обертку OLE соединения V83.Application Что-то создавал там, но сейчас найти не могу где? Не давно обновил высокую платформу, может там что перенастроить нужно? Но где ранее сделанные настройки?

(15) самое неприятное: «Ну и самое главное: не забываем, что работать это будет только при запуске 1С с административными правами.» — а обычным пользователям как работать!?

   Mikhail Volkov

17 — 29.07.22 — 08:28

Нашел, последняя была 8.3.16.1959, сейчас 8.3.19.1522 https://ibb.co/ZHk8XsH Как исправить? Менять цифры в наименовании наверное бесполезно.

   TormozIT

18 — 29.07.22 — 10:05

   Mikhail Volkov

19 — 29.07.22 — 10:41

Вроде сделал по инструкции (10). Не знаю как перезапустить службу компонентов?

(18) Что за «Управление СОМ классами 1С (ИР)» — где ее взять?

   TormozIT

20 — 29.07.22 — 11:38

(19) ИР — Инструменты разработчика Tormozit для 1С

http://devtool1c.ucoz.ru/

   Mikhail Volkov

21 — 30.07.22 — 08:49

(20) Скачал ИНСТРУМЕНТЫ РАЗРАБОТЧИКА ПОРТАТИВНЫЙ 1С 8.2+ V6.37.1P, как его запустить?

(19) Ночью перезагрузил сервер, похоже ничего не изменилось.

   TormozIT

22 — 30.07.22 — 09:45

   MrKartez

23 — 30.07.22 — 10:10

Капец, деректив не знаешь, функцию СтрШаблон видимо тоже(

«Но вопрос: что может клиент, но не может сервер?» В синтакспомощнике забанен походу)

   Hans

24 — 30.07.22 — 10:14

Что может клиент и не может сервер —  много чего. В основном интерактивная работа —  формы, диалоги.

А еще сервер много чего может чего не может клиент. Новичков в УФ обычно начинает бомбить от того, что на клиенте нельзя использовать таблицу значений.

   СеменовСемен

25 — 30.07.22 — 10:29

(24) зачем было запрещать таблицу на клиенте вообще не понятно. Тем более что через хаки ее можно там получить

   Кура-Цеце

26 — 30.07.22 — 11:06

(25) > через хаки

Ну давай, получи её в веб-клиенте. Через хаки.

   Hans

27 — 30.07.22 — 11:07

Чо за хаки?

   СеменовСемен

28 — 30.07.22 — 11:19

(26) уж в веб клиенте на жс реализовать ничего не мешало

   СеменовСемен

29 — 30.07.22 — 11:19

(27) через внешнюю компоненту

   Кура-Цеце

30 — 30.07.22 — 11:45

(28) >  ничего не мешало

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

   СеменовСемен

31 — 30.07.22 — 11:46

(30) ничего не мешало, просто не сделали.
Почему? Это только внутри 1с знают

   Mikhail Volkov

32 — 30.07.22 — 11:55

У текущего пользователя ИБ включен флажок «Защита от опасных действий». Для корректной работы инструментов его рекомендуется выключить!

Как это сделать?

   СеменовСемен

33 — 30.07.22 — 12:21

Эта галка только в конфигураторе

   Hans

34 — 30.07.22 — 12:24

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

   Mikhail Volkov

35 — 30.07.22 — 12:33

(33),(34) Обычный реквизит? — найти не могу.

   СеменовСемен

36 — 30.07.22 — 12:33

Пользователи это не справочник

   Mikhail Volkov

37 — 30.07.22 — 12:36

(36) Как так, не только?

   Mikhail Volkov

38 — 30.07.22 — 13:07

Где еще?

   Mikhail Volkov

39 — 30.07.22 — 14:00

(34) у расширения? А если его не использую…

   Hans

40 — 30.07.22 — 15:42

(39) если не используешь, значит это тебе не надо.

   Hans

41 — 30.07.22 — 15:42

Пользователи Информационной базы. В конфигураторе.

   Mikhail Volkov

42 — 30.07.22 — 16:22

(40) Не понял.

   Hans

43 — 30.07.22 — 17:08

Если нет расширений значит это ограничениев расширении не работает. Остается только пользователь.

   Mikhail Volkov

44 — 31.07.22 — 07:07

(43) В справочнике Пользователи, или где он?

   Mikhail Volkov

45 — 31.07.22 — 07:33

Почему в службе компонентов в свойствах V83COMConnector_8_3_19_1522 не вижу версию comcntr.dll (пункт 9 инструкции (10)). Почему в имени V83COMConnector_ в написании версии не могу использовать точки вместо подчеркиваний 8_3_19_1522?

   Mikhail Volkov

46 — 31.07.22 — 08:25

D свойствах V83COMConnector_8_3_19_1522 на вкладке «Удостоверение» обязательно указывать пользователь/пароль? Если Да, то какого?

   Hans

47 — 31.07.22 — 08:28

   Mikhail Volkov

48 — 31.07.22 — 09:35

(47) Администрирование/Пользователи

   Mikhail Volkov

49 — 31.07.22 — 09:52

Но там не стоит «защита от опасных действий» https://ibb.co/MhcBtGW .

   Mikhail Volkov

50 — 01.08.22 — 06:49

Вернемся к нашей ошибке: -2147221005(0x800401F3): Недопустимая строка с указанием класса — как ее исправить?

   TormozIT

51 — 01.08.22 — 07:29

Сумел открыть инструмент (18) по подсказке (22) ?

   МимохожийОднако

52 — 01.08.22 — 07:39

(50) Используй для начала 32-разрядную платформу

   Mikhail Volkov

53 — 01.08.22 — 08:06

(52) НЕ хотелось бы…

   МимохожийОднако

54 — 01.08.22 — 08:07

(53) Начни с малого. Возможно, натолкнёт на решение большего.

   Mikhail Volkov

55 — 01.08.22 — 08:14

(54) Платформа 8.3.19.1522 у меня стоит 2-й платформой на сервере (на других портах) не хотелось бы ее трогать.

   МимохожийОднако

56 — 01.08.22 — 08:49

(55) Дело не в том, что ты хочешь, а в том, чтобы разобраться в причинах. Что мешает проверить на копии локально хотя бы в файловом режиме?

   Mikhail Volkov

57 — 01.08.22 — 10:39

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

   Mikhail Volkov

58 — 16.08.22 — 13:18

Нашел картинку старой службы компонентов https://ibb.co/318LvJV — до обновления 8.3.19, и инструкцию как ее создавал: https://infostart.ru/public/610960/ — COM соединения с базами 1С на различных версиях платформы «Без перерегистрации и СМС». Старые платформы 8.3.14 и 16 удалил. Добавил новую 8.3.19 вроде все по этой инструкции, но ошибка: «Недопустимая строка с указанием класса» осталась!?

   TormozIT

59 — 16.08.22 — 14:17

С таким подходом к концу года сам разберешься наверное.

   Mikhail Volkov

60 — 16.08.22 — 14:28

(59) Хотелось бы раньше.

   lodger

61 — 16.08.22 — 14:38

(60) тогда вернись к (20) и попробуй утильку от TormozIT

   Mikhail Volkov

62 — 16.08.22 — 15:52

(61) Ну скачал его, а что делать с ним не знаю?

   TormozIT

63 — 16.08.22 — 18:09

(62) Открыть в нем инструмент «Управление СОМ классами 1С»

   Mikhail Volkov

64 — 16.08.22 — 18:13

(63) И дальше что, как сделать правильно, чтобы работало?

   TormozIT

65 — 16.08.22 — 18:29

Надо понять где выполняется код, вызывающий COM-соединение. Если на сервере, то тебе надо запустить на сервере терминальный сеанс под тем же пользователем ОС, под которым работает служба 1С. Открываешь «Управление СОМ классами 1С (ИР)» и показываешь нам картинку.

   Mikhail Volkov

66 — 16.08.22 — 18:34

(65) Прежде чем показать нужно это запустить. Как это сделать?

   TormozIT

67 — 16.08.22 — 18:40

   Mikhail Volkov

68 — 16.08.22 — 19:13

(67) Не удачный пример с расширением. Расширением я не пользуюсь, оно в 8.3.10 недоступно. Другие примеры есть без расширений?

   Mikhail Volkov

69 — 16.08.22 — 19:19

Для обычных форм.

   TormozIT

70 — 16.08.22 — 22:28

(68) Обманываешь. Для варианта «Расширение» на странице скачивания указано «Для 1С 8.3.10+ в режиме совместимости 8.3.9+»

Если же не пользуешься по религиозным причинам, то значит ты скачал вариант «Портативный». Тогда идешь и читаешь раздел «Запуск» (целое одно предложение) в его описании http://devtool1c.ucoz.ru/index/variant_portativnyj/0-39

   Mikhail Volkov

71 — 17.08.22 — 11:49

(70) Не понял, по ссылке: 404 Не Найдено!?

   Mikhail Volkov

72 — 17.08.22 — 12:00

(70) > то значит ты скачал вариант «Портативный»

Да, писал в (21).

   Mikhail Volkov

73 — 17.08.22 — 14:37

Нашел COM-соединение и версии платформ в ней ссылка на Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С — мало отличается от инструкции в (58), но есть неясные места, например, 5. Учетная запись для запуска приложения: выбираем учетку под которой стартует сервер 1С — как выбирать? Или 6. В ветке созданного приложения переходим на ветку «Роли» открываем роль «CreatorOwner» и далее в разделе «Пользователи» создаем пользователя — учетную запись под которой работает сервер 1С. — это как? Пароль я знаю, ввожу его, когда устанавливаю или обновляю сервер 1С. Открываю роль «CreatorOwner» в папке Пользователи вижу свою учетную запись — она и есть, ничего вводить не надо?

Далее все как (58), а нет: 9. Открываем свойства только что созданного компонента, идем на вкладку «Безопасность», проверяем в списке «Явно установленные для выделенных объектов роли» стоит ли «птичка» напротив роль CreatorOwner — если нет, тогда устанавливаем эту «птичку». Попробую с птичкой.

   Mikhail Volkov

74 — 17.08.22 — 14:53

Птичка не помогла.

   TormozIT

75 — 17.08.22 — 15:36

   Mikhail Volkov

76 — 17.08.22 — 16:54

(75) Открыл по ссылке http://devtool1c.ucoz.ru/index/variant_portativnyj/0-39 (части твой), далее скачал rdtt.zip, извлек из него ирПортативный.erp, попытался его открыть в Альфа-Авто на 8.3.10.2466, которая не может COM-соединится с КА1 (УПП) на 8.3.19.1522, получил:

Ошибка инициализации модуля: ВнешняяОбработка.ирПортативный.МодульОбъекта

по причине:

{ВнешняяОбработка.ирПортативный.МодульОбъекта(3928)}: Ошибка при вызове метода контекста (Создать)

по причине:

Ошибка подключения внешних метаданных

по причине:

Каталог не обнаружен ‘\corp.akitworkspace$1c1с_АрхивыCAМодулиирКэш.epf’

Папку Модули создал, а где взять ирКэш.epf?

   Mikhail Volkov

77 — 17.08.22 — 17:07

Создал пустой ирКэш.epf, получил:

Ошибка инициализации модуля: ВнешняяОбработка.ирПортативный.МодульОбъекта

по причине:

{ВнешняяОбработка.ирПортативный.МодульОбъекта(3928)}: Ошибка при вызове метода контекста (Создать)

по причине:

Ошибка подключения внешних метаданных

по причине:

Ошибка загрузки документа.

Как открыть, запустить ирПортативный.erp?

   TormozIT

78 — 17.08.22 — 18:54

(76) Ладно. Бросай ты этот ИР. Там слишком сложно запускать. Тебе подойдут только инструменты из одной внешней обработки. У меня таких нет.

   Mikhail Volkov

79 — 17.08.22 — 19:46

Нашел еще более старую картинку с платформой 8.3.14.1779: https://ibb.co/LvGfVX8, жаль не показано внутреннее содержимое вкладок.

   Mikhail Volkov

80 — 17.08.22 — 20:05

Может кто подскажет что должно быть на вкладке Безопасность?

   Сергиус

81 — 18.08.22 — 00:01

(50)Попробуй перерегистрировать dll из командной строки.

   Mikhail Volkov

82 — 18.08.22 — 08:15

   Mikhail Volkov

83 — 18.08.22 — 08:50

(80) В инструкции https://infostart.ru/public/610960/ в комментариях написано:

2. В оснастке служб компонентов, «Службы компонентов» — «Компьютеры» — «Мой компьютер» — «Приложения COM+»

3. Создаем новое приложение, правой кнопкой по «Приложения COM+» — «Создать» — «Приложение»

4*. Выбираем «Создать новое приложение», называем например «1cv8», тип выбираем «Серверное приложение»,

Учетная запись — Текущий пользователь, Пользователь с ролью Owner — поставил администратора компьютера (сервера).

(без этого возможна ошибка -2147024769(0x8007007F): Не найдена указанная процедура)

Мне не понятна фраза: «Пользователь с ролью Owner — поставил администратора компьютера (сервера)» — у меня лишь роль CreatorOwner https://ibb.co/7GrSHgm, надо что-то делать? Судя по старым картинкам приложения не ставил, только Компоненты.

   Mikhail Volkov

84 — 18.08.22 — 08:54

   Mikhail Volkov

85 — 18.08.22 — 15:25

Сделал все по Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С , но все равно ошибка: «Недопустимая строка с указанием класса» осталась!? Раньше не проверял OLE-соединение, только Com-соединение. Может все инструкции (которые здесь упоминал) не предназначены для OLE?

   Mikhail Volkov

86 — 18.08.22 — 16:35

(83) В свойствах приложения на вкладку Удостоверение добавил администратора компьютера (сервера) ИмяСервераUSR1CV82, но это не помогло. Не знаю правильно ли понял фразу из (83)?

   Сергиус

87 — 19.08.22 — 01:42

(82)консоль надо с правами админа запускать, а у тебя явно пользовательский запуск судя по картинке.

   Mikhail Volkov

88 — 19.08.22 — 07:49

(87) Консоль командной строки запущена под Администратором.

   Mikhail Volkov

89 — 19.08.22 — 07:54

(87) Смотри заголовок командной строки, или я чего-то не понимаю.

   Mikhail Volkov

90 — 19.08.22 — 09:26

Каюсь база КА1 (УПП), к которой я цепляюсь по COM-соединению, оказывается открыта конфигуратором в 8.3.10.2466, перезапустил в 8.3.19.1522, но все равно ошибка: «Недопустимая строка с указанием класса» осталась!?

   Mikhail Volkov

91 — 19.08.22 — 12:10

Удалил V83.COMConnector_8.3.19.1522 из службы компонентов совсем, Альфа-Авто ведет себя также как будь-то не было V83.COMConnector_8.3.19.1522 вовсе!?

   Mikhail Volkov

92 — 19.08.22 — 12:41

Нет ошибки, например: Не найдена указанная процедура.

   Kassern

93 — 19.08.22 — 12:44

Используйте веб сервисы и будет вам счастье

   Mikhail Volkov

94 — 19.08.22 — 14:32

(93) Раньше же до перехода (обновления) на другую версию платформы работало.

   Kassern

95 — 19.08.22 — 14:36

(94) Удалите все ком коннекторы, на клиенте и на сервере и заново зарегайте библиотеку комконнектор. Самостоятельно ее пропишите в компонентах по инструкциям. Может повезет и заработает

   Mikhail Volkov

96 — 19.08.22 — 14:54

(95) Уточни, где, что удалить? В конфигураторе или в Службе компонентов? А то формы общие.

   Kassern

97 — 19.08.22 — 15:22

(96) А как вы в конфигураторе удалите ком коннекторы?))

Речь идет о службах компонентов. Поймите уже наконец как работает ком соединение. Если на пальцах, есть библиотека 1с КомКоннектор.Длл. Через службу компонентов мы создаем обертку для этой библиотеки. Указываем права и прочие параметры. 1ска же цепляется к этой обертке и уже через нее работает с библиотекой. Нужно так же правильно прописывать путь до коннектора.

   Kassern

98 — 19.08.22 — 15:23

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

   lodger

99 — 19.08.22 — 16:23

(98) >> Обычно

это достаточно новая мулька. раньше вообще всегда надо было регать вручную

и теперь, когда ты ставишь дистриб на компе, где понах.ячено как у (0), то автоматически ничего не срабатывает — надо так же вручную вписывать новые компоненты.

   Mikhail Volkov

100 — 19.08.22 — 16:57

Сделал опять приложение (в конфигураторе прописал его имя: БазаКА = Новый COMОбъект(«V8_ComConnector»); — правильно? как в Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С в компоненте на вкладке Безопасность для роли CreatorOwner поставил галочку. Получил ошибку: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Неверные или отсутствующие параметры соединения с информационной базой. Хотя компоненту V83.COMConnector.1 заменил на псевдоним V83.COMConnector_8.3.19.1522 — правильно?

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

Вы зададитесь вопросом: «Как она может его не знать!?» Очень просто: либо используемый Вами релиз платформы ниже 1С:Предприятие 8.3.14, либо в свойствах конфигурации установлен режим совместимости ниже 8.3.14. Начиная с него тип УправляемаяФорма стал называться ФормаКлиентскогоПриложения. Это не означает, что старый тип не работает, но он устарел и фирма «1С» не дает никаких гарантий, что его не удалят в одном из будущих релизов.

Возможные варианты решений:

  1. Найти и заменить в коде все упоминания типа ФормаКлиентскогоПриложения на тип УправляемаяФорма
  2. Переключить режим совместимости в свойствах конфигурации на 8.3.14 и выше
  3. Выполнить апгрейд технологической платформы на версию 8.3.14 и выше

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

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

  1. Ошибка «Отсутствует отображение для типа (ФормаКлиентскогоПриложения)»

Поделиться страницей в соц.сетях

Метки: Метки 1С:Предприятие 8.2.14+ Управляемые формы

Ошибка Тип не определен возникает, когда кто-то пытается создать или определить тип отсутствующий с системе 1с предприятие или тип не соответствующий контексту выполнения.

Например:

Новый ОбъектКоторогоНет()

выдаст соответствующую ошибку.

Несоответствие контексту означает, что вы пытаетесь вызывать тип, который может существовать только на сервере из тонкого клиента.

Так же тип можно вызвать следующим кодом:

Тип("СправочникСсылка.Номенклатура")

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

ПодключитьВнешнююКомпоненту("Addin");

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

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

Второй этап это регистрация. Вызовите командную строку windows. Напишите там следующий текст: regsvr32.exe c:windows/system32/addin.dll

где addin.dll — это имя вашей библиотеки
а c:windows/system32 — это путь, в котором она находится

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