Имя: Пароль:
1C
1С v8
Использование синхронных методов на клиенте запрещено!
, ,
0 alexsandrinia
 
21.05.15
13:35
выходит ошибка
Ошибка при вызове метода контекста (Выбрать)
    Если Диалог.Выбрать() Тогда
по причине:
Использование синхронных методов на клиенте запрещено!
как понять и исправить?
1 Волшебник
 
модератор
21.05.15
13:36
нужно использовать асинхронные методы
2 alexsandrinia
 
21.05.15
13:37
(1) изменить свойства конфигурации?
3 Fragster
 
гуру
21.05.15
13:37
просто разработчики платформы не осилили эмуляцию модальности
4 ДенисЧ
 
21.05.15
13:38
(2) Использовать в коде асинхронные вызовы
5 Котокот
 
21.05.15
13:39
(0) Самописка? Или типовая, которая давно не обновлялась? Или есть доработки?
6 Fragster
 
гуру
21.05.15
13:40
теперь, например, для того, чтобы вычислить рекурсивно размер каталога - надо очень сильно извратиться.
7 Fragster
 
гуру
21.05.15
13:41
всю боль можно ощутить, посмотрев пару очень затянутых видео http://www.1c-uc3.ru/video.html
8 alexsandrinia
 
21.05.15
13:41
(4) и как?
(5) самописка
9 Волшебник
 
модератор
21.05.15
14:03
ДиалогВыбораЦвета (ColorChooseDialog)
Выбрать (Choose)
Синтаксис:
Выбрать()
Возвращаемое значение:
Тип: Булево.
Истина - цвет выбран; Ложь - в противном случае.
Описание:
Открывает диалог выбора цвета.
Доступность:
Тонкий клиент, толстый клиент, внешнее соединение.
Примечание:
Если для конфигурации свойство РежимИспользованияМодальности установлено в НеИспользовать, следует использовать метод Показать.

ДиалогВыбораЦвета (ColorChooseDialog)
Показать (Show)
Синтаксис:
Показать(<ОписаниеОповещенияОЗакрытии>)
Параметры:
<ОписаниеОповещенияОЗакрытии> (необязательный)
Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после закрытия диалога со следующими параметрами:
•    <Цвет> - Цвет - цвет выбран; Неопределено - в противном случае;
•    <ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения.
Если параметр не указан или имеет тип Неопределено, то по завершении никакая процедура вызвана не будет.
Описание:
Открывает немодальный диалог выбора цвета.
Доступность:
Тонкий клиент, толстый клиент.
10 alexsandrinia
 
21.05.15
14:11
так как мне открыть диалоговое окно и выбрать файл?
11 Fish
 
21.05.15
14:28
(10) ДиалогВыбораФайла (FileDialog)
Показать (Show)
Синтаксис:

Показать(<ОписаниеОповещения>)
Параметры:

<ОписаниеОповещения> (обязательный)

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

Начинает отображение диалога выбора файла.

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

Тонкий клиент, веб-клиент, толстый клиент.
12 pietro
 
21.05.15
14:47
&НаКлиенте
Процедура Команда4(Команда)
    
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл с фотографией";
    Диалог.ПолноеИмяФайла = "";
    Диалог.ПредварительныйПросмотр = Истина;
    Диалог.Фильтр =
    "Все картинки (*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf)|*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf|"
    + "Формат bmp (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|"
    + "Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|"
    + "Формат TIFF (*.tif)|*.tif|"
    + "Формат GIF (*.gif)|*.gif|"
    + "Формат PNG (*.png)|*.png|"
    + "Формат icon (*.ico)|*.ico|"
    + "Формат метафайл (*.wmf;*.emf)|*.wmf;*.emf|"; // картинки
    
    Гуарда = Новый ОписаниеОповещения("ГуардаМостро", ЭтотОбъект);
    
    Диалог.Показать(Гуарда);
    
КонецПроцедуры

&НаКлиенте
Процедура ГуардаМостро(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
    
    Если ВыбранныеФайлы <> Неопределено И ВыбранныеФайлы.Количество() > 0 Тогда
        Сообщить("Файл выбран!");
    Иначе
        Сообщить("Файл не выбран!");
    КонецЕсли;
    
КонецПроцедуры
13 alexsandrinia
 
21.05.15
14:57
(12) у меня ничего не происходит, диалоговое окно не появляется с выбором файла...
14 alexsandrinia
 
21.05.15
14:58
(12)извиняюсь, строку забыл одну указать, заработало)
15 Котокот
 
22.05.15
14:25
(8) Раз самописка, то просто переписать под асинхронные вызовы.
16 Бубка Гоп
 
22.05.15
14:30
1с не оставит нас без работы никогда. Спасибо ей огромное.
17 Infsams654
 
22.05.15
15:08
(8) в свойствах конфигурации "Режим использования модальности" - Использовать.
18 alexsandrinia
 
22.05.15
15:09
(17) без этого никак?
19 Infsams654
 
22.05.15
15:11
(18) уже писали как. Переписать под асинхронные вызовы. Пример (12)
20 Serginio1
 
22.05.15
15:23
21 Котокот
 
25.05.15
12:54
(18) Перепишите, так правильней с точки зрения клиент-сервера, айяксов и т.д.
22 Господин ПЖ
 
25.05.15
13:14
пилять... как писать теперь? с вопросами и оповещениями от них все ясно...

а если просто файлы в каталоге удалить? и дождавшись конца пойти дальше по коду?

оповещение срабатывает "самым последним" когда уже выходишь из функции приписанной к команде форме обратно в форму
23 Cyberhawk
 
25.05.15
13:19
(22) разбить функцию на несколько, иногда да, встаешь в ступор, глядя на привычный код
+ в типовых уже видел наверное "ОписаниеОповещения1", "ОписаниеОповещенияПродолжение1", "ОписаниеОповещенияПродолжение2" и т.д.
24 Господин ПЖ
 
25.05.15
13:24
>разбить функцию на несколько

да я пытаюсь...

ну допустим получение имени каталога врем. файлов я могу запихнуть в ПриОткрытии. Сработало ПриОткрытии, потом обработка оповещения от НачатьПолучениеКаталогаВременныхФайлов()

форма открыта, у меня в реквизите формы есть имя каталога...

способ так себе, но хоть как-то...

а если я по кнопке вызываю процедуру генерации файлов в каталоге? мне сначала надо зачистить то что было в каталоге, потом генерить новые файлы

как это "разносить"? Читаю ИТС - яснее не становится
25 Cyberhawk
 
25.05.15
13:27
В последующие описания оповещения можно передавать параметры из предыдущих
26 Cyberhawk
 
25.05.15
13:28
Ну, типа - из модуля формы на клиенте вызываешь серверную процедуру с описанием оповещения, далее в этом описании оповещения вызываешь еще одну серверную процедуру, но только если в доп. параметрах есть признак успеха