1с как вызвать функцию из общего модуля
Необходимо вызвать функцию Общего модуля 1с внутри тела запроса.
Нельзя использовать «Установить параметр».
Не спрашивайте почему, дольше объяснять.
Меня не интересуют альтернативные пути решения.
Я представляю, что можно сделать примерно такой запрос:
ВЫБРАТЬ
Пользователи.Ссылка,
Пользователи.Представление
ИЗ
Справочник.Пользователи КАК Пользователи
ГДЕ
Пользователи.Наименование = ОбщийМодуль.Тест()
функция Тест возвращает строчку, которая подставляется в запрос.
Но это не работает. Вот и хочу знать, можно ли как-то в теле запроса прописать вызов функции, чтобы результат сразу подставлялся?
(0) нет
не стыдись, расскажи почему ПараметрЗапроса не хочешь
(0) как вариант: можешь общей функцией создать ТабЗначений, ее в Запрос и соединить с данными запроса
(0) С емерошника издалека видно.
)))))) потому что это я делаю через com соединение из сторонней программы. Но оттуда у меня не работает прямой вызов метода. Но запрос работает отлично. Поэтому я и подумал, можно ли через запрос вызвать функцию 🙁
Нет, я с 8-ки начал разрабатывать. Просто задача заковыристая. Точнее ищу обходные пути.
(5) вот так понятнее. Дальше в той ветке по теме.
В СКД у полей можно использовать код общеих модулей (просто к слову)
(0)А так?
Запрос.Текст=».
| Пользователи.Наименование ПОДОБНО «»»+ ОбщийМодуль.Тест()+»»»»
Только в СКД.
А так — или параметр или динамическая сборка запроса.
(10) Если общий модуль для внешнего подключения закрыт, при использовании СКД он для последнего откроется? Через СКД тоже не заработает ИМХО.
Или почему еще может не работать прямой вызов метода?
Вызвать процедуру из общего модуля
Вызвать процедуру или функцию из общего модуля в 1С 8 можно используя имя модуля и название процедуры или функции.
Пример. В конфигурации Бухгалтерия 2.0 есть модуль Общего назначения, в нем расположена функция ЭтоДемонстрационнаяБаза(), вызовем ее в модуле внешней обработки.
Если ОбщегоНазначения.ЭтоДемонстрационнаяБаза() = Истина Тогда Сообщить("Использовать данную обработку в демонстрационной базе невозможно!"); Возврат; КонецЕсли;
Заметим, что вызвать процедуру / функцию общего модуля из другого модуля можно только если она экспортная(после ее имени стоит слово Экспорт).
Функция ЭтоДемонстрационнаяБаза() Экспорт //Текст функции КонецФункции
Как вызвать процедуру или функцию из модуля объекта на управляемой форме
В конфигурации существует документ РеализацияТовара с табличной частью, одним из реквизитов которой является СуммаНДС. При изменении ставки НДС в документе сумма НДС должна пересчитываться. Процедура пересчета НДС находится в модуле объекта нашего документа.
Содержание самой процедуры пересчета рассматривать в рамках данной статьи не будем.
Итак, чтобы вызвать процедуру из модуля объекта на управляемой форме нужно выполнить следующие действия:
-
Сделать вызываемую процедуру экспортируемой (то есть доступной не только из самого модуля объекта, но и из других модулей)
Вызов процедуры из общего модуля
При наборе кода все подсвечивается, и вроде все правильно написала но вылазит ошибка:
: Переменная не определена (РаботаСДокументами)
>РаботаСДокументами.РасчитатьСумму(СТЧ); (Проверка: Тонкий клиент)
Не знаю в чем проблема. Помогите пожалуйста.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
1С 8.3. Вызов функции из общего модуля на тонком клиенте
Помогите пожалуйста разобраться новичку. Пытаюсь создать и вызвать функцию в общих модулях. В.
Управляемые формы. Вызов процедуры общего модуля.
Код ( (Unknown Language)): &НаСервереБезКонтекста Процедура ВычислитьСебестоимостьНаСервере().
Получение реквезита ТЧ из общего модуля
Доброго времени суток. Есть документ ПриходДенег. В нём ТЧ — Товары. В ТЧ есть ИтогСумма.
Не видит функцию общего модуля
Всем доброго времени суток! Возникла проблемка — из модуля формы одного из справочников ни в какую.
![]()
3054 / 2001 / 524
Регистрация: 25.06.2009
Сообщений: 6,964

Сообщение было отмечено Yuki58 как решение
