#Если Сервер Тогда .... #153317


#0 by Kvantic
Цитата из ЖКК: Пробую писать задачку в файловом варианте, но допустим хочу чтобы она эффективно работала на сервере. Вынес в общий модуль пару процедур. Заключил их в скобки #Если Сервер Тогда ... #КонецЕсли Вызываю их из модулей прикладных объектов. Компилятор ругается, что не может найти соответствующих процедур. Убираю скобки - находит. Почему так происходит что не так?
#1 by Волшебник
Куски "#Если Сервер Тогда" не видны в режиме Клиент и в режиме ВнешнееСоединение, и наоборот.
#2 by Kvantic
О каких режимах идёт речь? Я ведь пока просто пытаюсь работать в файловом варианте, даже не в файл-серверном.
#3 by Kvantic
И в ЖКК написано, что эти куски у меня должны т.е. "слиться", т.е я так понимаю быть видны...
#4 by A 008
ЖКК гонит... не первый раз.
#5 by Vozhd
А нельзя ли увидеть дословный текст "ругани"?
#6 by Kvantic
Проверка клиентского приложения {Справочник.Оргтехника(13,10)}: Процедура или функция с указанным именем не определена (общСерийныйНомерУникален)    Возврат <<?>>общСерийныйНомерУникален(ЭтотОбъект.Ссылка);  // оптимизация, чтобы обработка выполнялась на сервере Проверка клиентского приложения {Справочник.Оргтехника(26,10)}: Процедура или функция с указанным именем не определена (общИнвентарныйНомерУникален)    Возврат <<?>>общИнвентарныйНомерУникален(ЭтотОбъект.Ссылка); // оптимизация, чтобы обработка выполнялась на сервере Проверка клиентского приложения {Справочник.Оргтехника(31,10)}: Процедура или функция с указанным именем не определена (общСформироватьТаблицуРазмещенияОргтехники)    Возврат <<?>>общСформироватьТаблицуРазмещенияОргтехники(ЭтотОбъект.Ссылка); Проверка клиентского приложения {Справочник.Оргтехника.Форма.ФормаСписка(17,8)}: Процедура или функция с указанным именем не определена (общСформироватьТаблицуРазмещенияОргтехники)    л_Таб=<<?>>общСформироватьТаблицуРазмещенияОргтехники(ДанныеСтроки.Ссылка); Проверка клиентского приложения {Документ.Перемещение.Форма.ФормаДокумента(49,27)}: Процедура или функция с указанным именем не определена (общСформироватьСписокОстатковОргтехникиНаСкладе)        м_СпДляФильтрацииВыбора=<<?>>общСформироватьСписокОстатковОргтехникиНаСкладе(Фирма,СкладИсточник,МоментВремени); Проверка клиентского приложения {Документ.Списание.Форма.ФормаДокумента(48,27)}: Процедура или функция с указанным именем не определена (общСформироватьСписокОстатковОргтехникиНаСкладе)        м_СпДляФильтрацииВыбора=<<?>>общСформироватьСписокОстатковОргтехникиНаСкладе(Фирма,СкладИсточник,МоментВремени);
#7 by Волшебник
Как расставлены флажки Клиент и Сервер в свойствах общего модуля?
#8 by Vozhd
Как расставлены флажки в настройке проверки?
#9 by Kvantic
Компиляция при всех четырёх возможных вариантах значков - результат один и тот же
#10 by Kvantic
Прошу прощения за оказывается файловый и файл-серверный вариант для восьмерки есть одно и то же.
#11 by Vozhd
Именно компиляция? Не проверка синтаксиса?
#12 by Kvantic
#13 by Kvantic
Проверка синтаксиса при всех четырёх вариантах установки флажков Клиент И Сервер для данного общего модуля - приводят к одним и тем же результатам. Проверяльшик синтаксиса или может всё таки компилятор? - ругается.
#14 by Vozhd
Дело в том, что проверка синтаксиса не знает в каком режиме будет компилироваться модуль. Поэтому она проверяет в максимально жестком режиме. Несмотря на сообщения об ошибках, в файл-серверном варианте конфигурация может успешно работать. И даже может работать в клиент-серверном, но не всегда.
#15 by Kvantic
А теперь я кажется догадываюсь, что в и речь идёт о разных флажках. Только о настройке проверки ещё ничего не встречал и слышу впервые. Сейчас поищу..
#16 by Kvantic
Нет запустил программу на выполнение, компилятор тоже ругается {Справочник.Оргтехника.Форма.ФормаСписка(17,8)}: Процедура или функция с указанным именем не определена (общСформироватьТаблицуРазмещенияОргтехники)    л_Таб=<<?>>общСформироватьТаблицуРазмещенияОргтехники(ДанныеСтроки.Ссылка); Наверное надо правильно установить флажки Клиент и Сервер в свойствах общего модуля? Только какими они должны быть, чтобы программа работала в файловом варианте, а в клиент-серверном выполняла эти процедуры на сервере?
#17 by Kvantic
Нет попробовал все четыре варианта флажков, компилятор тоже ругается, так же как и проверяльщик синтаксиса.
#18 by Vozhd
Когда идет обращение к процедуре с клиента, то процедура сначала ищется на клиенте. Если на клиенте ее не нашли, то ищут на сервере. Если и там ее нет, то выдается ошибка. Поэтому, модуль должен компилироваться и на клиенте, и на сервере.
#19 by Kvantic
Да я попробовал установил у этого общего модуля оба флажка Клиент и Сервер Сохранил F7 Запустил F5, но при попытке вызвать форму, которая использует эти процедуры в своём модуле - компилятор ругается.
#20 by Kvantic
О нашел что такое настройки проверки синтаксиса. Попробовал оставить в группе "Синатксический контроль модулей" поднятым только один флажок "Работа сервера 1СПредприятия" ... и все равно проверяльщик ругается: Проверка сервера 1С:Предприятия {Справочник.Оргтехника(13,10)}: Процедура или функция с указанным именем не определена (общСерийныйНомерУникален)    Возврат <<?>>общСерийныйНомерУникален(ЭтотОбъект.Ссылка);  // оптимизация, чтобы обработка выполнялась на сервере Проверка сервера 1С:Предприятия {Справочник.Оргтехника(26,10)}: Процедура или функция с указанным именем не определена (общИнвентарныйНомерУникален)    Возврат <<?>>общИнвентарныйНомерУникален(ЭтотОбъект.Ссылка); // оптимизация, чтобы обработка выполнялась на сервере Проверка сервера 1С:Предприятия {Справочник.Оргтехника(31,10)}: Процедура или функция с указанным именем не определена (общСформироватьТаблицуРазмещенияОргтехники) Странно я ведь флажок Сервер у модуля поставил и условие #Если Сервер установлено, а процедуры не видны?
#21 by Vozhd
Теперь надо смотреть уже код модуля. Есть подозрение, что проблемы совсем не в флажках и "#Если Сервер Тогда"...
#22 by Kvantic
Да допускаю но где именно может собака порыться. Итак начинаю эксперимент: Устанавливаю флажок Клиент в свойствах общего модуля (флажок Сервер - сброшен), синтакс контролёру модулей устанавливаю только один флаг - "Работа клиентского приложения". Результат - синтакс контролёр не ругается, программа работает... замечательно в файловом режиме. Теперь поднимаю в настройках проверки ещё один флаг ="Работа клиентского приложения в режиме клиент сервер" Скобки по прежнему закомментированы. Результат - синтакс контролёр замечений не делает. Дополнительно к флажку Клиент поднимаю флажок Сервер в свойствах общего модуля, в настройках синтакс контролера дополнительно к уже установленным ранее двум флажкам поднимаю ещё один "Проверка работы сервера 1С:Предприятия", то же всё замечательно. Синтакс контролер доволен программой снова. Теперь беру в скобки #Если Сервер Тогда #КонецЕсли одну из функция этого общего модуля Настройки общего модуля и синтакс контролера не меняю. Установлены прежние три флажка. Синтакс контролер недоволен, он нашёл четыре ошибки: Проверка клиентского приложения {Документ.Перемещение.Форма.ФормаДокумента(49,27)}: Процедура или функция с указанным именем не определена (общСформироватьСписокОстатковОргтехникиНаСкладе)        м_СпДляФильтрацииВыбора=<<?>>общСформироватьСписокОстатковОргтехникиНаСкладе(Фирма,СкладИсточник,МоментВремени); Проверка клиентского приложения в режиме клиент-сервер {Документ.Перемещение.Форма.ФормаДокумента(49,27)}: Процедура или функция с указанным именем не определена (общСформироватьСписокОстатковОргтехникиНаСкладе)        м_СпДляФильтрацииВыбора=<<?>>общСформироватьСписокОстатковОргтехникиНаСкладе(Фирма,СкладИсточник,МоментВремени); Проверка клиентского приложения {Документ.Списание.Форма.ФормаДокумента(48,27)}: Процедура или функция с указанным именем не определена (общСформироватьСписокОстатковОргтехникиНаСкладе)        м_СпДляФильтрацииВыбора=<<?>>общСформироватьСписокОстатковОргтехникиНаСкладе(Фирма,СкладИсточник,МоментВремени); Проверка клиентского приложения в режиме клиент-сервер {Документ.Списание.Форма.ФормаДокумента(48,27)}: Процедура или функция с указанным именем не определена (общСформироватьСписокОстатковОргтехникиНаСкладе) Но позвольте ведь ЖКК говорит, что в файловом режиме, а это я так понимаю синтакс контролер называет проверкой клиентского приложения скобки #Если Сервер #Тогда должны быть пропущены проверяльщиком??? Убираю у Синтакс Контролера флажок "Проверка клиентского приложения в режиме Клиент-Сервер", функция по прежнему в скобках Но контролер настаивает на двух ошибках: Проверка клиентского приложения {Документ.Перемещение.Форма.ФормаДокумента(49,27)}: Процедура или функция с указанным именем не определена (общСформироватьСписокОстатковОргтехникиНаСкладе)        м_СпДляФильтрацииВыбора=<<?>>общСформироватьСписокОстатковОргтехникиНаСкладе(Фирма,СкладИсточник,МоментВремени); Проверка клиентского приложения {Документ.Списание.Форма.ФормаДокумента(48,27)}: Процедура или функция с указанным именем не определена (общСформироватьСписокОстатковОргтехникиНаСкладе) Строка которая не нравится синтакс-контролеру находится в форме документа. Переменная которая должна принять значение - переменная уровня модуля. Функция возвращаяет список значений. В каком направлении двигаться дальше господа? Дайте направление плз.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С