Имя: Пароль:
1C
 
Почему РежимДиалогаВопрос.ДаНет нельзя размещать в модуле объекта?
0 KOL822
 
07.05.09
17:47
Один хороший программист утверждает, что РежимДиалогаВопрос.ДаНет нельзя размещать в модуле объекта. Может кто подскажет в чем фишка?
Сам он фишку не говорит, хочет чтобы я нашел. Сам я неоднократно использовал этот диалог в модулях объекта и ничего критичного непроисходило....но всётаки в чем же фишка?
1 mikecool
 
07.05.09
17:48
(0) фишка в обработке на сервере, скорее всего
2 mikecool
 
07.05.09
17:48
+1 надо заключать в скобки если клиент
3 Terv
 
07.05.09
17:49
в модуль объекта можно,
внутри транзакции нельзя, Запись, Проведение
4 dimoff
 
07.05.09
17:49
В модуле справочника, полагаю, без проблем
5 dimoff
 
07.05.09
17:50
(3) Не о том речь совершенно
6 Terv
 
07.05.09
17:51
(5) а какие еще варианты?
7 Defender aka LINN
 
07.05.09
17:52
(4) Справочники, типа, на клиенте пишутся только?
8 dimoff
 
07.05.09
17:53
(6) Ну разрабатываешь ты в локальной версии всё чудесно, а когда код компилируется на сервере модули с незаключенными в #Если Клиент подобными вещами вылетают с ошибкой.
9 mikecool
 
07.05.09
17:53
РежимДиалогаВопрос (QuestionDialogMode)
Описание:
....
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
....

другой причины не вижу
10 dimoff
 
07.05.09
17:54
(7) Думал типа да, если типа нет, то типа не прав.
11 mikecool
 
07.05.09
17:54
автор, пользуйся Конфигурация - Проверка конфигурации
особенно если лабаешь кому для сервера в файловой базе
12 Terv
 
07.05.09
17:54
(8) (9) а с каких пор у нас модули объектов по умолчанию выполняются на сервере?
13 mikecool
 
07.05.09
17:55
(12) при чем тут по умолчанию? они компилятся там тоже
14 dimoff
 
07.05.09
17:55
(12) Мы тут причем, это ж один хороший программист утверждает
15 Terv
 
07.05.09
17:58
(13) ?? офигеть ...
у меня в типовой УПП в половине модулей документов РежимДиалогаВопрос содержиться... как оно работает у меня работает на клиент-серверной версии, а?
16 mikecool
 
07.05.09
17:59
(15) возьми с полки пирожок
че беленишься? я высказал предположение
17 Terv
 
07.05.09
18:00
(16) подожди ... возможно я не прав, щаз проверю
18 mikecool
 
07.05.09
18:01
(17) запусти проверку конфигурации, не посыпятся ошибки на стороне сервера?
19 Terv
 
07.05.09
18:03
(18) проверка эт все фигня

не все компилятся ... т.е. ошибка может появиться, только при вызове этой процедуры содержащий РежимДиалогаВопрос с сервера или внешнего соединения
20 mikecool
 
07.05.09
18:04
(19) не, проверка у меня все такие моменты находит...
21 KOL822
 
07.05.09
18:05
"Хороший программист" говорит, что это серьезная ошибка и надо понять почему нельзя так делать.
22 mikecool
 
07.05.09
18:05
(21) да ну его, твоего программиста :)
23 mikecool
 
07.05.09
18:06
+22 он не из плеяды обучателей из 1С? когда один учит пользоваться методами, а второй на экзамене говорит, что это есть сакс, и правильно только запросы
24 Stepa86
 
07.05.09
18:08
(21) то есть тебе (9) не очевидно?
25 ShoGUN
 
07.05.09
18:09
(21) Тут два варианта - либо он не про модуль объекта, а про транзакции, либо всё же (9).
26 mikecool
 
07.05.09
18:10
либо он сам не знает, а признаться стыдно...
27 Stepa86
 
07.05.09
18:10
а за диалог в обработке проведения вообще табуреткой по йайцам нужно
28 KOL822
 
07.05.09
18:12
(24) дело в том что если ему отвечаешь так как в синтаксисе помошника написано,как написал(9)

говорит необходимо четкое понимание действий. так вот может кто популярно распишет?
29 ShoGUN
 
07.05.09
18:13
(28) "Четкое понимание действий" чего или кого?
30 KOL822
 
07.05.09
18:14
действий любого программиста кто пишет этот диалог в модуле.
31 Stepa86
 
07.05.09
18:16
1) Допустим у нас диалог вызывается из модуля справочника и нет директив препроцессора; и есть некоторая функция, которая получает объект этого справочника - при инициализации объекта на сервере он не сможет скомпилится из-за несуществования переменной "РежимДиалогаВопрос" и выпадет ошибка...
32 Jolly Roger
 
07.05.09
18:16
(0) модуль объекта - это model, а диалог - это элемент view...
33 Stepa86
 
07.05.09
18:17
2) Модуль объекта - для функций работы с объектом, модуль формы - для функций работы с формой (интерактивной работы). Диалог нужен только для интерактивной работы, поэтому размещать его в модуле методологически неправильно
34 73
 
07.05.09
18:26
Вообще постановка вопроса некорректна.
1. Нельзя использовать без конструкций #Если Клиент - см (31).
2. Нехорошо(мягко сказал) использовать внутри обработчиков, выполняющихся в транзакции - получишь как в (27).

В остальном - не вижу препятствий.
Почему не использовать?
Например, разместить в модуле процедуру печати или еще чего-нибудь, и пользовать когда нужно.
Естественно с конструкциями #Если Клиент.
35 Stepa86
 
07.05.09
18:30
Замечу, что так как при защите кода (непоставка исходников или пароль) скрываются только модули объектов и поэтому туда тащат по максимуму функций, в том числе и запрещенные на сервере, НО нельзя закрывать модули с директивами препроцессора и поэтому их опускают, а потом удивляются неработоспособности решения в клиент-сервере... одно из решений - использовать общие модули с галочкой клиент
36 Jolly Roger
 
07.05.09
18:46
(34) пальцем в носу при людях тоже можно ковырять. Палец, ведь, на самом деле, не сломаешь...
37 Defender aka LINN
 
07.05.09
19:25
(12) А с каких пор они там НИКОГДА не выполняются?
38 Terv
 
07.05.09
20:58
(37) а где я утверждал, что никогда?
вообще назови хоть одно решение из практики, требующее компиляции модуля объекта на стороне сервера или внешнего соединения, которое нельзя решить другим способом?
39 Terv
 
07.05.09
20:58
имхо ... "хороший" программист сам не знает причины.
40 PR
 
07.05.09
21:10
РежимДиалогаВопрос.ДаНет можно размещать где угодно, в том числе и в модуле объекта.
Другое дело, что это нельзя использовать на сервере 1С:Предприятия и это понятно, ибо кто там, на сервере будет это использовать.
41 MRAK
 
07.05.09
22:11
(40) как кто? объект ИИ
42 MRAK
 
07.05.09
22:12
AI в смысле
43 eklmn
 
гуру
07.05.09
22:24
(42) нахрена он(режим диалога) АИ здался, если он предназначен для юзера?
44 Defender aka LINN
 
07.05.09
22:33
(38) "вообще назови хоть одно решение из практики, требующее компиляции модуля объекта на стороне сервера или внешнего соединения, которое нельзя решить другим способом?" - Да ради бога. Делай все на клиенте. Сервер же так, для понту чисто. И внешнее соединение нафиг никому не впилось, зря что ли, производители железа стараются?
Идиотская фраза, в общем. Если я данные из одной базы в другую перегражаю, я из-за такого вот дятлизма должен не COMConnector, а Application юзать. И на сервере я хочу делать трудоемкие операции, типа перепроведения документов. А из-за криворуких ублюдков должен это все делать на клиенте.
45 eklmn
 
гуру
07.05.09
22:34
(44)+1
46 Terv
 
07.05.09
22:37
(44) ёмое... а УПП может делать движения по регистрам на сервере, не компилируя модули объектов... и РИБ может переносить движения без получения объектов....
беги срочно в 1С сообщи что они дятлы... наверно они тебе выразят благодарность

PS. лень это не повод делать через жопу
47 Terv
 
07.05.09
22:43
+(46) вообщем как я и утверждал, кроме редких специфических случаев, компиляция модулей на стороне сервера, нафиг не нужна, по крайне мере, до выхода тонкого клиента.
48 Serg_1960
 
07.05.09
23:24
Риторический вопрос (не требующий ответа): Методики разработки (стандарты) 1С - что "это" и для кого "это"? Цитата:

"...При разработке кода общего модуля и модулей объектов, которые должны быть доступны на сервере и во внешнем соединении, следует соблюдать следующие правила.

Общее:
Запрещено использование объектов имеющих тип данных, не доступный на сервере и во внешнем соединении:
    - ТабличныйДокумент
    - ТекстовыйДокумент
    - ДиалогВыбораФайла
    - все другие типы, использование которых невозможно на сервере 1С:Предприятие и во внешнем соединении.

Запрещено использование средств, отвечающих за диалог с пользователем:
    - Предупреждение()
    - Вопрос()..."