Имя: Пароль:
1C
1С v8
Диалог Да/Нет/Отмена на сервере 1С:Предприятие
0 Эльфийка
 
28.11.12
02:17
Доброго времени суток, форумчане!
Глобальный контекст Вопрос (DoQueryBox)
Синтаксис: Вопрос(<Текст вопроса>, <Режим>, <Таймаут>, <Кнопка по умолчанию>, <Заголовок>)
Недоступен на сервере 1С:Предприятие.
А чем можно заменить? Т.е. мне нужно создать диалог на сервере.

Заранее благодарю!
1 France
 
28.11.12
02:17
если клиент
2 Конфигуратор1с
 
28.11.12
02:19
(0)Кого Вы опрашивать на сервере собрались?
3 Конфигуратор1с
 
28.11.12
02:20
Понимаете код выполняемый на сервере выполняется физически на сервере. То есть, Вы сидите за ноутом, а в это время вопрос выпрыгивает у админа в серверной
4 Конфигуратор1с
 
28.11.12
02:20
(0)Надо переписывать процедуру так что бы вопрос был на клиенте
5 Эльфийка
 
28.11.12
02:23
&НаСервере
Ответ = ПолучитьНаКлиенте(Ответ);
Если Ответ = "Нет" Тогда Возврат; Иначе....
...


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

в результате пишет
Процедура или функция с указанным именем не определена (ПолучитьНаКлиенте)
           Ответ = <<?>>ПолучитьНаКлиенте(Ответ); (Проверка: Сервер)
6 GROOVY
 
28.11.12
02:23
Зачем на сервере модальные окна?
7 Эльфийка
 
28.11.12
02:24
Как мне тогда на сервере получить результат диалога на клиенте?
8 GROOVY
 
28.11.12
02:25
(5) Гонишь, "ответ" - это должно быть системное перечисление. И приводить его к строке как то дебильно.
9 Конфигуратор1с
 
28.11.12
02:25
(7)Спросить на клиенте и потом вызвать сервер
10 Эльфийка
 
28.11.12
02:26
На сервере мне нужен только результат ответа пользователя. Есл и ответ положительный, то на сервере я открываю ему доступ на некоторые элементы, если нет, то форма документа так и остается не доступной пользователю. Надеюсь понятно объяснила.
11 Эльфийка
 
28.11.12
02:26
(9) То есть, это как?
12 Эльфийка
 
28.11.12
02:30
(9) не подходит, потому что сначала пользователь открывает документ, доступ к которому у него закрыт (выполняется проверка на сервере), потом надо спросить у пользователя чего он хочет и ....(далее описывала выше)
13 Конфигуратор1с
 
28.11.12
02:30
(11)Сначала спрашиваете а ты уверен? а когда говорит да вызываете серверную процедуру
14 Конфигуратор1с
 
28.11.12
02:32
(12)При создании на сервере обрабатываете проверку. В реквизит формы пихаете что то типа - Наш клиент. В процедуре при открытии на клиенте проверяете если нашклиент тогда вопрос. И потом по результату вопроса вызываете серверную процедуру на открытие доступа
15 GROOVY
 
28.11.12
02:33
(10)
Клиент: (За дверью, звонит в звонок), Вызов!
Сервер: (На кухне, чайник наливает). Опа, кто то звонит!
Клиент: Звонит повторно, нет ответа от сервера...
Сервер: Подошел к двери: "Кто там?"
Клиент: "Почта!"
Сервер: "Положите в ящик!"

Что будет делать и как сервер с данными клиента не должно волновать.
16 GROOVY
 
28.11.12
02:34
А еще запятые ",,,,," забыл, сегодня со мной это что то часто!
17 ras
 
28.11.12
02:35
(12) либо в процедуре ПриОткрытии задавать вопрос, либо работать с журналом документов, имхо...
18 Конфигуратор1с
 
28.11.12
02:36
(15)Перечитал два раза - пора мне спать ложиться (((
19 Эльфийка
 
28.11.12
02:37
(14) у нас есть только процедура &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка), куда и попадаем при открытии документа. (и нет процедуры при открытии на клиенте)
20 Эльфийка
 
28.11.12
02:38
(15) не издевайтесь, пож-та, мне нужна помощь и реальный ответ, пусть даже задача не реальная))))
21 Конфигуратор1с
 
28.11.12
02:41
(19)А кто мешает завести?
22 Эльфийка
 
28.11.12
02:42
(3) представила, как бы это было в действительности и стало смешно.
23 Конфигуратор1с
 
28.11.12
02:44
(19)Как я понимаю УФ, то сначала форма создается на сервере и выполняется процедура ПриСозданииНаСервере. Далее эта форма передается на клиент. Как ХТМЛЬ у сайтов. где и отображается. Посему ПриОткрытии на клиенте идет следующим.
24 Конфигуратор1с
 
28.11.12
02:44
(22)Вам смешно, а админ сидит в серверной. Холодно голодно, а ему на вопросы 1ски отвечать надо - не то шо покурить в туалет отлучится не может
25 Эльфийка
 
28.11.12
02:48
(23) фигня в том, что при создании на сервере перед этим идет проверка Если (Объект.Стадия = Перечисления.Стадии.ПринятБухгалтерией И РольДоступна("СотрудникОтделаПродаж")) Тогда ....
26 Эльфийка
 
28.11.12
02:49
(25)т.е. мне не всегда нужна эта процедура при открытии на клиенте, а тока в определенных случаях
27 Конфигуратор1с
 
28.11.12
02:49
(25)Тогда что?
28 Эльфийка
 
28.11.12
02:50
(24) ну всё, я уже под столом))))
29 Конфигуратор1с
 
28.11.12
02:51
(26)Так я же и пишу. При создании на сервере пишете
Если (Объект.Стадия = Перечисления.Стадии.ПринятБухгалтерией И РольДоступна("СотрудникОтделаПродаж")) Тогда Записываете в реквизит формы с типом булево Спроситьу пользователяо размере носков = истина;
При открытии пишете Если Спроситьу пользователяо размере носков тогда вопрос. серверная процедура с настройкой доступа и все
30 Эльфийка
 
28.11.12
02:51
(27) тогда сначала задаем вопрос, получаем ответ, и в зависимости от ответа, действуем дальше
31 Конфигуратор1с
 
28.11.12
02:52
(29)Ферштейн?
32 Конфигуратор1с
 
28.11.12
02:52
(30)Ну вот. В (29)усе
33 Конфигуратор1с
 
28.11.12
02:54
То есть на сервере делаете проверку и пишете ее результат в реквизит формы. Далее при открытии анализируете значение реквизита формы и если надо задаете вопрос, по результатам которого делаете ваше действие.
34 Эльфийка
 
28.11.12
02:54
(29) когда выполняется данное условие, форма документа ему не доступна. так что реквизит формы , как я понимаю не сможем записать
35 Конфигуратор1с
 
28.11.12
02:56
(34)а сделайте что бы этот реквизит был доступен всем пользователям но никому не видим
36 Эльфийка
 
28.11.12
02:58
Т.е. сейчас сделано так, если у документа стадия ПринятБухгалтерией , то пользователи ничего там не могут изменить, только смотреть закладки в табличной части и всё. Но  продажникам надо открыть доступ для редактирования, только для поля Комментарий
37 Эльфийка
 
28.11.12
02:59
(35) как я заметила, то если форма не доступна, то в не зависимости есть доступ к кнопкам, полям и т.п. или нет, ничего не доступно
38 Конфигуратор1с
 
28.11.12
03:01
(37)Это уже как Вы пропишете доступ формы
39 Эльфийка
 
28.11.12
03:01
т.е. на момент когда форма не доступна, данный добавленный реквизит будет тоже не доступен (или я уже ничего не понимаю(((()
40 Конфигуратор1с
 
28.11.12
03:01
Я ваще спатки. Если хотите давайте тимку все Вам сделаем по быстренькому
41 Конфигуратор1с
 
28.11.12
03:02
(39) Есть такая вещь как привелигированный общий модуль на крайний случай.
42 Эльфийка
 
28.11.12
03:05
(40) я тоже спать, перечитаю сегодня после того как встану, может вникну наконец))))
43 Эльфийка
 
28.11.12
03:05
(41) спасибо за идею!!!!
44 Конфигуратор1с
 
28.11.12
03:06
(43)Спасибо много - фото в самый раз )))
45 Эльфийка
 
28.11.12
03:07
вообще можно было бы сделать проще,                ЭтаФорма.ТолькоПросмотр = Ложь;
               Элементы.Группа8.Доступность = Ложь;
               Элементы.Ответственный.Доступность = Ложь;
               Элементы.Группа1.Доступность = Ложь;
               Элементы.Группа3.Доступность = Ложь;
               Элементы.Группа4.Доступность = Ложь;
               Элементы.Группа13.Доступность = Ложь;
               //Элементы.НачислениеАгентских.Доступность = Ложь;
               Элементы.Автор.Доступность = Ложь;
               Элементы.Комментарий.Доступность = Истина;
46 Эльфийка
 
28.11.12
03:08
но в этом случае, пользователь не может просматривать не доступные ему закладки 3,4,13. Они просто высвечиваются как полностью не доступная табличная часть
47 Конфигуратор1с
 
28.11.12
03:10
(46)Так пусть и не смотрит
48 Конфигуратор1с
 
28.11.12
03:11
И ваще - отпустите меня спатки. Мне завтра еще рабочий вид изображать
49 Эльфийка
 
28.11.12
03:12
(48) умного человека жаль отпускать))))
50 Конфигуратор1с
 
28.11.12
03:13
(49)Я вернусь. Честное пионерское
51 Эльфийка
 
28.11.12
03:13
(47) смотреть надо, потому что как раз на второй закладке 4, у них проценты их от продажи записаны, которые они должны видеть))))
52 Эльфийка
 
28.11.12
03:13
(50) буду надеяться и ждать! спокойной ночи!сладких снов!
53 Конфигуратор1с
 
28.11.12
03:14
(52)Взаимно
54 Эльфийка
 
28.11.12
03:15
Ура!!! все оказалось как всегда намного проще!!!!!!!!!
55 Эльфийка
 
28.11.12
03:16
у меня все получилось!!! вот

       Если (Объект.Стадия = Перечисления.Стадии.ПринятБухгалтерией И РольДоступна("СотрудникОтделаПродаж")) Тогда
               ЭтаФорма.ТолькоПросмотр = Ложь;
               Элементы.Группа8.Доступность = Ложь;
               Элементы.Ответственный.Доступность = Ложь;
               Элементы.Группа3.ТолькоПросмотр = Истина;
               Элементы.Группа4.ТолькоПросмотр = Истина;
               Элементы.Группа13.ТолькоПросмотр = Истина;
               Элементы.НачислениеАгентских.ТолькоПросмотр = Истина;
               Элементы.Автор.Доступность = Ложь;
               Элементы.Комментарий.Доступность = Истина;
       КонецЕсли;
56 Эльфийка
 
28.11.12
03:17
так что  Конфигуратор1с можете быть свободным, отпускаю)))))))))))))
57 Эльфийка
 
28.11.12
03:17
и благодарю от всего сердца!!!
58 Конфигуратор1с
 
28.11.12
11:26
(57)Ну вот, Карлсон вернулся, а Малыш  уже съел все варенье (((
59 samozvanec
 
28.11.12
11:36
все не читал. разорвать серверную процедуру предлагали?
60 Klesk
 
28.11.12
11:38
(2) а как же Сообщить() кому оно сообщает?
61 Конфигуратор1с
 
28.11.12
11:39
(60)вроде тоже серверу, Если хотите оповестить клиента  то надо использовать сообщение пользователю
62 Klesk
 
28.11.12
12:52
(61) не, я вижу "сообщить" на клиенте
63 Конфигуратор1с
 
28.11.12
12:53
(62)В файловом варианте?
64 Klesk
 
28.11.12
12:55
Сообщить (Message)
Синтаксис:

Сообщить(<ТекстСообщения>, <Статус>)
Параметры:

<ТекстСообщения> (обязательный)

Тип: Строка.
Текст сообщения.
<Статус> (необязательный)

Тип: СтатусСообщения.
Статус сообщения. Определяет вид пиктограммы.
Значение по умолчанию: Обычное
Описание:

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

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

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

Сообщить("Выбранный товар отсутствует на складе!", СтатусСообщения.Важное);
65 Klesk
 
28.11.12
12:55
(63) в любом
66 Конфигуратор1с
 
28.11.12
13:00
(65)Таки да, был не прав. На клиенте его показывает. Только что проверил. Хотя логики не пойму
67 Klesk
 
28.11.12
13:00
(66) я тоже
68 hhhh
 
28.11.12
13:03
(67) Сообщить не требует ответа. Поэтому можно спокойно его сложить куда-нибудь, а когда запустится клиент, может через месяц, ему это показать.
69 Конфигуратор1с
 
28.11.12
13:05
(68)В чем смысл тогда Сообщение пользователю?
70 NcSteel
 
28.11.12
13:18
(69) Очень гибкий объект. Позволяет привязать объекты и поля формы.
71 acsent
 
28.11.12
13:22
Лучше по молчанию доступность ложь и кнопка редактировать. Так в ут 11 например
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn