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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедура НикомуНахренНеНужнаяИНигдеНеВызываемаяПроцедура()
    Режим = РежимДиалогаВопрос.ДаНет;
КонецПроцедуры

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

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


Что ты хотел своими заумствованиями с самого начала темы сказать типа (0) где

"Обратиться к разработчику с вопросом "Многоуважаемая компания имярек, какого куя...""

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