Вопрос к спецам 1С о директивах

1. user2062270 09.03.24 00:31 Сейчас в теме
Ситуация такая: нужно было получать данные из стороннего MySQL сервера и выводить результаты на печать, вместе с данными из базы 1С. Т.к. эти данные MySQL на сервере не нужны, была написана функция их получения с директивой НаКлиенте, и все работало замечательно. Но, макет (по правилам) формируется на сервере. А из серверной процедуры вызвать клиентскую нельзя. После танцев с бубном, я просто изменил директиву с "НаКлиенте" на "НаСервере", и о, чудо всё сработало. Вот только один нюанс: на компьютере-кленте установлен драйвер для работы с MySQL, а на сервере - НЕТ. Получается, что серверная процедура выполняется на клиенте? Может кто-нибудь прояснить как это получается? И это всё происходит в тонком клиенте.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. SlavaKron 09.03.24 09:46 Сейчас в теме
(1)
Получается, что серверная процедура выполняется на клиенте?
Если база файловая, то серверный код выполняется на машине клиента.
А как определили, что на сервере НЕТ драйвера?
4. user2062270 09.03.24 19:32 Сейчас в теме
(3) 1- База на сервере 1С (postgresql), клиентская часть - тонкий клиент. 2- В администрировании ODBC источники.
6. user1880116 09.03.24 21:45 Сейчас в теме
(4)
В администрировании ODBC
Какой разрядности?
7. gybson 10.03.24 16:11 Сейчас в теме
(1) В реальном мире все чудеса сводятся к тому, что не туда смотрим. На этом эффекте основаны как представления иллюзионистов, так и чудеса с обработками.
8. Vlan 36 11.03.24 11:58 Сейчас в теме
(1) А если директиву сделать НаСервереБезКонтекста? Заработает?
9. user2033930 11.03.24 12:41 Сейчас в теме
(8) Нет. БезКонтекста - это просто без передачи данных формы на сервер.
10. Vlan 36 11.03.24 14:47 Сейчас в теме
(9) Мне кажется, мы ответили на вопрос. Все дело в передаваемом контексте.
2. vadim1011985 100 09.03.24 02:06 Сейчас в теме
Вы по ходу дела все делаете в модуле формы , а это некорректно поэтому
1) получаете данные для обработки на клиенте
2) передаете эти данные на сервер и с сервера вызываете модуль объекта должно быть что-то вроде такого
ЭтаОбработка = РеквизитФормыВЗначение(«Объект»)
3) В модуле объекта должна быть экспортная процедура/ функция , СформироватьОтчет(ДанныеДляОтчета) которая получает нужный макет и формирует отчет
4) Вызываете эту функцию и передаете в нее данные для формирования. ТабДок=ЭтаОбработка.СформироватьОтчет(…) , после ее выполнения Вы получите готовый табличный документ .
5. user2062270 09.03.24 19:36 Сейчас в теме
Не заморачивайтесь с модулями, вопрос в том, что процедура выполняется НаСервере, но на сервере нет драйвера MySQL.
11. starik-2005 3043 11.03.24 16:13 Сейчас в теме
Умные существа из 1С придумали внешние источники данных. Пользуйтесь.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот