Форумы » Вопросы и ответы по интеграции »
К запискам с фронта (вопрос по классам)
Добавил(а) Семенова Вера около 7 лет назад
Если у меня классы подключаются в глобальном модуле ( при начале работы системы и в обработках), то при такой сборке с помощью defcls, выдается ошибка при подключении уже имеющихся, да и в начале загрузки Меркурий_Параметры_ТЕСТ -ошибки. Как это обойти?, или же будет два направления развития системы?
Ответы (17)
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Анисимов Михаил около 7 лет назад
defcls.prm - служит для сопоставления имени класса с файлом обработки. Вам нужно содержимое файла defcls.prm от этого проекта добавить в уже имеющийся файл.
Если есть сложности с объединением - то выложите сюда ваш базовый defcls.prm, попробуем помочь.
P.S. Желательно при обращении указывать (скопировать) те ошибки что выходят. Будет проще помочь.
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Семенова Вера около 7 лет назад
У меня несколько другой порядок подключения классов - нет defcls.prm, классы подключаются в глобальном модуле, сам выполняемый модуль в конфигураторе в виде обработок. Попробую туда все добавить, хотя сие есть неудобно с учетом частых обновлений
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Анисимов Михаил около 7 лет назад
Можете привести куски кода?
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Семенова Вера около 7 лет назад
// Подключение подсистемы "Сканы доков"
КлассПодсистемыСканыДоков__=СоздатьОбъект("__КлассПодсистемыСканыДоков");
КлассПодсистемыСканыДоков.ДобавитьДопГлобМодуль();
КлассПодсистемыСканыДоков.ПодписатьКлассНаСобытияФабрики(КлассФабрикаСобытий);
Выгонялка = СоздатьОбъект("__КлассВыход__");
Выгонялка.ФильтрПользователей = "Семенова_ВГ"; //не выгонять администратора
Если Выгонялка.Запустить() = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
Сервис=СоздатьОбъект("Сервис");
Сервис.ВключитьРаскраскуТаблиц();
Жирный = Сервис.СоздатьШрифт(,,9,,,,);
т.е. хочу объекты создать в глобальном модуле, а .ert как обработки в конфигураторе
Ошибка такая при открытии системы:
КлассФабрикаСобытий__=СоздатьОбъект("__КлассФабрикаСобытий");
{Глобальный модуль(6350)}: Неудачная попытка создания объекта (КлассФабрикаСобытий)с просьбой закрыть прграмму
если не закрываешь, а загружаешь "Меркурий_Параметры_ТЕСТ" - такая ошибка :
Меркурий_ГлобальныйМодуль::ВыборВерсии() : Слишком много параметров передано при вызове функции/процедуры объекта
Компонента.Init(
{C:\COPY2015P\ExtForms\Меркурий_ГлобальныйМодуль.ert(1790) }
ГМ.Инициализация(КаталогОбработки, КаталогИБ(), ТестовыйРежимРаботыМодуля);
{C:\COPY2015P\EXTFORMS\МЕРКУРИЙ_ПАРАМЕТРЫ_ТЕСТ.ERT}: Меркурий_ГлобальныйМодуль::ВыборВерсии() : Слишком много параметров передано при вызове функции/процедуры объекта
Компонента.Init(
{C:\COPY2015P\ExtForms\Меркурий_ГлобальныйМодуль.ert(1790) }
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Анисимов Михаил около 7 лет назад
Смотрите, вы используете классы "__КлассПодсистемыСканыДоков", "__КлассФабрикаСобытий". Где они определены? Какая то внешняя компонента?
В базовой версии (без модуля Меркурия) у вас присутствует файл в каталоге базы 1С defcls.prm?
У меня складывается ощущение что вы перезаписали имеющийся рабочий файл defcls.prm с объявленными ранее классами - на файл от меркурия. В случае если у вас уже используется файл с описанием классов, то необходимо было в него добавить строки, заменив в случае необходимость путь до файлов (если он отличается от предложенного автором)
class Меркурий_ГлобальныйМодуль = .\ExtForms\Меркурий_ГлобальныйМодуль.ert {} class МеркурийИнтеграция = .\ExtForms\Меркурий_Интеграция.ert {}
Далее версии файлов модуля Меркурий у вас устаревшие, загрузите свежие.
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Семенова Вера около 7 лет назад
Файл defcls в конфигураторе
//# класс КлассФабрикаСобытий = КлассФабрикаСобытий@MD
//# {};
//# класс КлассПодсистемыДопПраваДоков = КлассПодсистемыДопПраваДоков@MD
//# {};
//# класс КлассПодсистемыСканыДоков = КлассПодсистемыСканыДоков@MD
//# {};
//# класс КлассВыход = КлассВыход@MD
//# {};
А версии я скачивала 22.09, загружу вечерние
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Анисимов Михаил около 7 лет назад
Тогда уберите defcls вообще
и добавьте строки
//# класс КлассФабрикаСобытий = КлассФабрикаСобытий@MD
//# {};
//# класс КлассПодсистемыДопПраваДоков = КлассПодсистемыДопПраваДоков@MD
//# {};
//# класс КлассПодсистемыСканыДоков = КлассПодсистемыСканыДоков@MD
//# {};
//# класс КлассВыход = КлассВыход@MD
//# {};
//# класс Меркурий_ГлобальныйМодуль = .\ExtForms\Меркурий_ГлобальныйМодуль.ert
//# {};
//# класс МеркурийИнтеграция = .\ExtForms\Меркурий_Интеграция.ert
//# {};
Должно заработать, хотя таким объявлением классов не пользовался.
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Семенова Вера около 7 лет назад
Все та же ошибка
Меркурий_ГлобальныйМодуль::ВыборВерсии() : Слишком много параметров передано при вызове функции/процедуры объекта
Компонента.Init(
{Меркурий_ГлобальныйМодуль@MD }
ГМ.Инициализация(КаталогМодуля, КаталогБиблиотек, ТестовыйРежимРаботыМодуля);
{C:\COPY2015P\EXTFORMS\МЕРКУРИЙ_ПАРАМЕТРЫ_ТЕСТ.ERT}: Меркурий_ГлобальныйМодуль::ВыборВерсии() : Слишком много параметров передано при вызове функции/процедуры объекта
Компонента.Init(
{Меркурий_ГлобальныйМодуль@MD }
RE: К запискам с фронта (вопрос по классам) - Добавил(а) кб99 Синявский Филипп около 7 лет назад
обновите ВСЕ файлы, в том числе dll¶
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Семенова Вера около 7 лет назад
во первых- у меня Server2008, во- вторых терминальный клиент, покопаем
не нужно так нервничать
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Семенова Вера около 7 лет назад
И DNS-сервер по определенным причинам явно не указан, что тоже обойти нужно
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Анисимов Михаил около 7 лет назад
Семенова Вера писал(а):
Все та же ошибка
Меркурий_ГлобальныйМодуль::ВыборВерсии() : Слишком много параметров передано при вызове функции/процедуры объекта
Компонента.Init( {Меркурий_ГлобальныйМодуль@MD }ГМ.Инициализация(КаталогМодуля, КаталогБиблиотек, ТестовыйРежимРаботыМодуля); {C:\COPY2015P\EXTFORMS\МЕРКУРИЙ_ПАРАМЕТРЫ_ТЕСТ.ERT}: Меркурий_ГлобальныйМодуль::ВыборВерсии() : Слишком много параметров передано при вызове функции/процедуры объекта
Компонента.Init( {Меркурий_ГлобальныйМодуль@MD }
1) Скопируйте сюда объявления классов как сейчас у вас сделано.
2) Где лежат файлы Меркурий_ГлобальныйМодуль, Меркурий_Интеграция и ДРУГИЕ файлы тоже.
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Семенова Вера около 7 лет назад
1.
//# класс КлассФабрикаСобытий = КлассФабрикаСобытий@MD
//# {};
//# класс КлассПодсистемыДопПраваДоков = КлассПодсистемыДопПраваДоков@MD
//# {};
//# класс КлассПодсистемыСканыДоков = КлассПодсистемыСканыДоков@MD
//# {};
//# класс КлассВыход = КлассВыход@MD
//# {};
//# класс Меркурий_ГлобальныйМодуль = Меркурий_ГлобальныйМодуль@MD
//# {};
//# класс МеркурийИнтеграция = Меркурий_Интеграция@MD
2.
Файлы Меркурий_ГлобальныйМодуль, Меркурий_Интеграция я уже подключила в глобальный модуль как обработки(пробовала и так, и так)
Остальные файлы - КаталогИБ\EXTFORMS\
Но смею предположить, что дело в настройках сервера и терминала, потому как та же база загружается, и файл Меркурий_Параметры_ТЕСТ -все Ок,
когда работаешь с этой же базой без терминала. Я посмотрю еще здесь на форуме ( о терминале), хотя ошибку выдает выдает программную
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Анисимов Михаил около 7 лет назад
На мой взгляд на период активного внедрения/доработки модуля - интегрировать в конфигурацию не стоит. Слишком часты возможны обновления.
Посмотрите версии библиотек 1CPP на сервере и на рабочей машине.
На сервере запускаете 1С под правами Администратора?
Если классы сделать не в составе конфигурации - та же самая ошибка?
Отладчиком не пробовали проходить этот момент?
При запуске 1С есть какие то уведомления или ошибки?
Какая базовая конфигурация - комплексная?
RE: К запискам с фронта (вопрос по классам) - Добавил(а) кб99 Синявский Филипп около 7 лет назад
Вера, следуйте инструкции по обновлению модуля http://redmine.kb99.pro/projects/vsd_1c/wiki/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8E_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F
Если честно, устал повторять одно и тоже...
С соответствиями версий надо что-то делать...
Например, отключить старые версии совсем...
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Семенова Вера около 7 лет назад
Удалила все упоминания о dll из реестра, и зарегистрировала непосредственно на сервере.
Спасибо Михаил, спасибо Филипп.
RE: К запискам с фронта (вопрос по классам) - Добавил(а) Анисимов Михаил около 7 лет назад
Все получилось? Описанные ранее ошибки пропали?