Имя: Пароль:
1C
1С v8
1с не находит процедуру "&НаСервере"
, ,
0 R0m1n
 
03.10.15
13:06
Здравствуйте. Подскажите пожалуйста, почему у меня не работает такой код(тестовый из вот этой статьи - http://1c-programist.ru/stati/primer-raboty-s-fonovymi-zadaniyami-1s.html_):


&НаКлиенте
Процедура ВыполнитьЗадание(Команда)
    
    ВыполнитьФоновоеЗаданиеНаСервере();
    
КонецПроцедуры

&НаСервере
Процедура ВыполнитьФоновоеЗаданиеНаСервере()
    
    ПараметрыФоновогоЗадания = Новый Массив;
    ПараметрыФоновогоЗадания.Добавить("Какой-то параметр");
    ФоновыеЗадания.Выполнить("ОбработчикиФоновыхЗаданий.ПроизвестиФоновоеВычисление",
                ПараметрыФоновогоЗадания, Новый УникальныйИдентификатор,
                "Тестовое задание");

    ПараметрыФоновогоЗадания = Новый Массив;
    ПараметрыФоновогоЗадания.Добавить("Какой-то параметр");
    ФоновыеЗадания.Выполнить("ОбработчикиФоновыхЗаданий.ПроизвестиФоновоеВычисление",
                ПараметрыФоновогоЗадания, Новый УникальныйИдентификатор,
                "Тестовое задание 2");     
    
КонецПроцедуры // ВыполнитьФоновоеЗаданиеНаСервере()

Выдает ошибку, что нет процедуры "ВыполнитьФоновоеЗаданиеНаСервере". Вроде как, судя по тому что я читал, процедура должна быть в области видимости с клиента, если размещена в том же модуле, или как?
1 RomanYS
 
03.10.15
13:11
где этот код у тебя написан?
2 R0m1n
 
03.10.15
13:15
в модуле формы обработки пустой(создал для теста).
3 EvgeniuXP
 
03.10.15
13:47
потому что 1С потеряла сервер :), отвалился :)
4 EvgeniuXP
 
03.10.15
13:50
опять же рассказали как запускать - а как проектировать и делать правильно - ни слова :)
5 jsmith82
 
03.10.15
13:52
Кэш, наверно
6 jsmith82
 
03.10.15
13:52
Создай новую обработку, скопипасти код
7 R0m1n
 
03.10.15
14:09
(3) что то не очень понятно, куда он потерялся конфа же стартует, все норм
(6) не помогло
8 jsmith82
 
03.10.15
14:12
(7) Ёпте..
9 R0m1n
 
03.10.15
14:13
попробую сейчас в другой конфе еще
10 rphosts
 
03.10.15
14:15
(0) Замени "ВыполнитьФоновоеЗаданиеНаСервере()" на что-то другое набранное в одном месте и в другое место скопируй...
11 jsmith82
 
03.10.15
14:15
Может, непечатные символы какие-то..
12 R0m1n
 
03.10.15
17:24
В другой конфе и с другим названием функции тоже не пашет. Через "перейти к определению" находит функцию. Видимо на этапе компиляции что то не так становится.Или я хз с чем еще проблемы могут быть
13 lera01
 
03.10.15
17:32
Выдает ошибку, что нет процедуры "ВыполнитьФоновоеЗаданиеНаСервере". Это где происходит? Когда ты что делаешь?
14 Остап Сулейманович
 
03.10.15
17:37
(0) Где описано вот это вот все ВыполнитьЗадание и ВыполнитьФоновоеЗаданиеНаСервере? В каком модуле?
Возможно вопреки вашим ожиданиям модуль тупо не прописан для компиляции на сервере. И все, что указано как &НаСервере для системы просто не существует.
15 RomanYS
 
03.10.15
17:41
(14) смотри (2)
16 Индиго
 
03.10.15
17:42
А общем модуле с галкой "Клиент" вызваешь?
17 Индиго
 
03.10.15
17:42
18 Индиго
 
03.10.15
17:42
без галки "Сервер"?
19 GROOVY
 
03.10.15
17:58
Убери директиву компиляции &НаСервере, отпишись что получилось.
20 R0m1n
 
03.10.15
18:08
(19)без директивы я уже пробовал, ошибка уходила, но насколько я понимаю в таком случае как то неправильно будет фоновое задание отрабатывать, не?
(18) в общем модуле галка сервер стоит, как по инструкции, но ведь до туда даже не доходит
(13) при запуске обработки, даже кнопку не нажимаю, по которой событие должно обрабатываться
21 EvgeniuXP
 
03.10.15
18:25
(20) начни с чистого листа - и всё получится :)

тоже вот не получалось, не получалось с этим фоновым заданием, пришел домой, создал пустую конфу - и всё получилось. В старой даже и разбираться не хочу, где там ошибка.
22 lera01
 
03.10.15
18:37
(20) У тебя, видать, есть кнопка на форме какая-то, на которую эта процедура повешена? А она серверная, а ты на клиенте, вот ведь незадача.
23 R0m1n
 
03.10.15
18:37
Ну мне в итоге все равно на типовую нужно все это накатывать. Я просто хочу сделать рассылку ценников в фоне, при проведении "Установки цен номенклатуры"
24 R0m1n
 
03.10.15
18:40
(22) да, на кнопке висит обработчик. внутри обработчика я делаю вызов ВыполнитьЗадание(). еще пробовал непосредственно ВыполнитьЗадание() вешать в кач-ве обработчика, хотя особой разницы не вижу.
25 lera01
 
03.10.15
18:43
(24) Так я ж о том и талдычу! Ты открыл обработку на клиенте, программа проверила ее код и не нашла серверную процедуру, о чем тебе и сообщила.
26 R0m1n
 
03.10.15
18:52
(25) а где нужно открывать то? как я её должен открыть на сервере? насколько я понимаю, я просто указываю директуву, а 1с сама разбирается где-что открывать и исполнять. я по инструкции все делаю(ссылка в первом посте)
27 R0m1n
 
03.10.15
18:54
вот на инфостарте написано, цитирую:
Итак, со стороны клиента можно вызывать
2)      серверные процедуры данного модуля,  с директивой &НаСервере;

http://catalog.mista.ru/public/86838/
28 jsmith82
 
03.10.15
18:55
Всё не читал. Горемыка решения так и не нашёл? )
29 R0m1n
 
03.10.15
18:56
неа
30 R0m1n
 
03.10.15
19:16
короче, я так понял, что форма должна быть управляемой, чтобы все это работало. как-то видимо подзабыли об этом упомянуть в инструкции.
31 Мимохожий Однако
 
03.10.15
20:38
В модуль обработки писал что-нибудь?
32 EvgeniuXP
 
04.10.15
01:43
(30) ну об этом все знают :) как-то не предполагают, что этого еще кто-то до сих пор не знает :)
33 EvgeniuXP
 
04.10.15
01:48
(30) форма не обязательно должна быть управляемая :) Можешь из модуля обычного приложения вызывать фоновые задачи при начале работы системы.

плохо что в состояние не пишет сколько отработало это задание, приходится на форму или в сообщить кидать :(
34 EvgeniuXP
 
04.10.15
01:49
(+33) Состояние(ТекстСостоянияФоновогоЗадания) - не работает