Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Обойти модуль объекта...

Обойти модуль объекта...
Я
   Darhon
 
20.03.19 - 00:49
Здравствуйте. Проблема в следующем. Есть веб-сервис он по поступлении некоторого пакета данных вносит изменения в документ и проводит его. При проведении возникает ошибка:

Переменная не определена (РежимДиалогаВопрос)

Проблема в том, что модуль не содержит исходных кодов. И я даже не знаю что делать. Нужно как-то обойти этот функционал. Если подскажете спасибо.
 
 
   PR
 
1 - 20.03.19 - 01:24
Обратиться к разработчику с вопросом "Многоуважаемая компания имярек, какого куя..."
   PR
 
2 - 20.03.19 - 01:25
+(1) Закончить конечно же как-то так

Надеюсь на скорейшее решение моего вопроса, иначе вынужден буду обратиться напрямую к вендору с этим же вопросом
С уважением, бла бла бла
   Лодырь
 
3 - 20.03.19 - 05:29
(0) А запись документа в режиме обмена данными прокатывает?
   PR
 
4 - 20.03.19 - 11:08
(3) Причем здесь это?
У него ошибка компиляции модуля по ходу
   Лодырь
 
5 - 20.03.19 - 11:10
(4) А вы знаете в каком модуле происходит эта ошибка?
   PR
 
6 - 20.03.19 - 11:11
(5) Нет, просто я знаю 1С
   Лодырь
 
7 - 20.03.19 - 11:11
(6) А, ну да, ну да.
   PR
 
8 - 20.03.19 - 11:17
(7) Рукалицо

Судя по-всему в обычном режиме у него все работает, а ругается именно при работе веб-сервиса
Скорее всего у него толстый клиент
В режиме толстого клиента РежимДиалогаВопрос не ругается
А в режиме веб-сервиса ругается

Я с таким сталкивался, поэтому знаю

А ты сталкивался?

Если сталкивался, то что тут бурно сарказмируешь?
Если нет, то опять же, зачем лишний раз рот не по делу раскрывать?
   Мыш
 
9 - 20.03.19 - 11:17
Разработчики скрытого кода любят задавать вопросы серверу, а сервер не хочет отвечать:

РежимДиалогаВопрос
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент
   Ник080808
 
10 - 20.03.19 - 11:20
(8) (9) +100500. В модуле клиентская процедура, которую не видит вебсервер. Вариант не проводить веб сервисом, а записывать только изменения и пихать в регистр сведений из которого регламентным заданием выбирать документы и проводить. Костыль костыльный, но если нет доступа к модулю, то как вариант.
 
 Рекламное место пустует
   Вафель
 
11 - 20.03.19 - 11:24
(10) рег.задание, однако, тоже на сервере
   Ник080808
 
12 - 20.03.19 - 11:31
(11) ну ок: регзадание может запускать приложение 1с) от служебного пользователя который при старте проводит документы и закрывается)
   Лодырь
 
13 - 20.03.19 - 11:35
(8) Сколько эмоций.
Вынести в общий модуль что-нибудь в стиле:
[code]
Процедура ПроцедураСВопросом() ЭКспорт
    
    РежимДиалога = РежимДиалогаВопрос.ДаНет;
    Сообщить("PR неправ");    
    
КонецПроцедуры    
[/code]
И получите работу в толстом клиенте и не работу в тонком. В при этом вполне можно будет обойти ошибку через режим обмена данными.
Попробовать то можно. Смысл делать предположение, если можно его проверить и получить утверждение.
   Ник080808
 
14 - 20.03.19 - 11:38
(13) "В при этом вполне можно будет обойти ошибку через режим обмена данными." - ошибка выпадает при компиляции модуля объекта, так что "Загрузка = истина" не проканает. Он валится скорее всего при попытке получитьобъект()
   Лодырь
 
15 - 20.03.19 - 11:41
(14) И вам напишу. Мы не знаем в каком модуле ошибка. Да скорее всего в модуле объекта. Но вдруг?
   Garykom
 
16 - 20.03.19 - 11:46
(0) Сделайте чтобы веб-сервис создавал новые объекты в которых записано куда и какие изменения вносить.

Затем юзер (или робот) запускает обработку, перебирает объекты-задания от сервиса и правит документы как надо с проведением их.
   Garykom
 
17 - 20.03.19 - 11:48
(1) Ммм, неа. Не пойду я к вам устраиваться на удаленку.
   Ник080808
 
18 - 20.03.19 - 11:49
(15) справедливо, но тогда с автора (0) полный текст ошибки что оно выдает. Там должно быть указано в тексте ошибки модуль документа или общий модуль ругается.
   Garykom
 
19 - 20.03.19 - 11:50
(16)+ Хотя должен признать если там перед/при проведении документа вопрос задается и ожидается ответ то это уже пи..ц
   mistеr
 
20 - 20.03.19 - 11:55
(0) Проблема в том, что документ не поддерживает неинтерактивное проведение (задает вопросы при проведении). Разработчик модуля не позаботился об этом. Кроме того, это нарушение стандартов разработки.

Варианты решения.

1. Договориться с разработчиком о доработке.

2. Декомпилировать модуль и переписать как надо (нарушение лицензии? Не уверен на 100%).

3. Создать новый документ, который двигает нужные регистры, и пользоваться им для веб сервиса.

Я бы пробовал сначала 1, потом 3, потом 2.
   PR
 
21 - 20.03.19 - 12:02
(13) Да просто не понимаю, когда кто-то не в теме, но тоже очень хочет поспорить
Насчет вынесения в общий модуль ты просто еще раз подтвердил, что ты не в теме
Я же говорю, ошибка выдается в результате инициализации веб-сервисом модуля объекта
Если же ошибочный код будет в общем модуле, а не в модуле объекта, то как минимум на этапе инициализации объекта ошибки не будет
В дальнейшем, при вызове общего модуля, возможно будет ошибка, да. И что?
В случае ТС я просто не могу придумать пример, кроме толстого клиента и ошибки в модуле объекта, при которой все будет хорошо на клиенте и хреново в веб-сервисе
Придумаешь такой вариант, напиши
А пока звучит как предложение попинать шины и протереть стекла
Ну да, если по-другому не умеешь, то можно и так, согласен
   PR
 
22 - 20.03.19 - 12:05
(15) — Здравствуйте, у меня программа выдает ошибку деления на ноль при проведении документа, что мне делать?
— Попробуйте выключить и включить компьютер ну или обновить платформу на последнюю, еще можно попробовать почистить кеш
— А это поможет?
— Не знаю, но вдруг поможет
   PR
 
23 - 20.03.19 - 12:07
(17) К разработчикам, которые забивают болт на синтаксический контроль модулей, после чего еще и исключают модули из поставки, надо обращаться именно так
Понятно, что исключенный модуль вроде как можно восстановить, но какого хрена я должен заниматься этим онанизмом, не?
   Garykom
 
24 - 20.03.19 - 12:08
(22) Есть не 0 вероятность что в процессе/после этих действий юзер более на линию техподдержки не позвонит = задача выполнена.

Например комп/система упадет или юзер сам догадается в чем проблема и сам исправит.
   Garykom
 
25 - 20.03.19 - 12:10
(23) Иногда лучше решить очень сложную проблему клиента не посылая его "к разработчику".
   PR
 
26 - 20.03.19 - 12:14
(20) Еще раз, сто к одному, что проблема не в том, что документ не поддерживает неинтерактивное проведение (задает вопросы при проведении), а в том, что в модуле объекта синтаксическая ошибка при компиляции именно в режиме работы веб-сервиса, а в режиме толстого клиента этой ошибки нет
   PR
 
27 - 20.03.19 - 12:15
(25) Darhon клиент?
   Garykom
 
28 - 20.03.19 - 12:20
(27) Потенциальный
   Garykom
 
29 - 20.03.19 - 12:23
Стандартный пример когда фра не может или посылает а фри предлагает решение.
Иногда фра не зная как лупит ценник побольше на авось, а уже потом пытается спихнуть проблему на своих сотрудников.
   PR
 
30 - 20.03.19 - 12:27
(29) Что за бред ты тулишь?
   palsergeich
 
31 - 20.03.19 - 12:36
По текущей методологии в модуле объекта не должно быть инструментов интерактивной работы, даже там, где их поместить можно - как ВВашем случае с ОФ.
Начать надо с того, что бы интерактивный функционал вынести в интерактивные механизмы, а именно в форму.
   palsergeich
 
32 - 20.03.19 - 12:39
Конкретно в этом примере классический случай удержания транзакции до интерактивного действия пользователей, когда остальные могут страдать.
Не надо так
   PR
 
33 - 20.03.19 - 12:40
(32) Да это может быть где угодно в модуле, даже в ни разу нигде не вызываемой процедуре или функции
 
 
   Garykom
 
34 - 20.03.19 - 12:41
Интересный вопрос а расширения нормально перекрывают модули без исходных кодов?
   mistеr
 
35 - 20.03.19 - 12:41
(26) Это и называется "не поддерживает". Просто проявляется по-разному: в толстом - задает вопрос, в других - валится.
   Garykom
 
36 - 20.03.19 - 12:42
(34)+ Это к тому чтобы не трогать конфу закрытую, просто получить код что там в закрытом модуле и повторить его правильно.
   Garykom
 
37 - 20.03.19 - 12:43
(30) Вот поэтому и не пойду к вам.
   mistеr
 
38 - 20.03.19 - 12:50
(26) Разве модуль без исходного текста уже не скомпилирован во всех режимах?
   palsergeich
 
39 - 20.03.19 - 12:51
(34) нормально, я проверял
   Garykom
 
40 - 20.03.19 - 12:52
(39) ОК тогда проблема ТС решается, не так и сложно
   PR
 
41 - 20.03.19 - 13:38
(35) Может оказаться и так, что программное проведение вполне себе будет работать, а вот проведение в режиме веб-сервиса будет валиться с ошибкой
   PR
 
42 - 20.03.19 - 13:39
(37) Да тебе вроде пока джоб-офер и не высылали
   PR
 
43 - 20.03.19 - 13:40
(38) Не знаю
Но даже если и так, то что?
Ошибка-то есть
   PR
 
44 - 20.03.19 - 13:42
(40) И как именно?
Просто взять и заменить для любых ситуаций модуль объекта своим пустым?
   Garykom
 
45 - 20.03.19 - 13:43
(44) Ты не в курсе как получить байт код и затем его декомпилировать?
   PR
 
46 - 20.03.19 - 13:51
(45) О как
А нахрена тогда расширение?
Просто исправляешь говнокод и все
   Garykom
 
47 - 20.03.19 - 13:57
(46) Потому что придется весь модуль тогда исправлять (вместо одной процедуры/функции) и как бы вмешательство в систему защиты вместо типового механизма от 1С.
Даже с поддержки конфу не надо снимать.
   famnam
 
48 - 20.03.19 - 13:58
(46) не уверен, что расширение поможет. даже если использовать Вместо. Заместить можно только процедуру,а не весь модуль. Он все равно должен скомпилироваться прежде
   PR
 
49 - 20.03.19 - 14:00
(47) Смешно
Прочитай (33)
 
 Рекламное место пустует
   PR
 
50 - 20.03.19 - 14:00
(48) Эээ..., ты точно мне?
А то я-то как раз это понимаю, в отличие от Garykom
   famnam
 
51 - 20.03.19 - 14:02
(50) Извини, не все прочел :)
Тогда подытожил твои замечания
   Garykom
 
52 - 20.03.19 - 14:04
(49) Не знаю что ты хочешь этом сказать.

Я исходил из того что у ТС документ нормально проводится пользователем через интерфейс в клиенте.
   Garykom
 
53 - 20.03.19 - 14:06
(51) Поставка без исходных кодов = уже скомпилировано.
   Cyberhawk
 
54 - 20.03.19 - 14:06
Походу в модуле объекта "паршивый код" обернут инструкцией
#Если Клиент Тогда
...
#КонецЕсли
   Cyberhawk
 
55 - 20.03.19 - 14:07
Интересно, какого исходного текста нет у автора - веб-сервиса или модуля нужного документа
   famnam
 
56 - 20.03.19 - 14:08
(54) ну да, только НЕ обернут получается...
   Генератор
 
57 - 20.03.19 - 14:21
Думаю у автора обычное приложение, если такие конструкции в серверно-клиентских модулях работают. Скорее всего там режим совместимости и не даст использовать расширение.
   Garykom
 
58 - 20.03.19 - 14:25
(57) Ну тогда (16) если модуль без кодов не меняем.

Лично я думаю у ТС нечто вроде Альфа-Авто 4 или похожее, там с поддержкой уже никак и пошлют если обратиться насчет неработающего веб-сервиса в дописанной конфе.
   PR
 
59 - 20.03.19 - 14:30
(52) И чо и чо?
Еще раз, это нормально, когда в толстом клиенте все нормально работает, а вот в веб-сервисе будут синтаксические ошибки компиляции модуля, такое вполне себе может быть
Изучи матчасть что ли, а то я уже утомился безрезультатно повторять тебе одно и то же
   PR
 
60 - 20.03.19 - 14:31
(54) Нет, потому что в этом случае веб-сервис бы не ругался
Ты думаешь, когда что-то пишешь?
   Garykom
 
61 - 20.03.19 - 14:34
(59) Мы уже неоднократно выясняли насчет знания матчасти и теории в целом.

И да не словами говори ты продемонстрируй на конфе "в веб-сервисе будут синтаксические ошибки компиляции модуля"
   Garykom
 
62 - 20.03.19 - 14:35
(61) Веб-сервис = обычное ВнешнееСоединение
   PR
 
63 - 20.03.19 - 14:41
(61) Рукалицо
Добавь в модуль документа процедуру
Процедура НикомуНахренНеНужнаяИНигдеНеВызываемаяПроцедура()
    Режим = РежимДиалогаВопрос.ДаНет;
КонецПроцедуры

Этого будет достаточно, чтобы толстый клиент работал, а веб-сервис нет
   PR
 
64 - 20.03.19 - 14:41
(62) LOL
Это не так
Ладно, заканчиваю разговор, ты я смотрю, с темой не сталкивался, но очень хочешь что-нибудь сказать
   Garykom
 
65 - 20.03.19 - 14:56
(63) (64) А теперь скажи в какой момент происходит компиляция в случае поставки без исходных кодов?

Еще раз повторю, ты сначала прочитай (52) а затем своё (59) и уже затем слезай с темы (64)
Если расширение работает (режим совместимости) то можно перекрыть только кривой код.


Что ты хотел своими заумствованиями с самого начала темы сказать типа (0) где
"Обратиться к разработчику с вопросом "Многоуважаемая компания имярек, какого куя...""

Я лично не понимаю.
Уважаемая компания писала конфу году так в 2007-2010, если не раньше.
И даже не подозревала что когда то в нее некто будет засовывать веб-сервисы.
   Cyberhawk
 
66 - 20.03.19 - 16:08
(60) Вкралась ошибка - забыл частицу "не". Но что-то ты агрессивно как-то придираешься )
   Сияющий в темноте
 
67 - 20.03.19 - 16:43
Модули то скомпиллированы,но в них имеются внешни5 ссылки,которые восстанавливаются перед запуском модуля.просто,система не видит режим диалога вопрос.
можно сделать бяку,а именно,в модуле внешнего соединения определить функцию РежимДиалогаВопрос на сервере ну или в любом серверном можуле с галочкой глобальный.
   Garykom
 
68 - 20.03.19 - 16:57
(67) Прикольно, жаль что может не помочь, надо знать что там дальше вылезет.
   Serg_1960
 
69 - 20.03.19 - 17:17
А следующей строкой вопрос юзверу вылезет :)
   Garykom
 
70 - 20.03.19 - 17:25
(69) Переопределить функцию "Вопрос(..)" ?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует