Имя: Пароль:
1C
1С v8
Общий модуль (расширение)
,
0 anikev
 
17.09.19
08:14
Здравствуйте! Подскажите пожалуйста, почему при попытке добавить процедуру из общего модуля (в расширении)появляется ошибка
Документ.СчетНаОплатуПокупателю.Форма.ФормаДокумента.Форма(16,2)}: Переменная не определена (db_ПроцедурыИФункции)
Вот код ОбщиеМодули.db_ПроцедурыИФункции:

Функция db_Сообщить() Экспорт
    Сообщить("Вызов из модуля расширения");
    КонецФункции

Код Формы.ФормаДокумента:


&НаКлиенте
Процедура db_ПослеЗаписиПосле(ПараметрыЗаписи)
    
    db_ПроцедурыИФункции.db_Сообщить();

    
КонецПроцедуры
1 Василий Алибабаевич
 
17.09.19
08:16
(0) Скорее всего вот этому вот : db_ПроцедурыИФункции не разрешено жить на клиенте и обращаться к нему с клиента тоже запрещено.
2 anikev
 
17.09.19
08:21
Спасибо! я могу тогда ее вызвать с &НаСервереБезКонтекста?
3 alexpr111
 
17.09.19
08:22
Какие свойства у модуля?
4 anikev
 
17.09.19
08:22
или как все-таки правильно?
5 alexpr111
 
17.09.19
08:22
(2) Без контекста имеет смысл вызывать только в пределах формы.
6 anikev
 
17.09.19
08:23
Стоит галка "Клиент (упр)"
7 alexpr111
 
17.09.19
08:24
(6) Что это еще за галка? Пришлите скриншот!
8 Mankubus
 
17.09.19
08:25
(4) погуглил тут за тебя
https://programmist1s.ru/obshhie-moduli-1s/
9 anikev
 
17.09.19
08:27
(8) польщен. У меня вопрос по расширениям
10 anikev
 
17.09.19
08:28
11 Василий Алибабаевич
 
17.09.19
08:33
(10) Никаких &НаКлиенте в модуле не нужно. Для начала убери все &НаКлиенте и сними в свойствах модуля фишку "Сервер".
Все рулится директивами #Если Клиент и #Если Сервер. Но то - потом. У табя нет ни одной серверной процедуры. Сделай модуль чисто клиентским и проверь.
12 ppa32
 
17.09.19
08:38
Добрый день, уважаемый
У тебя процедура "db_Сообщить", на которую он ругается, где и как реализована?
13 alexpr111
 
17.09.19
08:44
(10) Если функция общего модуля выполняется на клиенте, то свойства модуля должны быть "клиент".
Если же функция серверная, поставь галку "Вызов сервера".
14 anikev
 
17.09.19
08:45
(12) она реализована в созданном общем модуле в расширении
15 alexpr111
 
17.09.19
08:46
Да, и директивы конечно убери из модуля. И вообще потратить пару часов про 1Сные клиент серверные директивы, а то так еще долго будешь мучиться...
16 anikev
 
17.09.19
08:48
17 anikev
 
17.09.19
08:50
Я про дерективы в общих чертах понимаю, что касается просто клиента. А тут с расширениями затык
18 Василий Алибабаевич
 
17.09.19
08:50
(16) Нет ни одного экспортируемого метода. Добавь где нужно слово Экспорт.
19 anikev
 
17.09.19
08:50
(18) в общем модуле я поставил Экспорт
20 Василий Алибабаевич
 
17.09.19
08:50
+ (18) Сторно. Не увидел, что на переднем плане форма документа.
21 Василий Алибабаевич
 
17.09.19
08:52
(19) Ну и?
Если модуль клиентский - все должно работать.
22 ppa32
 
17.09.19
08:53
23 Василий Алибабаевич
 
17.09.19
08:55
(22) Птля... Опять прилепил &НаКлиенте. Оно так не работает.
24 ppa32
 
17.09.19
08:58
(23) работает
25 ppa32
 
17.09.19
08:59
(14) А можно скриншот?
26 Василий Алибабаевич
 
17.09.19
09:00
(24) Тебе повезло потому что Сообщить может жить и на клиенте и на сервере. Попробуй таким способом выполнить код, доступный только на клиенте. Например "ПоказатьПредупреждение".
27 anikev
 
17.09.19
09:03
28 Василий Алибабаевич
 
17.09.19
09:08
(27) Так заработало или нет?
29 ppa32
 
17.09.19
09:11
30 Василий Алибабаевич
 
17.09.19
09:16
(29) Так не бывает. Или - я чего не понимаю...
31 ppa32
 
17.09.19
09:21
(27) Пришли, пожалуйста, скриншот свойств самого расширения.
А директиву &НаКлиенте укажи для своей процедуры дбСообщить()
32 anikev
 
17.09.19
09:30
(31) https://pastenow.ru/9f77492f32aeaf5e225f03ae30a2d1a4 вот свойств самого расширения
33 ppa32
 
17.09.19
09:34
(32) Назначение расширения попробуй поставить "Адаптация"
34 DrZombi
 
гуру
17.09.19
09:40
(2) Да.
Но есть еще способ обмануть 1С...

через:

//это для сервера
МодульДФ = ОбщегоНазначения.ОбщийМодуль("РАСШ_ТвойОбщийМодульСерверный");

//Это для клиента
МодульДФ = ОбщегоНазначенияКлиент.ОбщийМодуль("РАСШ_ТвойОбщийМодульСерверный");
35 anikev
 
17.09.19
09:53
(33) Получилось, спасибо!)
36 anikev
 
17.09.19
09:54
(33) подскажи пожалуйста,где можно почитать в чем различия этих назначений
37 ppa32
 
17.09.19
09:57
(36) Я не помню. В своё время сам натр@х@лся как бобик, потому и знаю про эту подляну)))