#0
by vpaoli
Помогите кто может разобраться с этими директивами. Достаточно странно выглядит сам подход по разделению вычислений. Исходно у нас есть какая то вычислительная задача и директивы должны быть такими: # На сервере ... КонецНаСервере - т.е данная часть кода должна выполняться на сервере; # На клиенте ... КонецНаКлиенте - т.е данная часть кода должна выполняться на клиенте; В 1С:8.0 все "вверх-тармашкой" #Если Клиент .... - а зачем мне гадать клиент это или сервер ??? Задача ведь в другом!! Какие то вычисления мы должны сделать на сервете, а какие-то на клиенте... Может я чего то не допонимаю?
#5
by vpaoli
пока не видно ни одного конструктивного ответа ...неужели кроме Вождей и Сильных Мальчиков здесь никого нет..??
#6
by IronDemon
#На клиенте ... КонецНаКлиенте - т.е данная часть кода должна выполняться на клиенте -- Нет, она МОЖЕТ выполняться на клиенте
#7
by Vozhd
На Ваш вопрос Вам ответили. Если вы хотите ответ на какой-то другой вопрос, то задайте его, а не конючте, как дите трехлетнее...
#11
by Diman000
Во время обучения в универе был у меня спецкурс с громким названием "Параллельное программирование". Мы писали простенькую программку на С++ под несколько процессоров. Фишка была в том, что код был единым и подавался на выполнение сразу всем процессорам. А в функцию main в качестве параметра передавался номер процессора (ну может не передавался именно как параметр, не помню точно, но его можно было получить). Так вот, исходя из этого номера, нужно было распараллелить выполнение, типа, если это процессор №1, то выполнять такой-то участок кода, если №2, то другой, и так далее. Было довольно забавно. Так вот, здесь почти тоже самое. Так что говорить о том, что "Достаточно странно выглядит сам подход по разделению вычислений" нельзя.
#13
by vpaoli
по рекомендации Соника посмотрел док-ю по 1С8. Там написано: Для выполнения на сервере: #Если Сервер Тогда … #КонецЕсли Сразу отлегло !! Получается , 1С - вцы просто не в ладах с русским языком...!! Или я снова не прав? Диману000 особое спасибо, подумаю над его примером, но сразу хочется сказать, что параллельные вычисления на разных процессорах одного вычислительного алгоритма и разделение вычислений в 1С (оно может быть и последовательным) не одно и тоже.
#15
by Vozhd
В 1С нет разделения вычислений. Перечитайте найденный раздел документации еще раз. Только теперь перечитайте его весь, а не только один абзац...
#18
by vpaoli
Как говрят в одной рекламе - почувствуйте разницу. Мой знакомый стоматолог работает двумя инструментами - щипцами для вытаскивания зубов и бор-машиной. Вот я и представляю как он Вам будет лечить зубы. Хватает щипцы и #Если это шипцы то дергает Вам зуб .... а может быть Вам нужно было пломбу поставить?
#19
by vpaoli
Вождь. Разве в 1С нет разделения вычислений. Тогда выбросьте сервер приложений раз он ничего не вычисляет и работайте только на клиенте :)
#20
by Зарбазан
не вижу абсолютно никакой разницы с #Щипцами ... КонецЩипцами кроме того, что в вашем случае, еще и директив понадобится уймова туча, а не одна #Если
#21
by Vozhd
В 1С нет разделения вычислений. И об этом написано в документации. Но Вы читать еще не научились, поэтому к написанию своих программ приступать еще рановато...
#22
by vpaoli
разница состоит в том, что наши предпринимаемые действия должны зависеть не от того, что у нас сейчас в руках - щипцы или бор, а от другого.
#23
by перцептрон
что не понятно? просто можно выполнять код на сервере, и не тягать промежуточные данные каждому клиенту.
#24
by Лефмихалыч
видишь ли, бывают ситуации, когда одну и ту же фукнцию нужно выполнять и на сервере, и на клиенте (к примеру, если у общего модуля включены обе галочки). При этом, существуют конструкции, котрые, к примеру, успешно работают на клиенте, но не работают на сервере. Директивы препроцессора чаще всего используются, чтобы исключить выполнение недопустимых конструкций
#26
by Diman000
Насчет передачи выполнения на сервер все не совсем так. Вернее совсем не так. Если вызов процедуры происходит с клиента, то конструкция "#Если Сервер" не поможет. Для передачи процедуры серверу приложений тебе придется вызвать общий модуль с флажком Сервер и без флажка Клиент.
#29
by Vozhd
Требование отсутствия флажка "Клиент" лишнее. Перечитайте документацию. Кроме того, фраза "Для передачи процедуры серверу" в контексте 1С:Предприятия вообще звучит дико...
#30
by перцептрон
притом что в 1с нет компилятора что бы обработать #Если Сервер в код для сервера и для клиента отдельно, и если работает во время исполнения.
#31
by vpaoli
Отдельно Левычу. Да, бывают ситуации когда утюг можно перевезти и на Оке и на Камазе, а холодильник нет! Но, допустим у нас холодильник. При этом мы осознаем, что нам нужен Камаз. А по вашему получается так - если у нас Камаз, то везем холодильник, а если Ока , то утюг. Не нужен мне сейчас утюг !!!
#40
by vpaoli
Так вот Перцептрон... конструкция должна быть такой : иначе Сообщить("Отдыхаем") КонецЕсли И никакого Если Камаз ... и т.п.
#41
by Vozhd
Выполнение роцедуры происходит в определенном контексте. Платформа 1С:Предприятия не умеет передавать контекст от клиента к серверу и наоборот. Поэтому "передать выполнение процедуры с клиента на сервер" невозможно в принципе. Поэтому я действительно умник, раз не пытаюсь сделать то, что в принципе не возможно...
#44
by vpaoli
Диман000 , я еще не пробовал.. вот хотел , чтобы ты мне помог советом. А что сложно, что ли? Пишешь ф-цию в общем модуле, ставиш там галочку "сервер" и вызываешь ее из кода Формы документа. Или ты хочешь сказать , что в форме док-та нужно вызов этой функции делать внутри #Если Клиент ... ???
#45
by Лефмихалыч
Ты бы взял бы да и удивил всех, прочитав ЖКК. "Если для некоторых процедур и функций требуется указать <B>возможность использования</B> на клиенте или на сервере" цитата не прямая. Конфигурирование и администрирование, стр. 108, абзац последний
#47
by Diman000
Понятно, ты просто к формулировке прицепился... Естественно, я имел ввиду вызов процедуры для выполнения на сервере
#51
by Diman000
Все пройдет нормально, если будет только флажок Сервер без наличия флажка Клиент. Если будет Клиент (несмотря на наличие Сервер), то произойдет вызов клиентского экземпляра процедуры из формы документа
#53
by Diman000
Переформулирую вопрос. Приходилось ли Вам вызывать с клиента процедуру, которая должна быть выполнена на сервере?
#55
by Diman000
Конечно, возможно. Только в ОМ флажка Клиент не должно быть, а только Сервер. Тем не менее, Вождь в написал, что это условие лишнее.
#56
by vpaoli
Диман000 и др., да я к формулировке прицепился. Вы согласитесь, что для того, чтобы выполнить кусок кода на сервере нет необходимости делать какие то проверки на условие #Если Сервер ... , а нужно просто написать #ХочуНаСервере
#57
by Vozhd
Да. Пару раз случалось такое делать... И у общего модуля, где была определена эта процедура стояли флажки Исполнять на сервере и Исполнять на клиенте...
#58
by Vozhd
От имени некоторых "др." заявляю, что формулировка "#Если Сервер ..." лучше соответствует работе платформы 1С:Предприятие...
#59
by Diman000
Я соглашусь в том, что эти проверки нужны не для этого И откуда она вызывалась? Неужели с клиента?
#60
by vpaoli
Вождь! Докажи, что ты Вождь. Аргументируй чем это она лучше соответствует? Только потому, что в ЖКК стоит? Тогда ты не Вождь , а Букварь.
#62
by Diman000
Приношу извинения, был неправ. Действительно, указание директивы препроцессора "#Если Сервер" решает вопрос и отсутствие флажка Клиент в ОМ не обязательно.
#63
by Vozhd
Извинения приняты. Но все же, иногда перечитывайте документацию - там очень много всего описано...
#64
by Лефмихалыч
как бы тебе объяснить, чтоб ты понял?... директива препроцессора не говорит, куда отправлять на выполнение, она говорит, что данный кусок кода можно выполнять, только если условие истинно
#65
by vpaoli
Левычу. Сложные вещи легче понимать на простых примерах. Допустим нам нужно сложить числа от 1 до 10. Первую сумму а=1+2+3+4 я хочу выполнить на клиенте, а остальное б= а+ 5+6+7+8+9+10 - на сервере. Каков же твой алгоритм с условием #Если и зачем это условие здесь необходимо?
#66
by Vozhd
Для того, чтобы использовать инструмент по назначению, желательно ознакомится с его инструкцией...
#67
by Лефмихалыч
я ведь щас гадости говорить буду!... Слушай, vpaoli, во первых, иди в #опу, в ао-аторых, где ты видел, чтобы кто-нибудь из нас или чтобы где-нибудь в литературе по 8.0 было написано, что директивы препроцессора говорят платформе, КУДА ОТПРАВЛЯТЬ на исполнение код? Еще раз, директивы говорят, где ДОПУСТИМО выполнение, а где - нет. Нельзя в рантайм туда-сюда с сервера на клиента один и тот же код кидать: "щас хочу выполнить на сервере, а через минуту захочу на клиенте", тебе это приснилось.
#70
by vpaoli
Ну наконец то получил один дельный ответ. Спасибо Левычу, хоть он и нервничает. Выходит так. При запуске 1С препроцеесор на компьютере генерит исполняемый код на основе этих условий, т.е. в зависимости от того, где эта 1С запущена, на сервере или на клиенте. Никакого отношения эти директивы к исполнению самого кода не имеют.
#72
by Vozhd
Именно это и написано в документации. Только немного более развернуто и чуть другими словами...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Сервер 2003 и компы в сети, Раб. станции видят, но не могут зайти на сервер
- Определение сервера под сервер приложений и сервер SQL
- Ключ защиты установлен на сервере 1, а сервер 1С 8.1 на сервере 2
- Можно на один сервер ставить терминал, сервер предприятия и sql сервер
- переносим сервер 1с на другой сервер, можноли оставить ключи на старом сервере?
- Как оптимальнее расселить сервер терминалов, сервер СУБД и сервер 1С на 2 сервера
- Ошибка в операторе препроцессора или #Если Клиент Тогда . Что-то не понимаю...
- Инструкция препроцессора
- 1С8.2: Оптимальное размещение SQL сервера, сервера 1С, терминального сервера
В этой группе 1С
- Как хранить аналоги наименований номенклатуры?
- Пример по тригонометрии. Помогите решить
- Как можно програмно изменить высоту строки в Макете Документа?
- перестало работать RLS
- Банковский кредит в УТ 10.3
- Перенос данных из ЗиК 7.7 в ЗуП 8.0
- Доп.расходы, влияющие на себестоимость
- Вывести значение аналитики счета в табличную часть.
- Многострочная часть журнала документов
- ТЗ=ТЗРежимов.НайтиСтроки(СтруктураОтбора) занимает 60% времени (это ОЧЕНЬ м
- RLS и регистр бухгалтерии
- вопрос по бух итогам, все проводки по всем счетам (1с 77 бух)
- Выди оплат в фискальном регистраторе
- Как добавить строку в ТабличноеПоле?
- v8: Начали слетать настройки пользователей и настройки отчётов
- v7: Как в камине провести досрочный выход из отпуска?
- народ помогите с ндс в чеке ККМ (УТ 10.3)
- Корректирующая заявка
- Нужна форма договора на доработку конфигурации 1С
- Как убрать замки с объектов конфигурации?