Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Для Альфа (число прочтений - 7027 )
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 247
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: Для Альфа
Ответ #15 - 05. Октября 2017 :: 07:26
Печать  
Алексей, всё же с плавающей формой стоит ли ждать доработку?
Очень удобный функционал, расширяет информативность основной формы.
Поведение методов объекта Окна вообще не предсказуемо. Например, Окно.РазмерОкна(...) выбрасывает форму в центр экрана. Зато после применения метода пропадают проблемы с рамкой. Печаль...

С уважением, Сергей.
« Последняя редакция: 05. Октября 2017 :: 09:21 - recop »  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для Альфа
Ответ #16 - 05. Октября 2017 :: 10:15
Печать  
recop писал(а) 05. Октября 2017 :: 07:26:
Алексей, всё же с плавающей формой стоит ли ждать доработку?


Нет. Слишком большой объем работы.
  

FormEx developer
Наверх
www  
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 631
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Для Альфа
Ответ #17 - 11. Октября 2017 :: 11:47
Печать  
АЛьФ
В 2.0.5.129 и 2.0.5.129 опять сломалось событие ПослеОткрытия в модальном режиме, в 2.0.5.124 работало.
  
Наверх
www  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для Альфа
Ответ #18 - 12. Октября 2017 :: 06:54
Печать  
Djelf писал(а) 11. Октября 2017 :: 11:47:
АЛьФ
В 2.0.5.129 и 2.0.5.129 опять сломалось событие ПослеОткрытия в модальном режиме, в 2.0.5.124 работало.


Вроде не трогал даже близко. Можешь пример сворганить?
  

FormEx developer
Наверх
www  
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 631
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Для Альфа
Ответ #19 - 12. Октября 2017 :: 09:08
Печать  
АЛьФ писал(а) 12. Октября 2017 :: 06:54:
Djelf писал(а) 11. Октября 2017 :: 11:47:
АЛьФ
В 2.0.5.129 и 2.0.5.129 опять сломалось событие ПослеОткрытия в модальном режиме, в 2.0.5.124 работало.


Вроде не трогал даже близко. Можешь пример сворганить?


Да, странное это событие - то появляется, то исчезает.

События формы https://cloud.mail.ru/public/F9WA/bwy4FvZvK
  
Наверх
www  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для Альфа
Ответ #20 - 12. Октября 2017 :: 11:10
Печать  
Djelf писал(а) 12. Октября 2017 :: 09:08:
АЛьФ писал(а) 12. Октября 2017 :: 06:54:
Djelf писал(а) 11. Октября 2017 :: 11:47:
АЛьФ
В 2.0.5.129 и 2.0.5.129 опять сломалось событие ПослеОткрытия в модальном режиме, в 2.0.5.124 работало.


Вроде не трогал даже близко. Можешь пример сворганить?


Да, странное это событие - то появляется, то исчезает.

События формы https://cloud.mail.ru/public/F9WA/bwy4FvZvK


Хм... странно.
  

FormEx developer
Наверх
www  
IP записан
 
frantsuz
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 23. Ноября 2017
Re: Для Альфа
Ответ #21 - 23. Ноября 2017 :: 08:40
Печать  
Добрый день, Алексей! Огромное спасибо за FormEx!

Возник вопрос:
Если в обработчике "ПриНачалеБлокировкиОбъекта", установить СтатусВозврата в 0, должны проходить дальнейшие операции с этим объектом, запись, проведение документа, открытие в режиме редактирования и т.д?

Хочу на этот обработчике построить контроль доступа по статусу документа.
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для Альфа
Ответ #22 - 23. Ноября 2017 :: 11:52
Печать  
frantsuz писал(а) 23. Ноября 2017 :: 08:40:
Возник вопрос:
Если в обработчике "ПриНачалеБлокировкиОбъекта", установить СтатусВозврата в 0, должны проходить дальнейшие операции с этим объектом, запись, проведение документа, открытие в режиме редактирования и т.д?

Хочу на этот обработчике построить контроль доступа по статусу документа.


Нет. Эта процедура вызывается уже после блокировки объекта. И только в случае успешной блокировки.
Т.е. если системе удалось заблокировать объект, то вызывается эта процедура.
  

FormEx developer
Наверх
www  
IP записан
 
frantsuz
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 23. Ноября 2017
Re: Для Альфа
Ответ #23 - 24. Ноября 2017 :: 02:36
Печать  
АЛьФ писал(а) 23. Ноября 2017 :: 11:52:
frantsuz писал(а) 23. Ноября 2017 :: 08:40:
Возник вопрос:
Если в обработчике "ПриНачалеБлокировкиОбъекта", установить СтатусВозврата в 0, должны проходить дальнейшие операции с этим объектом, запись, проведение документа, открытие в режиме редактирования и т.д?

Хочу на этот обработчике построить контроль доступа по статусу документа.


Нет. Эта процедура вызывается уже после блокировки объекта. И только в случае успешной блокировки.
Т.е. если системе удалось заблокировать объект, то вызывается эта процедура.


Понятно. А можно ли, каким то образом, из этой процедуры прервать выполнение дальнейших операций с объектом?
Например, мы захватили объект, прочитали его свойства и пришли к выводу, что этот объект изменять (записывать, проводить, открывать) нельзя. Как запретить все эти действия?
Изменения через интерфейс, при открытии формы объекта, с помощью Formex, контролировать достаточно просто. Универсальная обработка, там, вроде-бы, в 5 строчек всего...
А вот как контролировать доступ через программную обработку?
П.С. Я в курсе, что можно запрещать открытие внешних обработок. Просто ищу красивое решение.

  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для Альфа
Ответ #24 - 24. Ноября 2017 :: 11:05
Печать  
frantsuz писал(а) 24. Ноября 2017 :: 02:36:
АЛьФ писал(а) 23. Ноября 2017 :: 11:52:
frantsuz писал(а) 23. Ноября 2017 :: 08:40:
Возник вопрос:
Если в обработчике "ПриНачалеБлокировкиОбъекта", установить СтатусВозврата в 0, должны проходить дальнейшие операции с этим объектом, запись, проведение документа, открытие в режиме редактирования и т.д?

Хочу на этот обработчике построить контроль доступа по статусу документа.


Нет. Эта процедура вызывается уже после блокировки объекта. И только в случае успешной блокировки.
Т.е. если системе удалось заблокировать объект, то вызывается эта процедура.


Понятно. А можно ли, каким то образом, из этой процедуры прервать выполнение дальнейших операций с объектом?
Например, мы захватили объект, прочитали его свойства и пришли к выводу, что этот объект изменять (записывать, проводить, открывать) нельзя. Как запретить все эти действия?
Изменения через интерфейс, при открытии формы объекта, с помощью Formex, контролировать достаточно просто. Универсальная обработка, там, вроде-бы, в 5 строчек всего...
А вот как контролировать доступ через программную обработку?
П.С. Я в курсе, что можно запрещать открытие внешних обработок. Просто ищу красивое решение.



Через эту процедуру никак не получился.
Надо что-то другое придумывать.
  

FormEx developer
Наверх
www  
IP записан
 
frantsuz
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 23. Ноября 2017
Re: Для Альфа
Ответ #25 - 27. Ноября 2017 :: 03:28
Печать  
АЛьФ писал(а) 24. Ноября 2017 :: 11:05:
frantsuz писал(а) 24. Ноября 2017 :: 02:36:
АЛьФ писал(а) 23. Ноября 2017 :: 11:52:
frantsuz писал(а) 23. Ноября 2017 :: 08:40:
Возник вопрос:
Если в обработчике "ПриНачалеБлокировкиОбъекта", установить СтатусВозврата в 0, должны проходить дальнейшие операции с этим объектом, запись, проведение документа, открытие в режиме редактирования и т.д?

Хочу на этот обработчике построить контроль доступа по статусу документа.


Нет. Эта процедура вызывается уже после блокировки объекта. И только в случае успешной блокировки.
Т.е. если системе удалось заблокировать объект, то вызывается эта процедура.


Понятно. А можно ли, каким то образом, из этой процедуры прервать выполнение дальнейших операций с объектом?
Например, мы захватили объект, прочитали его свойства и пришли к выводу, что этот объект изменять (записывать, проводить, открывать) нельзя. Как запретить все эти действия?
Изменения через интерфейс, при открытии формы объекта, с помощью Formex, контролировать достаточно просто. Универсальная обработка, там, вроде-бы, в 5 строчек всего...
А вот как контролировать доступ через программную обработку?
П.С. Я в курсе, что можно запрещать открытие внешних обработок. Просто ищу красивое решение.



Через эту процедуру никак не получился.
Надо что-то другое придумывать.


Понял. Вышел из положения тем, что "ПриНачалеБлокировкиОбъекта" делаю бэкап данных объекта, потом, в случае чего, откатываюсь.
Спасибо.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Для Альфа
Ответ #26 - 27. Ноября 2017 :: 08:45
Печать  
Делай Перехватчиком в обработке события ПриОткрытии. Там вызывай функцию проверки и возращай 0, если нельзя что-либо делать с объектом.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
frantsuz
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 23. Ноября 2017
Re: Для Альфа
Ответ #27 - 27. Ноября 2017 :: 09:19
Печать  
alyuev писал(а) 27. Ноября 2017 :: 08:45:
Делай Перехватчиком в обработке события ПриОткрытии. Там вызывай функцию проверки и возращай 0, если нельзя что-либо делать с объектом.


Не отработает при программной записи документа.
По условию задачи, нужно было запретить редактирование документа по значению реквизитов через интерфейс и через (любую) обработку.
Постановка и решение задачи здесь:
http://source1s.ru/publ/1cv77/ogranichenie_dostupa_k_dokumentam_1s_predprijatie_....
С позволения модераторов, конечно...
  
Наверх
 
IP записан
 
artamir
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 57
Зарегистрирован: 03. Мая 2011
Re: Для Альфа
Ответ #28 - 11. Января 2018 :: 10:46
Печать  
frantsuz писал(а) 27. Ноября 2017 :: 09:19:
alyuev писал(а) 27. Ноября 2017 :: 08:45:
Делай Перехватчиком в обработке события ПриОткрытии. Там вызывай функцию проверки и возращай 0, если нельзя что-либо делать с объектом.


Не отработает при программной записи документа.
По условию задачи, нужно было запретить редактирование документа по значению реквизитов через интерфейс и через (любую) обработку.
Постановка и решение задачи здесь:
http://source1s.ru/publ/1cv77/ogranichenie_dostupa_k_dokumentam_1s_predprijatie_....
С позволения модераторов, конечно...


Мне кажется, что можно и через Событие_ОбработкаПроведения. Правда ПриНачалеРаботыСистемы приходится пользоваться обработкой, чтоб подключить перехват проведения на все документы.
Код (C++)
Выбрать все
Перем Информатор;

Функция гПолучитьПерехватываемыеДокументы()
	сРез="";

	Для й=1 По Метаданные.Документ() Цикл
		МетаДок=Метаданные.Документ(й);
		стрМетаДокВид=МетаДок.Идентификатор;
		сРез=сРез+"
		|	чикСобытийПроведения);";
	КонецЦикла;

	Возврат сРез;
КонецФункции

Процедура __ПодключитьПерехватчики()
	Перехватчик=СоздатьОбъект("Перехватчик");
	ПерехватчикСобытийГМОбъект=СоздатьОбъект("ТПерехватчик");
	Перехватчик.ПерехватитьСобытияГлобальногоМодуля(ПерехватчикСобытийГМОбъект);

	Модуль=СоздатьОбъект("ВыполняемыйМодуль");
	ТекстМодуля="
	|Процедура __ПодключитьПерехватчикиПроведения()
	|	Перехватчик=СоздатьОбъект(""Перехватчик"");
	|	ПерехватчикСобытийПроведения=СоздатьОбъект(""ТПерехватчик"");"
	+гПолучитьПерехватываемыеДокументы()+"
	|КонецПроцедуры";

	//Сообщить(ТекстМодуля);
	Модуль.НазначитьКонтекст(глВзятьКонтекст(Контекст));
	Модуль.УстановитьМодуль(ТекстМодуля);
	Модуль.КомпилироватьМодуль();
	Модуль.ВыполнитьМодуль();
	Модуль.ПрисоединитьТекущийМодуль();
	Модуль.__ПодключитьПерехватчикиПроведения();
КонецПроцедуры

Сообщить("Регистрация перехватчиков");

НастройкиВК = СоздатьОбъект("УправлениеНастройками");
НастройкиВК.Установить("ПерехватитьСобытияГК",1);
НастройкиВК.Установить("Отладка",0);

Информатор=СоздатьОбъект("Информатор");
лЭтотКонт=глВзятьКонтекст(Контекст);

__ПодключитьПерехватчики();

 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать