Имя: Пароль:
1C
1С v8
Реализация окна вопроса на управляемых формах
,
0 art93
 
23.07.15
07:10
Подскажите пожалуйста как реализовано:
Ответ = Вопрос("Заказ не записан. Записать?", РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да, Метаданные().Имя);
Если Ответ = КодВозвратаДиалога.Да Тогда

В модуле вроде бы видит эти функции, но ошибки выдаёт

{Документ.ЗаказНаСопровождение.МодульОбъекта(5,49)}: Переменная не определена (РежимДиалогаВопрос)
        Ответ = Вопрос("Заказ не записан. Записать?", <<?>>РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да, Метаданные().Имя); (Проверка: Сервер)
{Документ.ЗаказНаСопровождение.МодульОбъекта(5,77)}: Переменная не определена (КодВозвратаДиалога)
        Ответ = Вопрос("Заказ не записан. Записать?", РежимДиалогаВопрос.ДаНет, , <<?>>КодВозвратаДиалога.Да, Метаданные().Имя); (Проверка: Сервер)
{Документ.ЗаказНаСопровождение.МодульОбъекта(6,16)}: Переменная не определена (КодВозвратаДиалога)
        Если Ответ = <<?>>КодВозвратаДиалога.Да Тогда (Проверка: Сервер)
{Документ.ЗаказНаСопровождение.МодульОбъекта(5,11)}: Процедура или функция с указанным именем не определена (Вопрос)
        Ответ = <<?>>Вопрос("Заказ не записан. Записать?", РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да, Метаданные().Имя); (Проверка: Сервер)
1 PaulBC
 
23.07.15
07:16
Потому что Сервер..
2 art93
 
23.07.15
07:22
Процедура ОтчитатьсяПоЗаказу() Экспорт
    Если Модифицированность() Тогда
        Ответ = Вопрос("Заказ не записан. Записать?", РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да, Метаданные().Имя);
        Если Ответ = КодВозвратаДиалога.Да Тогда
            ЭтотОбъект.Записать(РежимЗаписиДокумента.Запись);
        Иначе
            Возврат;
        КонецЕсли;
    КонецЕсли;        
    обжОтчет = Документы.ОтчетПоЗаказуНаСопровождение.СоздатьДокумент();
    
    обжОтчет.Заполнить(ЭтотОбъект.Ссылка);
        
    обжОтчет.ПолучитьФорму().Открыть();
КонецПроцедуры

Не понял, объясните пожалуйста, перед процедурой НА Клиенте нужно прописать?
Этот код в модуле объекта находится
3 PaulBC
 
23.07.15
07:24
Код в модуле объекта всегда выполняется на сервере. Вызывай из модуля формы.
4 art93
 
23.07.15
07:27
Понятно, спасибо. Просто я переношу из УТ_10.2 в УТ_11+CRM и в старой было реализовано в модуле объекта
5 PaulBC
 
23.07.15
07:38
Заодно почитай по отказ от модальности. Все равно со временем придется )
http://its.1c.ru/docs/v8nonmodal/
6 oslokot
 
23.07.15
08:05
Лучше ПоказатьВопрос()
7 art93
 
23.07.15
09:37
(6) Не находит такой функции.
8 art93
 
23.07.15
09:37
(5) Спасибо, почитаю.
9 art93
 
23.07.15
09:39
(3) Но опять я ведь не могу на клиенте документ создать.
обжОтчет = Документы.ОтчетПоЗаказуНаСопровождение.СоздатьДокумент();
А нет альтернативы? никак не реализовать этот метод в модуле объекта?
10 fisher
 
23.07.15
09:46
А ты думал косметическими изменениями обойтись? Фиг тебе.
Ты теперь вместо моноблока два приложения пишешь параллельно - клиентское и серверное. Причем клиент - тонкий. Почитай лучше "Разработку управляемого интерфейса". Или лучше сначала это полистай: http://catalog.mista.ru/public/198766/
11 art93
 
23.07.15
09:52
(10) да, думал так)
Спасибо за информацию, почитаю поразбираюсь!
12 SleepyHead
 
гуру
23.07.15
09:55
ПоказатьВопрос украли у ТС ?
13 Господин ПЖ
 
23.07.15
09:56
(12) украли... если костыль в совместимости включен
14 fisher
 
23.07.15
09:57
(11) Если участок простой, то может и получится. Вкратце - диалог с пользователем на клиенте, а для всех операций с БД - вызываешь серверные процедуры и там делаешь. Это что касается формы. А модуль объекта - он всегда на сервере. И более того, существует только на время серверного вызова и доступа к форме уже не имеет. В общем, методом научного тыка разбираться долго будешь, лучше почитай.
15 art93
 
23.07.15
10:02
(14) Спасибо за объяснение. Уже читаю.