Что я люблю в 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запрос, настройкикомандногоинтерфейса, выборкаизрезультатазапроса
Все таки есть еще в мире вещи, на которые можно положиться. Например, еще ни разу не было рекламного клипа с плохим концом.
Тип не определен (Запрос) Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент) |
Я |
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
в тонком клиенте нет запросов. Управление надо передать на сервер
2 — 23.06.22 — 13:19
Возврат Выборка.Количество() <= 1
3 — 23.06.22 — 13:39
Инструкциями препроцессора (#Если Не ТонкийКлиент И Не ВебКлиент И Не МобильныйКлиент Тогда) можно заэкранировать фрагменты модуля, если не хочется делать отдельный модуль.
4 — 23.06.22 — 14:31
(1) На счет запросов понятно — клиент их не может делать. Но вопрос: что может клиент, но не может сервер?
5 — 23.06.22 — 14:33
(4)
ТекстовыйДокумент (TextDocument)
Показать (Show)
Доступность:
Тонкий клиент, веб-клиент, толстый клиент.
6 — 23.06.22 — 14:42
(4) В настройках синтаксис помощника
https://i.imgur.com/W1Nf3eh.png
7 — 23.06.22 — 14:56
(4) чтобы не было каши в названиях модулей и галочках
https://its.1c.ru/db/v8std#content:469:hdoc
8 — 23.06.22 — 16:00
(5) ТекстовыйДокумент() — этого точно нет в общем модуле мвДоработки.
(6), (7) Спс. Значит можно снять галочку Клиент с мвДоработки.
9 — 23.06.22 — 16:07
Эта тему можно закрыть. Может кто поможет с вопросом КД2: Сравнение и объединение правил обмена а то он не по теме.
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 и ужаснулся: не уже ли так, больше никак?
11 — 28.07.22 — 10:52
(10) «и ужаснулся: не уже ли так, больше никак?» — уже давно так, ничего сложного там нет
12 — 28.07.22 — 11:12
(10) я больше ужаснулся, когда увидел, как зверски слово «неужели» разорвали на три части
13 — 28.07.22 — 11:22
(12) разорвало в клочья.
14 — 28.07.22 — 11:52
(10) «знаю что Com-обмены могут работать на разных платформах», можете поделиться ссылкой на описание, как это организовать?
15 — 28.07.22 — 12:09
16 — 28.07.22 — 15:25
(11) Давно, но так-то что-то настраивал в службе компонентов Службы компонентов: возможно ли создать обертку OLE соединения V83.Application Что-то создавал там, но сейчас найти не могу где? Не давно обновил высокую платформу, может там что перенастроить нужно? Но где ранее сделанные настройки?
(15) самое неприятное: «Ну и самое главное: не забываем, что работать это будет только при запуске 1С с административными правами.» — а обычным пользователям как работать!?
17 — 29.07.22 — 08:28
Нашел, последняя была 8.3.16.1959, сейчас 8.3.19.1522 https://ibb.co/ZHk8XsH Как исправить? Менять цифры в наименовании наверное бесполезно.
18 — 29.07.22 — 10:05
19 — 29.07.22 — 10:41
Вроде сделал по инструкции (10). Не знаю как перезапустить службу компонентов?
(18) Что за «Управление СОМ классами 1С (ИР)» — где ее взять?
20 — 29.07.22 — 11:38
(19) ИР — Инструменты разработчика Tormozit для 1С
http://devtool1c.ucoz.ru/
21 — 30.07.22 — 08:49
(20) Скачал ИНСТРУМЕНТЫ РАЗРАБОТЧИКА ПОРТАТИВНЫЙ 1С 8.2+ V6.37.1P, как его запустить?
(19) Ночью перезагрузил сервер, похоже ничего не изменилось.
22 — 30.07.22 — 09:45
23 — 30.07.22 — 10:10
Капец, деректив не знаешь, функцию СтрШаблон видимо тоже(
«Но вопрос: что может клиент, но не может сервер?» В синтакспомощнике забанен походу)
24 — 30.07.22 — 10:14
Что может клиент и не может сервер — много чего. В основном интерактивная работа — формы, диалоги.
А еще сервер много чего может чего не может клиент. Новичков в УФ обычно начинает бомбить от того, что на клиенте нельзя использовать таблицу значений.
25 — 30.07.22 — 10:29
(24) зачем было запрещать таблицу на клиенте вообще не понятно. Тем более что через хаки ее можно там получить
26 — 30.07.22 — 11:06
(25) > через хаки
Ну давай, получи её в веб-клиенте. Через хаки.
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с знают
32 — 30.07.22 — 11:55
У текущего пользователя ИБ включен флажок «Защита от опасных действий». Для корректной работы инструментов его рекомендуется выключить!
Как это сделать?
33 — 30.07.22 — 12:21
Эта галка только в конфигураторе
34 — 30.07.22 — 12:24
Галка у пользователя в конфигураторе. Есть еще защита от опасных действий, безопасный режим у расширения.
35 — 30.07.22 — 12:33
(33),(34) Обычный реквизит? — найти не могу.
36 — 30.07.22 — 12:33
Пользователи это не справочник
37 — 30.07.22 — 12:36
(36) Как так, не только?
38 — 30.07.22 — 13:07
Где еще?
39 — 30.07.22 — 14:00
(34) у расширения? А если его не использую…
40 — 30.07.22 — 15:42
(39) если не используешь, значит это тебе не надо.
41 — 30.07.22 — 15:42
Пользователи Информационной базы. В конфигураторе.
42 — 30.07.22 — 16:22
(40) Не понял.
43 — 30.07.22 — 17:08
Если нет расширений значит это ограничениев расширении не работает. Остается только пользователь.
44 — 31.07.22 — 07:07
(43) В справочнике Пользователи, или где он?
45 — 31.07.22 — 07:33
Почему в службе компонентов в свойствах V83COMConnector_8_3_19_1522 не вижу версию comcntr.dll (пункт 9 инструкции (10)). Почему в имени V83COMConnector_ в написании версии не могу использовать точки вместо подчеркиваний 8_3_19_1522?
46 — 31.07.22 — 08:25
D свойствах V83COMConnector_8_3_19_1522 на вкладке «Удостоверение» обязательно указывать пользователь/пароль? Если Да, то какого?
47 — 31.07.22 — 08:28
48 — 31.07.22 — 09:35
(47) Администрирование/Пользователи
49 — 31.07.22 — 09:52
Но там не стоит «защита от опасных действий» https://ibb.co/MhcBtGW .
50 — 01.08.22 — 06:49
Вернемся к нашей ошибке: -2147221005(0x800401F3): Недопустимая строка с указанием класса — как ее исправить?
51 — 01.08.22 — 07:29
Сумел открыть инструмент (18) по подсказке (22) ?
52 — 01.08.22 — 07:39
(50) Используй для начала 32-разрядную платформу
53 — 01.08.22 — 08:06
(52) НЕ хотелось бы…
54 — 01.08.22 — 08:07
(53) Начни с малого. Возможно, натолкнёт на решение большего.
55 — 01.08.22 — 08:14
(54) Платформа 8.3.19.1522 у меня стоит 2-й платформой на сервере (на других портах) не хотелось бы ее трогать.
56 — 01.08.22 — 08:49
(55) Дело не в том, что ты хочешь, а в том, чтобы разобраться в причинах. Что мешает проверить на копии локально хотя бы в файловом режиме?
57 — 01.08.22 — 10:39
(56) Не пойму какие выводы я должен вынести из этого эксперимента, ну сменю версию платформы, ну исчезнет ошибка, а дальше что делать?
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 вроде все по этой инструкции, но ошибка: «Недопустимая строка с указанием класса» осталась!?
59 — 16.08.22 — 14:17
С таким подходом к концу года сам разберешься наверное.
60 — 16.08.22 — 14:28
(59) Хотелось бы раньше.
61 — 16.08.22 — 14:38
(60) тогда вернись к (20) и попробуй утильку от TormozIT
62 — 16.08.22 — 15:52
(61) Ну скачал его, а что делать с ним не знаю?
63 — 16.08.22 — 18:09
(62) Открыть в нем инструмент «Управление СОМ классами 1С»
64 — 16.08.22 — 18:13
(63) И дальше что, как сделать правильно, чтобы работало?
65 — 16.08.22 — 18:29
Надо понять где выполняется код, вызывающий COM-соединение. Если на сервере, то тебе надо запустить на сервере терминальный сеанс под тем же пользователем ОС, под которым работает служба 1С. Открываешь «Управление СОМ классами 1С (ИР)» и показываешь нам картинку.
66 — 16.08.22 — 18:34
(65) Прежде чем показать нужно это запустить. Как это сделать?
67 — 16.08.22 — 18:40
68 — 16.08.22 — 19:13
(67) Не удачный пример с расширением. Расширением я не пользуюсь, оно в 8.3.10 недоступно. Другие примеры есть без расширений?
69 — 16.08.22 — 19:19
Для обычных форм.
70 — 16.08.22 — 22:28
(68) Обманываешь. Для варианта «Расширение» на странице скачивания указано «Для 1С 8.3.10+ в режиме совместимости 8.3.9+»
Если же не пользуешься по религиозным причинам, то значит ты скачал вариант «Портативный». Тогда идешь и читаешь раздел «Запуск» (целое одно предложение) в его описании http://devtool1c.ucoz.ru/index/variant_portativnyj/0-39
71 — 17.08.22 — 11:49
(70) Не понял, по ссылке: 404 Не Найдено!?
72 — 17.08.22 — 12:00
(70) > то значит ты скачал вариант «Портативный»
Да, писал в (21).
73 — 17.08.22 — 14:37
Нашел COM-соединение и версии платформ в ней ссылка на Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С — мало отличается от инструкции в (58), но есть неясные места, например, 5. Учетная запись для запуска приложения: выбираем учетку под которой стартует сервер 1С — как выбирать? Или 6. В ветке созданного приложения переходим на ветку «Роли» открываем роль «CreatorOwner» и далее в разделе «Пользователи» создаем пользователя — учетную запись под которой работает сервер 1С. — это как? Пароль я знаю, ввожу его, когда устанавливаю или обновляю сервер 1С. Открываю роль «CreatorOwner» в папке Пользователи вижу свою учетную запись — она и есть, ничего вводить не надо?
Далее все как (58), а нет: 9. Открываем свойства только что созданного компонента, идем на вкладку «Безопасность», проверяем в списке «Явно установленные для выделенных объектов роли» стоит ли «птичка» напротив роль CreatorOwner — если нет, тогда устанавливаем эту «птичку». Попробую с птичкой.
74 — 17.08.22 — 14:53
Птичка не помогла.
75 — 17.08.22 — 15:36
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?
77 — 17.08.22 — 17:07
Создал пустой ирКэш.epf, получил:
Ошибка инициализации модуля: ВнешняяОбработка.ирПортативный.МодульОбъекта
по причине:
{ВнешняяОбработка.ирПортативный.МодульОбъекта(3928)}: Ошибка при вызове метода контекста (Создать)
по причине:
Ошибка подключения внешних метаданных
по причине:
Ошибка загрузки документа.
Как открыть, запустить ирПортативный.erp?
78 — 17.08.22 — 18:54
(76) Ладно. Бросай ты этот ИР. Там слишком сложно запускать. Тебе подойдут только инструменты из одной внешней обработки. У меня таких нет.
79 — 17.08.22 — 19:46
Нашел еще более старую картинку с платформой 8.3.14.1779: https://ibb.co/LvGfVX8, жаль не показано внутреннее содержимое вкладок.
80 — 17.08.22 — 20:05
Может кто подскажет что должно быть на вкладке Безопасность?
81 — 18.08.22 — 00:01
(50)Попробуй перерегистрировать dll из командной строки.
82 — 18.08.22 — 08:15
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, надо что-то делать? Судя по старым картинкам приложения не ставил, только Компоненты.
84 — 18.08.22 — 08:54
85 — 18.08.22 — 15:25
Сделал все по Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С , но все равно ошибка: «Недопустимая строка с указанием класса» осталась!? Раньше не проверял OLE-соединение, только Com-соединение. Может все инструкции (которые здесь упоминал) не предназначены для OLE?
86 — 18.08.22 — 16:35
(83) В свойствах приложения на вкладку Удостоверение добавил администратора компьютера (сервера) ИмяСервераUSR1CV82, но это не помогло. Не знаю правильно ли понял фразу из (83)?
87 — 19.08.22 — 01:42
(82)консоль надо с правами админа запускать, а у тебя явно пользовательский запуск судя по картинке.
88 — 19.08.22 — 07:49
(87) Консоль командной строки запущена под Администратором.
89 — 19.08.22 — 07:54
(87) Смотри заголовок командной строки, или я чего-то не понимаю.
90 — 19.08.22 — 09:26
Каюсь база КА1 (УПП), к которой я цепляюсь по COM-соединению, оказывается открыта конфигуратором в 8.3.10.2466, перезапустил в 8.3.19.1522, но все равно ошибка: «Недопустимая строка с указанием класса» осталась!?
91 — 19.08.22 — 12:10
Удалил V83.COMConnector_8.3.19.1522 из службы компонентов совсем, Альфа-Авто ведет себя также как будь-то не было V83.COMConnector_8.3.19.1522 вовсе!?
92 — 19.08.22 — 12:41
Нет ошибки, например: Не найдена указанная процедура.
93 — 19.08.22 — 12:44
Используйте веб сервисы и будет вам счастье
94 — 19.08.22 — 14:32
(93) Раньше же до перехода (обновления) на другую версию платформы работало.
95 — 19.08.22 — 14:36
(94) Удалите все ком коннекторы, на клиенте и на сервере и заново зарегайте библиотеку комконнектор. Самостоятельно ее пропишите в компонентах по инструкциям. Может повезет и заработает
96 — 19.08.22 — 14:54
(95) Уточни, где, что удалить? В конфигураторе или в Службе компонентов? А то формы общие.
97 — 19.08.22 — 15:22
(96) А как вы в конфигураторе удалите ком коннекторы?))
Речь идет о службах компонентов. Поймите уже наконец как работает ком соединение. Если на пальцах, есть библиотека 1с КомКоннектор.Длл. Через службу компонентов мы создаем обертку для этой библиотеки. Указываем права и прочие параметры. 1ска же цепляется к этой обертке и уже через нее работает с библиотекой. Нужно так же правильно прописывать путь до коннектора.
98 — 19.08.22 — 15:23
Обычно, при установке платформы, 1ска сама это дело регистрирует и прописывает, но вот иногда бывают косяки. Или бывает несколько платформ развернуто с разными версиями, что тоже может вызывать косяки.
99 — 19.08.22 — 16:23
(98) >> Обычно
это достаточно новая мулька. раньше вообще всегда надо было регать вручную
и теперь, когда ты ставишь дистриб на компе, где понах.ячено как у (0), то автоматически ничего не срабатывает — надо так же вручную вписывать новые компоненты.
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С» не дает никаких гарантий, что его не удалят в одном из будущих релизов.
Возможные варианты решений:
- Найти и заменить в коде все упоминания типа
ФормаКлиентскогоПриложения
на типУправляемаяФорма
- Переключить режим совместимости в свойствах конфигурации на 8.3.14 и выше
- Выполнить апгрейд технологической платформы на версию 8.3.14 и выше
Внимание! В последних двух случаях не забывайте выполнить проверку остальных ключевых механизмов на тестовой среде перед обновлением платформы на рабочем контуре
Читайте также:
- Ошибка «Отсутствует отображение для типа (ФормаКлиентскогоПриложения)»
Поделиться страницей в соц.сетях
Метки: Метки 1С:Предприятие 8.2.14+ Управляемые формы
Ошибка Тип не определен возникает, когда кто-то пытается создать или определить тип отсутствующий с системе 1с предприятие или тип не соответствующий контексту выполнения.
Например:
Новый ОбъектКоторогоНет()
выдаст соответствующую ошибку.
Несоответствие контексту означает, что вы пытаетесь вызывать тип, который может существовать только на сервере из тонкого клиента.
Так же тип можно вызвать следующим кодом:
Тип("СправочникСсылка.Номенклатура")
Часто данная ошибка возникает при подключении внешних библиотек для расширения функций 1С или для подключения внешнего оборудования. Это может быть код что то типа:
ПодключитьВнешнююКомпоненту("Addin");
Возможно причина в ошибке кроется в том, что пользователь зашел в windows без привелегий администратора. Ведь для того чтобы установить библиотеку нужны права администратора. Поэтому попробуйте первый раз зайти под администратором.
Если предыдущий пункт не помог, то можно попробовать зарегистрировать библиотеку вручную. Для того чтобы зарегистрировать необходимую компоненту вам сначала нужно иметь на руках библиотеку. Как правило это файл с расширением .dll или .ocx. Если она поставляется как внешняя, то хорошо она уже у вас есть, если она находится внутри конфигурации, то придется ее сначала оттуда достать.
Второй этап это регистрация. Вызовите командную строку windows. Напишите там следующий текст: regsvr32.exe c:windows/system32/addin.dll
где addin.dll — это имя вашей библиотеки
а c:windows/system32 — это путь, в котором она находится