tormozit / RDT1C

Подсистема "Инструменты разработчика" для платформы 1С 8
http://devtool1c.ucoz.ru
87 stars 8 forks source link

Ошибка при попытке открыть форму объекта: "ВнешнийИсточникДанных....Таблица.Контрагенты" не имеет менеджера объекта. #595

Closed JohnyDeath closed 1 month ago

JohnyDeath commented 2 months ago

Программное окружение

Платформа: 8.3.24.1368 Режим БД: клиент-серверный Конфигурация. Название: Бухгалтерия предприятия КОРП, редакция 3.0. БитФинанс (3.0.150.33/3.1.59.6) Конфигурация. Основной режим запуска: Управляемое приложение Конфигурация. Вариант встроенного языка: Русский Конфигурация. Режим управления блокировкой данных: Управляемый Конфигурация. Режим совместимости: Версия8_3_21 Конфигурация. Режим использования синхронных вызовов: Использовать Конфигурация. Версия БСП: 301 Конфигурация. Использовать обычные формы в управляемом приложении: Да Инструменты разработчика. Версия: Расширение 7.27.1e Инструменты разработчика. Инструмент: Прочее Инструменты разработчика. Перехват клавиатурного ввода: Да Инструменты разработчика. Объекты на сервере: Да Инструменты разработчика. Асинхронность запрещена: Нет Инструменты разработчика. Разрешены имитаторы: Да

Воспроизведение проблемы В консоли запросов пишем код:

выбрать первые 10
ссылка
из ВнешнийИсточникДанных.Dox.Таблица.Контрагенты

пытаемся открыть любую ссылку из результата, получаем ошибку

Объект метаданных "ВнешнийИсточникДанных.Dox.Таблица.Контрагенты" не имеет менеджера объекта. {ОбщийМодуль.ОбщегоНазначения.Модуль(3991)}:ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( {ОбщийМодуль.ПодключаемыеКоманды.Модуль(391)}:Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя); {ОбщийМодуль.ПодключаемыеКоманды.Модуль(568)}:Источник = ЗарегистрироватьИсточник(ОбъектМетаданных, Источники, ПодключенныеОбъекты, НастройкиПрограммногоИнтерфейса); {ОбщийМодуль.ПодключаемыеКомандыПовтИсп.Модуль(12)}:Возврат Новый ФиксированнаяСтруктура(ПодключаемыеКоманды.КэшФормы(ИмяФормы, ИсточникиЧерезЗапятую, ЭтоФормаОбъекта)); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирСервер.Модуль(1174)}:КомандыБСП = ПодключаемыеКомандыМой.КэшФормы(".", ИмяОсновнойТаблицы, Ложь).Команды.Скопировать(); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(20085)}:КомандыБСП = ирОбщий.ОбъектИзСтрокиXMLЛкс(ирСервер.КомандыБСППоИмениТаблицыЛкс(ИмяТаблицы)); {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(3554)}:мФормаУпрДляПодключаемыхКоманд = ирКлиент.ДобавитьКнопкиКомандБСПЛкс(ЭлементыФормы.ОсновныеДействияФормы, ИмяОсновнойТаблицы, ЭтоСсылочныйОбъект); {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(1171)}:ИмяОсновнойТаблицыПриИзменении(, ЗапретитьЗаполнение); {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(1111)}:УстановитьТаблицуБД(НовоеИмяОсновнойТаблицы, Истина); // Здесь будет прочитан объект, если имя таблицы изменилось {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(1041)}:ЗагрузитьОбъектПоКлючу(фОбъект.ПараметрКлючИлиОбъект); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(11823)}:Форма.Открыть(); // В открытой форме платформа при этом тоже выполняет перерисовку табличных текущих страниц панелей формы {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(11727)}:Форма_АктивироватьОткрытьЛкс(ФормаРедактора); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(11658)}:ФормаРедактора = ОткрытьРедакторОбъектаБДЛкс(ИмяТаблицы, ИмяПоля,, КлючОбъекта,, ДанныеСтрокиТаблицы, КлючОбъекта,, НайденныеСсылки,,,,, ИскомоеЗначение); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(5237)}:ФормаСсылки = ОткрытьСсылкуВРедактореОбъектаБДЛкс(РедактируемоеЗначение); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(5914)}:Результат = ОткрытьЗначениеЛкс(РасширенноеЗначение, РедактированиеРазрешено, СтандартнаяОбработка, Заголовок,, ПринудительноВОтдельнойФорме,, ТабличноеПоле, СтрокаПоиска, КлючУникальности); {ИнструментыРазработчикаTormozit Обработка.ирКонсольЗапросов.Форма.Форма.Форма(9964)}:ирКлиент.ЯчейкаТабличногоПоляРасширенногоЗначения_ВыборЛкс(ЭтаФорма, Элемент, СтандартнаяОбработка);

У ВнешнийИсточникДанных.Dox.Таблица.Контрагенты пустой модуль менеджера. Форм, созданных в конфигураторе, тоже нет.

Возможно как-то связано с недавней решенной проблемой https://github.com/tormozit/RDT1C/issues/594

tormozit commented 2 months ago

Врядли это следствие каких то недавних изменений в ИР. Для обхода проблемы запусти управляемое приложение или создай управляемую форму объекта или открывай ссылку редактором объекта БД

JohnyDeath commented 2 months ago

Да, это не следствие недавних изменений. Я имел ввиду, что проблема скорее всего та же, что и в той задаче - БСП для внешних источников. Я работал в управляемом приложении (толстый клиент). Открытие в редакторе объекта БД тоже не работает:

Объект метаданных "ВнешнийИсточникДанных.Dox.Таблица.Контрагенты" не имеет менеджера объекта. {ОбщийМодуль.ОбщегоНазначения.Модуль(3991)}:ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( {ОбщийМодуль.ПодключаемыеКоманды.Модуль(391)}:Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя); {ОбщийМодуль.ПодключаемыеКоманды.Модуль(568)}:Источник = ЗарегистрироватьИсточник(ОбъектМетаданных, Источники, ПодключенныеОбъекты, НастройкиПрограммногоИнтерфейса); {ОбщийМодуль.ПодключаемыеКомандыПовтИсп.Модуль(12)}:Возврат Новый ФиксированнаяСтруктура(ПодключаемыеКоманды.КэшФормы(ИмяФормы, ИсточникиЧерезЗапятую, ЭтоФормаОбъекта)); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирСервер.Модуль(1174)}:КомандыБСП = ПодключаемыеКомандыМой.КэшФормы(".", ИмяОсновнойТаблицы, Ложь).Команды.Скопировать(); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(20085)}:КомандыБСП = ирОбщий.ОбъектИзСтрокиXMLЛкс(ирСервер.КомандыБСППоИмениТаблицыЛкс(ИмяТаблицы)); {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(3554)}:мФормаУпрДляПодключаемыхКоманд = ирКлиент.ДобавитьКнопкиКомандБСПЛкс(ЭлементыФормы.ОсновныеДействияФормы, ИмяОсновнойТаблицы, ЭтоСсылочныйОбъект); {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(1171)}:ИмяОсновнойТаблицыПриИзменении(, ЗапретитьЗаполнение); {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(1111)}:УстановитьТаблицуБД(НовоеИмяОсновнойТаблицы, Истина); // Здесь будет прочитан объект, если имя таблицы изменилось {ИнструментыРазработчикаTormozit Обработка.ирРедакторОбъектаБД.Форма.Форма.Форма(1041)}:ЗагрузитьОбъектПоКлючу(фОбъект.ПараметрКлючИлиОбъект); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(11823)}:Форма.Открыть(); // В открытой форме платформа при этом тоже выполняет перерисовку табличных текущих страниц панелей формы {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(11727)}:Форма_АктивироватьОткрытьЛкс(ФормаРедактора); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(11658)}:ФормаРедактора = ОткрытьРедакторОбъектаБДЛкс(ИмяТаблицы, ИмяПоля,, КлючОбъекта,, ДанныеСтрокиТаблицы, КлючОбъекта,, НайденныеСсылки,,,,, ИскомоеЗначение); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(11635)}:ОткрытьСсылкуВРедактореОбъектаБДЛкс(ЗначениеЯчейки); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(18427)}:ОткрытьСсылкуЯчейкиВРедактореОбъектаБДЛкс(ИсточникДействий); {ИнструментыРазработчикаTormozit Обработка.ирКонсольЗапросов.Форма.Форма.Форма(10318)}:ирКлиент.УниверсальнаяКомандаФормыЛкс(ЭтаФорма, Кнопка);

tormozit commented 2 months ago

Я работал в управляемом приложении

Было бы здорово это сразу указывать. Тем более в технической информации по кнопке это сразу есть.

JohnyDeath commented 2 months ago

Было бы здорово это сразу указывать. Тем более в технической информации по кнопке это сразу есть.

Вроде бы всё сразу указал. Как раз из кнопки в тех информации. Вот это разве не то?

Конфигурация. Основной режим запуска: Управляемое приложение

Еще дополню. Даже если у объекта ВИД есть форма и менеджер не пустой, то редактор объекта БД (ctrl+q в ячейке результата консоли запросов) отображает ту же самую ошибку.

tormozit commented 2 months ago

Ошибку подтверждаю https://www.hostedredmine.com/issues/985633

JohnyDeath commented 2 months ago

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

Клиент. Приложение: Управляемое приложение 64б Клиент. Проверка модальных вызовов: Нет Клиент. Язык интерфейса конфигурации: ru Клиент. Язык интерфейса системы: ru Клиент. Отладка разрешена: Да Клиент. Постоянный кэш метаданных: Да Клиент. ОС Текущая кодовая страница: 866 Клиент-Сервер. Пинг: 0мс

tormozit commented 2 months ago

Вот это разве не то?

Это не то. Вот то

изображение

tormozit commented 2 months ago

Возможно как-то связано с недавней решенной проблемой #594

Да. Проблема та же по сути.

tormozit commented 2 months ago

Исправлено в 7.27.2

JohnyDeath commented 2 months ago

Ошибка ушла. Но теперь для форму, у которой нет собственной формы, открывается сразу редактор объектов, а не сгенерированная платформой форма. Так и задумано?

tormozit commented 1 month ago

Так и задумано?

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

JohnyDeath commented 1 month ago

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

tormozit commented 1 month ago

По открытию формы автоформы объекта исправлю https://www.hostedredmine.com/issues/985788

tormozit commented 1 month ago

Исправлено в 7.28

JohnyDeath commented 1 month ago

Спасибо!