|
УФ на сервере не вызывается процедура глобального серверного модуля? | ☑ | ||
---|---|---|---|---|
0
Elf56
04.09.17
✎
13:13
|
Всем доброго времени суток Имеется 1С:Предприятие 8.3 (8.3.10.2466)
Конфа самописная с использованием БСП. Не могу понять почему так происходит. Перевожу документ на управляемые формы с обычных. Есть Экспортная процедура ИнициализацияМеханизмаПечати находящаяся в глобальной общем модуле со свойствами 1. Глобальный 2. Сервер 3. Клиент (обычное приложение) 4. Вызов сервера. В документе при открытии вот так вызываю нужную процедуру &НаСервере Процедура ПриОткрытииНаСервере(ДействиеПечать, ДействиеВыбратьПечать, ДействиеВыбратьФайл) // Инициализация механизма печати ИнициализацияМеханизмаПечати( ЭтаФорма, Элементы, Элементы.ОсновныеДействияФормы, Элементы.ДействияФормы, ДействиеПечать, ЭтотОбъект, Объект.мСписокМакетов, ДействиеВыбратьПечать, ДействиеВыбратьФайл, Объект.мКнопкаПоУмолчанию ); КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) ДействиеПечать = Новый Действие("ДействияФормыДействиеПечать"); ДействиеВыбратьПечать = Новый Действие("ДействияФормыДействиеВыбратьПечатнуюФормы"); ДействиеВыбратьФайл = Новый Действие("ДействияФормыДействиеВыбратьФайл"); ПриОткрытииНаСервере(ДействиеПечать, ДействиеВыбратьПечать, ДействиеВыбратьФайл); КонецПроцедуры Ругается на то, что {Документ.СторнированиеОплаты.Форма.ФормаДокументаУФ.Форма(81,2)}: Процедура или функция с указанным именем не определена (ИнициализацияМеханизмаПечати) <<?>>ИнициализацияМеханизмаПечати( (Проверка: Сервер) Почему так ведь общий модуль компилируется на стороне сервера и вызов тоже происходит со стороны сервера? Всем заранее спасибо. |
|||
1
1dvd
04.09.17
✎
13:14
|
ИмяМодуля.ИнициализацияМеханизмаПечати(...
|
|||
2
Elf56
04.09.17
✎
13:16
|
Пишу вот так
сХранилищеДополнительнойИнформации.ИнициализацияМеханизмаПечати( Выдает ошибку {Документ.СторнированиеОплаты.Форма.ФормаДокументаУФ.Форма(81,2)}: Переменная не определена (сХранилищеДополнительнойИнформации) <<?>>сХранилищеДополнительнойИнформации.ИнициализацияМеханизмаПечати( (Проверка: Сервер) |
|||
3
Elf56
04.09.17
✎
13:18
|
Хотя имя модуля копирую
|
|||
4
Elf56
04.09.17
✎
13:46
|
поднял
|
|||
5
Fedor-1971
04.09.17
✎
13:52
|
(4) ИнициализацияМеханизмаПечати( - поищи глобальным поиском по общим модулям, определишься где она есть, проверь флажки на модуле и пиши как в (1)
|
|||
6
Вафель
04.09.17
✎
13:59
|
какие флажки у модуля?
|
|||
7
Fedor-1971
04.09.17
✎
14:03
|
(6) Клиент(упр.приложение), Сервер, Внешнее соединение, Клиент (обычное приложение), Вызов сервера и т.д.
|
|||
8
Elf56
04.09.17
✎
14:24
|
Проверил еще раз. Не где больше эта процедура не встречается как в общем модуле сХранилищеДополнительнойИнформации, а его флажки (свойства) я выше описал. Причем на обычных формах все работает, а на управляемых нет
|
|||
9
Fedor-1971
04.09.17
✎
14:37
|
(8) возможно, конфликт Глобальный (и так доступен наКлиенте и наСервере) и Сервер (живёт только наСервере), для ОФ срабатывает Глобальный и всё работает, для УФ в первую очередь предполагается контекст НаКлиенте.
Если очень нужно оставить флажки на месте оберни код инструкциями препроцессора #Если наСервере #КонецЕсли |
|||
10
Elf56
04.09.17
✎
14:44
|
ААА все нашел косяк в самом общем модуле стоит выше на 10 процедур условие
#Если Клиент Тогда так, как очень высоко сразу не заметил, но ведать не зря там это условие поставили, как теперь сделать так, чтобы все правильно работало если я скажем уберу это условие только с одной процедуры к чему это приведет не известно |
|||
11
Elf56
04.09.17
✎
14:47
|
Вынес процедур общего модуля за #Если Клиент Тогда
ошибки посыпались сервера в этой процедуре ИнициализацияМеханизмаПечати ой ну и гемор с этими УФ |
|||
12
Fedor-1971
04.09.17
✎
14:50
|
(10) так попробуй и узнаешь. Проверь поиском где вызываются процедуры из инструкций препроцессора
(11) вызывай свою процедуру в ПриОткрытии и не трогай препроцессор. (лишний раз ломанёшься наСервер и всё, за то код общих модулей останется стандартным) |
|||
13
Elf56
04.09.17
✎
15:05
|
(12) да дело то в чем свойство "Клиент (управляемое приложение)" в общем модуле не стоит, а вызов получится из управляемого клиента, если поставить это свойство в модуле ошибки посыпятся во всем модуле. Вот и запара получается не знаю что делать
|
|||
14
Вафель
04.09.17
✎
15:06
|
а почему не пользуешься типовыми механизмами БСП?
|
|||
15
Elf56
04.09.17
✎
15:08
|
(14) например это какие ?
|
|||
16
Fedor-1971
04.09.17
✎
15:19
|
(13) я не про флажок модуля, а про препроцессор, возвращай назад свою процедуру в обёртку НаКлиенте и вызов её перенеси из ПриСозданииНаСервере в ПриОткрытии
|
|||
17
Elf56
04.09.17
✎
15:24
|
(16) так я же написал что я так и сделал
вот такая ошибка вылезает {Документ.СторнированиеОплаты.Форма.ФормаДокументаУФ.Форма(265,2)}: Процедура или функция с указанным именем не определена (ИнициализацияМеханизмаПечати) <<?>>ИнициализацияМеханизмаПечати( (Проверка: Тонкий клиент) |
|||
18
Elf56
04.09.17
✎
15:28
|
это все из за того, что нет в этом общем модуле установленного свойства "Клиент (управляемое приложение)"
|
|||
19
Fedor-1971
04.09.17
✎
15:32
|
(18) возможно что и так, посмотри на ИТС как 1С рекомендует расставлять флажки. Тут остаётся рулить обёрткой процедур препроцессором если нужен смешанный режим работы
|
|||
20
Вафель
04.09.17
✎
16:31
|
смешанные модули: клиент-сервер очень не рекомендуются, только для реальных случаев, когда контекст совсем не важен
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |