Решил написать вопрос и результат анализа по теме место выполнения процедур и функций , директив 1с.
Имеем: 1С УПП 1.3.49
Документ: ТабельРабочегоВремени.
В обработке проведения ОбработкаПроведения() есть запуск процедуры ПроведениеПоРегиструРасчета(ВыборкаПоШапкеДокумента)
Эта же процедура заполняет данные вот тут
ВыборкаПериодыПропусков = СформироватьЗапросДляРегистраРасчета(ВыборкаПоШапкеДокумента).Выбрать();
Я хотел попробовать эту процедуру СформироватьЗапросДляРегистраРасчета() перевести для выполнения на сервер.
Там запрос к данным БД.
Но ,вот что в итоге получаю:
Создаю ОбщийМодуль MyUnit, устанавливаю у него свойства Сервер, Вызов Сервера. Переношу туда процедуру с запросом+ необходимые переменные передаю ей.
Пытаюсь вызвать эту процедуру: Ошибка, процедура не найдена. Причина: Если модуль чисто серверный, то он не будет скомпилирован на клиенте, и тогда мы не можем его вызывать.
Ставлю свойство клиентского приложения у модуля. В итоге получается , что мы опять же на клиентском уровне работаем.
Используя #Если СерверТогда .. #КонецЕсли
Пытаюсь перевести выполнение на сервер, но получаю ошибку того ,что текст всей процедуры или её части заключенный в эту конструкцию не виден при таком запуске.
В ходе чтения различной литературы ознакомился с этим материалами:
необходимо зарегистрироваться для просмотра ссылки
необходимо зарегистрироваться для просмотра ссылки
необходимо зарегистрироваться для просмотра ссылки
И получается вывод, что при проведении документа, который открывается на клиенте невозможно вызвать процедуру скомпилированную на сервере.
Хотелось бы услышать мнение других специалистов, вдруг найдется ошибка в моих умозаключениях.
Приятного дня всем.
! | Правила, п.5 |