Имя: Пароль:
1C
1С v8
Запуск процедуры модуля документа из общего модуля на сервере.
0 ЕлыПалыч
 
22.11.19
17:45
1С 8.1. Как запустить процедуру, находящуюся в модуле документа (Экспорт указан) из общего модуля, который выполняется только на сервере? Оттуда процедура даже не видна.
1 pechkin
 
22.11.19
17:46
ДокументОбъект.ИмяПроцедуры()
2 Джинн
 
22.11.19
17:46
Вероятно получить объект сначала нужно
3 ЕлыПалыч
 
22.11.19
17:49
Так и написано
ДокЗаказ.ЗаполнитьТабличныеЧастиПередПроведениемУпр(Ложь)
где ДокЗаказ именно объект. Если запускать из обработки, работает, а из регламентного задания на сервере не работает.
4 Джинн
 
22.11.19
17:53
ДокЗаказ - это ссылка или объект?
5 unregistered
 
22.11.19
17:53
(3) Не может быть.
Смотрите что у вас в ДокЗаказ. Видимо там нифига не объект.
6 ЕлыПалыч
 
22.11.19
17:55
ДокЗаказ = Документы.ЗаказПокупателя.СоздатьДокумент()
7 unregistered
 
22.11.19
17:55
+ к (5). Или процедура запускается, но ничего не делает. Или делает, но вы не понимаете почему именно такой результат.
8 unregistered
 
22.11.19
17:55
(6) см (7).
9 unregistered
 
22.11.19
17:56
уверены, что процедура не запускается?
10 pechkin
 
22.11.19
17:56
может какие теги ## стоят в модуле?
11 unregistered
 
22.11.19
17:57
(10) а в 8.1 уже были теги? что-то я не помню... Или они всегда в 8.х были...
12 pechkin
 
22.11.19
17:58
(11) клиент сервер всегда был вроде
13 ЕлыПалыч
 
22.11.19
17:58
Вызывается из общего модуля регламентных заданий, модуль исполняется только на сервере. Повторюсь, из обычной обработки процедура видна.
14 pechkin
 
22.11.19
17:59
(13) а какая ошибкато?
15 RomanYS
 
22.11.19
18:00
(13) Может наоборот, в модуле есть что-то не закрытое тегами, что запрещено на сервере. Будет ошибка компиляции
16 ЕлыПалыч
 
22.11.19
18:04
(14) Процедура не обнаружена, что-то вроде этого.
17 Маленький Вопросик
 
22.11.19
18:09
надо из менеджера запускать
18 ЕлыПалыч
 
22.11.19
18:10
(14)  Метод объекта не обнаружен (ЗаполнитьТабличныеЧастиПередПроведениемУпр)
19 unregistered
 
22.11.19
18:10
(17) В 8.1 модулей у менеджеров ещё не было.
20 fisher
 
22.11.19
18:13
(18) Поищи в своем модуле объекта всякие подозрительные
#Если Клиент Тогда
21 Маленький Вопросик
 
22.11.19
18:13
работа через модуль

ЭлементСправочника=Справочники.Номенклатура.НайтиПоКоду("000000001");
Объект=ЭлементСправочника.ПолучитьОбъект();
Пер=Объект.НоваяФункция();

работа через менеджер

ЭлементСправочника=Справочники.Номенклатура.НоваяПроцедура();
22 unregistered
 
22.11.19
18:13
(18) Причины могут быть только две. Либо ДокЗаказ - это не объект, либо это объект, но не того вида документов, либо процедура скомпилирована только для клиента (где-то тегами описано #Если Клиент Тогда или #Если НЕ Сервер Тогда)
23 unregistered
 
22.11.19
18:14
(21) Аууууу!!!! Какие в *опу модули у менеджеров в 8.1? Их там ещё не было!
Про модуль объекта и так понятно.
24 fisher
 
22.11.19
18:16
Модули менеджеров объектов в 8.2 появились.
25 fisher
 
22.11.19
18:17
Когда разработчики типовых задолбались для вызова универсальной печати объекты-заглушки создавать :)
26 ЕлыПалыч
 
22.11.19
18:19
(22) Верно. #Если Клиент Тогда присутствует в модуле объекта. Если перетащить процедуру до этой строки это может чем-то плохим икнуться?
27 fisher
 
22.11.19
18:19
(26) Если она будет корректно работать на сервере, то нет.
28 ЕлыПалыч
 
22.11.19
18:20
Спасибо, попробую
29 fisher
 
22.11.19
18:25
А вот если на сервере она компилиться не будет, а ты ее так и оставишь - то можешь огрести проблем в неожиданных местах :)
Так что в продакшен закидывай только когда убедишься, что на сервере отрабатывает нормально.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший