Имя: Пароль:
1C
1С v8
Модуль документа в УФ 8.2
0 svchernova
 
01.11.11
13:42
Разрабатываю управляемое приложение Пишу обработку, которая программно создаёт документы. С управляемой формой обработки худо-бедно разобралась, а при создании документа непонятки. Там ведь есть формы, и модуль документа. Вопрос в том, как работают процедуры модуля документа, нужно ли писать директивы &НаСервере и &НаКлиенте?
Даже простое предупреждение вываливаеся в ошибку {Документ.Страхование.МодульОбъекта(873,5)}: Процедура или функция с указанным именем не определена (Предупреждение)
               <<?>>Предупреждение("МОЛ не указан");
В чём тут дело, кто знаком с проблемой?
1 RomaH
 
naïve
01.11.11
13:52
не нужно директивы - однозначно сервер
поэтому и предупредиить нельзя
2 aleks-id
 
01.11.11
13:56
через СообщениеПользователю мути
3 svchernova
 
01.11.11
13:56
(1) То есть ВСЕ процедуры модуля документа выполняются на сервере? И ещё, я всё-таки не поняла, почему предупредить нельзя. Объясни, пожалуйста.
4 svchernova
 
01.11.11
13:57
(2) Сейчас ппробую
5 svchernova
 
01.11.11
14:02
(2) Нет..
{Документ.Страхование.МодульОбъекта(874,5)}: Процедура или функция с указанным именем не определена (СообщениеПользователю)
               <<?>>СообщениеПользователю("МОЛ не указан");
6 Поручик
 
01.11.11
14:04
(5) Продам СП. Дорого.
7 svchernova
 
01.11.11
14:05
(6) к чертям!
8 Поручик
 
01.11.11
14:06
(7) Чего? Матчасть учите. Нет такой процедуры СообщениеПользователю, есть такой класс
9 Stim213
 
01.11.11
14:07
смотри СП, изучаем, что используется на сервере, что на клиенте
10 Поручик
 
01.11.11
14:09
(9) Нет у неё СП,  завидующие коллеги стырили или заблокирован политикой безопасности.
11 svchernova
 
01.11.11
14:11
(8) и (9) Начинает доходить.. Получается, что модули документов тоже переписывать придётся.
Такая конструкция как:

Текст = "Снять пометку утверждения?";
Ответ = Вопрос(Текст, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да, );
Если Ответ = КодВозвратаДиалога.Нет Тогда
   Возврат;
КонецЕсли;

Тоже не работает.. надо тогда подумать, как малой кровью диалог с пользователем организовать
12 Stim213
 
01.11.11
14:12
(10) ну а что. Один вот удалил СП, чтобы места в базе больше было
13 svchernova
 
01.11.11
14:12
(12) а я и вправду не знаю, где эти СП почитать.
14 svchernova
 
01.11.11
14:16
(9) Ты б не ёрничал, а подсказал - тут вот и тут, Света!! Блин.
15 Stim213
 
01.11.11
14:17
Выделяем в коде "вопрос", жмем ктрл+ф1
получаем:

Глобальный контекст.Вопрос (Global context.DoQueryBox)
Глобальный контекст (Global context)
Вопрос (DoQueryBox)
Синтаксис:

Вопрос(<ТекстВопроса>, <Кнопки>, <Таймаут>, <КнопкаПоУмолчанию>, <Заголовок>, <КнопкаТаймаута>)
Параметры:

<ТекстВопроса> (обязательный)

Тип: Строка. Текст задаваемого вопроса.
<Кнопки> (обязательный)

Тип: РежимДиалогаВопрос; СписокЗначений. Задает состав и текст кнопок диалога, а также, связанные с кнопками значения.
При использовании типа СписокЗначений:
Значение – содержит значение, связанное с кнопкой. Это значение является возвращаемым значением при выборе кнопки. В качестве значения может использоваться значение перечисления КодВозвратаДиалога, а также другие значения;
Представление – задает текст кнопки. Если представление не задано и в качестве значения используется значение перечисления КодВозвратаДиалога, то используется стандартное представление;
Картинка – не используется (должна быть пустой);
Пометка – не используется (должна быть пустой).
При использовании типа СписокЗначений список не должен быть пустым.
<Таймаут> (необязательный)

Тип: Число. Интервал времени в секундах, в течение которого система будет ожидать ответа пользователя. По истечении интервала окно вопроса будет закрыто. Если параметр не указан, то время ожидания не ограничено.
Значение по умолчанию: 0
<КнопкаПоУмолчанию> (необязательный)

Тип: Произвольный. Определяет кнопку по умолчанию по типу кнопки или по связанному с ней значению.
<Заголовок> (необязательный)

Тип: Строка. Содержит заголовок окна вопроса.
<КнопкаТаймаута> (необязательный)

Тип: Произвольный. Определяет кнопку (по типу кнопки или по связанному с ней значению), на которой отображается количество секунд, оставшихся до истечения таймаута.
Возвращаемое значение:

Тип: Произвольный. В зависимости от реакции пользователя возвращается значение системного перечисления или значение, связанное с нажатой кнопкой.
В случае закрытия диалога по истечении времени ожидания возвращается значение Таймаут.
Описание:

Выводит на экран окно вопроса.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
Примечание:

В веб-клиенте в случае, если клавиша Esc не используется (нет кнопки, связанной со значением Отмена) и пользователь закрывает окно "крестиком", повторно открывается диалог с первоначальными параметрами.
Пример:

Режим = РежимДиалогаВопрос.ДаНет;
Текст = "ru = ""Продолжить выполнение операции?"";"
    + " en = ""Do you want to continue?""";
Ответ = Вопрос(НСтр(Текст), Режим, 0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
   Возврат;
КонецЕсли;


См. также:

Глобальный контекст, метод Предупреждение




Обращаем внимание на :
Доступность:

Тонкий клиент, веб-клиент, толстый клиент.

Следовательно, на сервере работать не будет
16 Stim213
 
01.11.11
14:18
Процедуры и функции без указания способа выполнения - выполняются по умолчанию на сервере
17 Defender aka LINN
 
01.11.11
14:24
(11) За такую конструкцию расстреливать надо
18 svchernova
 
01.11.11
14:26
(16) Спасибо тебе. Я уже себе пеплом голову посыпала. Сижу и злюсь - ну какой объект ни подключишь в управляемое приложение - всё надо переписывать, караул просто.
19 svchernova
 
01.11.11
14:27
(17) Почему? это из 8.1 перекочевало.. да и писала не я..
20 GROOVY
 
01.11.11
14:30
(16) В модулях объектов нет необходимости писать директивы компиляции. Однозначно выполняться будут на сервере.
21 Поручик
 
01.11.11
14:31
(19) Все сразу поняли, что мопед не ваш, а теорию разработки управляемых приложений надо изучать по книгам, а не на мисте спрашивать.
Общую мачасть тоже следует выучить, чтобы не тупить, как в посте (12).
22 Stim213
 
01.11.11
14:32
(20) за это надо выпить)
23 svchernova
 
01.11.11
14:34
(21) Мопед не мой, а человека с большим опытом работы и кучей сертификатов. Она умница. И я понимаю, что не на мисте, но давят со сроками. Франч все соки выжмет.
24 GROOVY
 
01.11.11
14:38
Человек с большим опытом никогда в модуле объекта, где нет интерактивных событий, никогда диалоговые методы, да еще в модальном режиме, использовать не станет.
25 svchernova
 
01.11.11
14:41
(24) Охотно верю.. Действительно, нужно читать матчасть.. Знаешь, как во франчах работают? Рвут на себя одеяло, хватают заказы, пибыль, пибыль и ещё раз прибыль. вал.
26 svchernova
 
01.11.11
14:42
Прибыль
27 Defender aka LINN
 
01.11.11
15:29
(25) Та откуда нам знать, в самом деле... :)
28 svchernova
 
01.11.11
15:39
(27) я не жалуюсь, у нас люди хорошие. Просто жизнь сейчас такая.
29 mikecool
 
01.11.11
15:43
не мы такие, это жизнь такая (с) не мое )))
30 svchernova
 
01.11.11
15:44
(27) Но "вопрос" так и не создала. Создала ОбщийМодуль.Дополнительный, чтобы вынести туда эти диалоговые конструкции. Пойду в уборщицы, хоть голову ломать не буду.
31 svchernova
 
01.11.11
15:45
(29) а что, разве жизнь не изменилась за последние лет 20?
32 Defender aka LINN
 
01.11.11
15:47
Мы не мешаем, не? :)
33 svchernova
 
01.11.11
15:48
Мешаете маленько :)))))))
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший