Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) ТП+Запрос - как замена Журналов в 1с (число прочтений - 12062 )
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
ТП+Запрос - как замена Журналов в 1с
21. Мая 2009 :: 05:49
Печать  
Народ, кто нить делал подобное?
ну в смысле журнал я написал, все работает не плохо, НО есть такие вещи к которым юзер привык и это панель сверху, действия по правой кнопки мыши (с картинками) и разные клавиши на клавиатуре, которые имеются в журнале и создают удобную работы с ним.

Кто нить реализовывал скажем точно такое же меню как в родном журнале по правой кнопке мыши? тоесть с картинкаим и т.д.?
Есть примеры?
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #1 - 21. Мая 2009 :: 08:16
Печать  
У меня сделан универсальный журнал документов (ТП + 1SQLite), выглядит примерно так:
  

_______-____________________.png ( 177 KB | Загрузки )
_______-____________________.png
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #2 - 21. Мая 2009 :: 08:38
Печать  
я так понимаю в контекстном меню там галка стоит на фильтре - это картинка? если да, то как сделал? Подмигивание
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #3 - 21. Мая 2009 :: 08:48
Печать  
не, не картинка, используется метод "ВыбратьЗначение" объекта "Сервис" из FormEx
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #4 - 21. Мая 2009 :: 08:50
Печать  
хм, а картинку никак туда? Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #5 - 21. Мая 2009 :: 08:57
Печать  
CaBaT,
а тулбар это отдельная компонента какая-то или тоже FormEx?Улыбка
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #6 - 21. Мая 2009 :: 09:38
Печать  
pavlo писал(а) 21. Мая 2009 :: 08:50:
хм, а картинку никак туда? Печаль

Почему никак?
Как. В том же методе ВыбратьЗначение.
  
Наверх
ICQ  
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #7 - 21. Мая 2009 :: 09:48
Печать  
alexdd писал(а) 21. Мая 2009 :: 08:57:
CaBaT,
а тулбар это отдельная компонента какая-то или тоже FormEx?Улыбка

Тулбар - это ActiveX микрософтовский "MSComctlLib.Toolbar"
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #8 - 21. Мая 2009 :: 09:53
Печать  
CaBaT писал(а) 21. Мая 2009 :: 09:48:
alexdd писал(а) 21. Мая 2009 :: 08:57:
CaBaT,
а тулбар это отдельная компонента какая-то или тоже FormEx?Улыбка

Тулбар - это ActiveX микрософтовский "MSComctlLib.Toolbar"

Круто! СпасибоУлыбка
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #9 - 21. Мая 2009 :: 10:01
Печать  
Единственно, чем он мне не очень нравится - инициализируется долго, форма журнала из-за него открывается медленно..
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #10 - 21. Мая 2009 :: 10:32
Печать  
в свете борьбы за скорость этот тулбар, конечно не лучшее для меня Улыбка

по поводу картинок, в выбратьзначение() нельзя передать группу картинок? иначе для каждой объект создавать и каждую хранить где-нить жуткова-то Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #11 - 21. Мая 2009 :: 11:14
Печать  
pavlo писал(а) 21. Мая 2009 :: 10:32:
в свете борьбы за скорость этот тулбар, конечно не лучшее для меня Улыбка

по поводу картинок, в выбратьзначение() нельзя передать группу картинок? иначе для каждой объект создавать и каждую хранить где-нить жуткова-то Печаль


Почему же группу картинок нельзя?
Внимательно читаем доку по этому методу.
  
Наверх
ICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #12 - 25. Мая 2009 :: 06:12
Печать  
осталось надыбать человеческий инструмент, чтобы выбрать из с штатные картинки и собрать по быстрому (без гемора) библу картинок для Формекса Улыбка
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #13 - 27. Мая 2009 :: 05:36
Печать  
Вот еще пример журнала на ТП:
http://www.rikcenter.ru/solutions.php
п. 3.
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #14 - 27. Мая 2009 :: 08:50
Печать  
Сделал меню по правой кнопке, классно получилось.
но вот с действиями блин попал Улыбка
простые тип открыть, новый без проблем.
с пометкой на удаление приходится заранее позиционироваться не смотря на имение объекта из ТП.
А теперь пакасное:
1. при пометке на удаление или еще чего, в общем не срабатывают родные глобальные Предопределенные процедуры Печаль и чего то не соображу как сделать, ведь процедуры не возвращают статусов можно или нельзя удалять, а в коде может быть все что угодно. Доп писать не будет нормальной обратной совместимости Печаль

Никто не заморачивался?
« Последняя редакция: 27. Мая 2009 :: 10:05 - pavlo »  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #15 - 27. Мая 2009 :: 09:57
Печать  
ну может покопать в сторону перехватчика, у него есть методы "ВыполнитьОригинальноеСобытие.."
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #16 - 27. Мая 2009 :: 10:10
Печать  
CaBaT писал(а) 27. Мая 2009 :: 09:57:
ну может покопать в сторону перехватчика, у него есть методы "ВыполнитьОригинальноеСобытие.."

хм, но он просто вызывает его, в принципе я и процедуру вручную могу вызвать. Проблема в том, что я не знаю в итоге дала предопределенная (например: пометить объект) или нет.
тоесть статусВозврата(0) там мог быть.
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Brr
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 142
Зарегистрирован: 26. Декабря 2006
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #17 - 27. Мая 2009 :: 13:07
Печать  
Анализируй статус возврата
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #18 - 27. Мая 2009 :: 14:30
Печать  
создай новую функцию, перенеси тудой тело штатной процедуры (ессественно скорректировав), и вызывай функцию из штатной процедуры, и из своего журнала перед изменением состояния дока
гдето так
  
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #19 - 27. Мая 2009 :: 14:34
Печать  
villy писал(а) 27. Мая 2009 :: 14:30:
создай новую функцию, перенеси тудой тело штатной процедуры (ессественно скорректировав), и вызывай функцию из штатной процедуры, и из своего журнала перед изменением состояния дока
гдето так


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

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #20 - 27. Мая 2009 :: 14:42
Печать  
все это какие?
ПриУдаленииДокумента
ПриИзмененииВремениДокумента
ПриОтменеПроведенияДокумента

не так многа
  
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #21 - 28. Мая 2009 :: 04:53
Печать  
villy писал(а) 27. Мая 2009 :: 14:42:
все это какие?
ПриУдаленииДокумента
ПриИзмененииВремениДокумента
ПриОтменеПроведенияДокумента

не так многа


ну я там универсальный делаю, так что еще приУдаленииЭлемента

В общем ввожу статус возврата в 1 и вызываю эти предопределенные и проверяя этот статус могу отслеживать что и как, вроде пашет Улыбка
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #22 - 28. Мая 2009 :: 05:01
Печать  
странную вещь обнаружил Улыбка
Код
Выбрать все
объект=ТП.ТекущиеДанные.Получить("Документ");
объект2=СоздатьОбъект("Документ");
объект2.НайтиДокумент(объект);
 


Так вот чтобы пометить на удаление или распровести документ работает только объект2 - как бы логично, только тут спозиционировано на документе.
Но не понятно почему не работает (хотя объект реально есть) ОткрытьФорму(объект2,,0), тогда как ОткрытьФорму(объект,,0) - работает! Улыбка
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #23 - 28. Мая 2009 :: 07:31
Печать  
может надо объект2.ТекущийДокумент()?
п.с.: ато не понятно что открыть-то Улыбка
  
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #24 - 28. Мая 2009 :: 07:48
Печать  
villy писал(а) 28. Мая 2009 :: 07:31:
может надо объект2.ТекущийДокумент()?
п.с.: ато не понятно что открыть-то Улыбка


в том то и дело, как пометить на удаление, так понятно, а как открыть нет Улыбка там же курсор спозиционирован на этом объекте Улыбка и потом если это объект просто там тоже нет .ТекущийДокумент() однако знает, что открыть. Улыбка

.ТекущийДокумент() конечно работает, но странно
если отладчиком смотреть и в одном и другом случае она точно знает что за агрегатный объект и в той и другой переменной.
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #25 - 28. Мая 2009 :: 08:38
Печать  
CaBaT писал(а) 27. Мая 2009 :: 09:57:
ну может покопать в сторону перехватчика, у него есть методы "ВыполнитьОригинальноеСобытие.."

Насколько я помню, я делал так, чтобы этот метод/функция сразу возвращал статус возврата после выполнения обработчика события.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #26 - 28. Мая 2009 :: 09:43
Печать  
по моему так и есть, почему я и посоветовал думать в эту сторону Улыбка
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #27 - 28. Мая 2009 :: 12:29
Печать  
pavlo писал(а) 28. Мая 2009 :: 07:48:
в том то и дело, как пометить на удаление, так понятно, а как открыть нет Улыбка там же курсор спозиционирован на этом объекте Улыбка и потом если это объект просто там тоже нет .ТекущийДокумент() однако знает, что открыть. Улыбка

.ТекущийДокумент() конечно работает, но странно
если отладчиком смотреть и в одном и другом случае она точно знает что за агрегатный объект и в той и другой переменной.

объект это ссылка на док, а объект2 это никак не ссылка. в формаОткрыть нужно передать ссылку а не сам объект "и точка" Подмигивание.

ОткрытьФорму(<Документ>,<КонтекстФормы>,<РежимПросмотра>)
...
Параметры:
<Документ> - выражение со значением типа 'документ';
...


ТекущийДокумент()
Назначение:
Возвращает значение позиционированного текущего документа.


  
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #28 - 28. Мая 2009 :: 12:56
Печать  
ну и ответ в чем? Подмигивание понятно что спозиционированного, а ТП какой возвращает?
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #29 - 29. Мая 2009 :: 09:58
Печать  
в том что в формаОткрыть нужно передать ссылку а не сам объект.
ты же пишешь что у тя не работает:
Код
Выбрать все
объект=ТП.ТекущиеДанные.Получить("Документ");
объект2=СоздатьОбъект("Документ");
объект2.НайтиДокумент(объект);
ОткрытьФорму(объект2,,0); 


не работает т.к. вместо ОткрытьФорму(объект2,,0) нужно писать ОткрытьФорму(объект2.ТекущийДокумент(),,0)

п.с.: в ТП хранится ссылка а не объект.
  
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #30 - 29. Мая 2009 :: 12:40
Печать  
хм, думал что ТП объект возвращает Улыбка ну тогда все само собой ясно становится Улыбка
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #31 - 03. Июня 2009 :: 03:53
Печать  
не могу найти как вызвать еще вот из конкретного документа предопределенную процедуру (например: ВводНового(1)) Как то слыхал через форму, но не пойму если форма не открыта, как вызвать не понятно.

И вообще реально сделать фишку (аналог 1с) копировать?
просто сейчас я копирую один в один, осталось добить процедуру вводнового(1) и вроде не плохо, НО в родной можно скопировать и открыть копию документа не записав его еще и если что отказаться, тогда как в моем случае ОткрытьФорму() можно только со ссылками на уже записанные объекты Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #32 - 03. Июня 2009 :: 04:42
Печать  
Через метаданные + ПолучитьАтрибут  всё копируется влёт...
Не забываеем только про реквизиты неопределенного типа (если они есть, конечно)
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #33 - 03. Июня 2009 :: 04:48
Печать  
Eprst писал(а) 03. Июня 2009 :: 04:42:
Через метаданные + ПолучитьАтрибут  всё копируется влёт...
Не забываеем только про реквизиты неопределенного типа (если они есть, конечно)


ты видишь, что я написал? я не писал что проблема копирования, я писал
1. что нужно запустить предопределенную процедуру документа.
2. попытаться скопировать все и открыть форму документа не записывая заранее сам документ, как сама 1с это делает!
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #34 - 03. Июня 2009 :: 05:16
Печать  
1.ПредОпределенная процедуру можешь запустить в классе Перехватчик
2.Открыть форму нового документа и  через контекст открытой формы можно заполнить всё что угодно.

ЗЫ: можно и штатно: открыть журнал, спозиционироваться на документе и нажать F9 скриптом.
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #35 - 03. Июня 2009 :: 06:11
Печать  
Eprst писал(а) 03. Июня 2009 :: 05:16:
1.ПредОпределенная процедуру можешь запустить в классе Перехватчик
2.Открыть форму нового документа и  через контекст открытой формы можно заполнить всё что угодно.

ЗЫ: можно и штатно: открыть журнал, спозиционироваться на документе и нажать F9 скриптом.


1. Если я правильно понимаю Перехватчик перехватывает родные события, а если родное и не сработало? Улыбка
2. придется тогда в каждый документ приоткрытии() добавлять обработку этой контекста Улыбка - ну тут вопрос не точный, нужно попробовать Подмигивание
3. тема про ТП-Журнал, попробуй в ТП нажать F9 Улыбка
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #36 - 03. Июня 2009 :: 06:38
Печать  
Не понимаю, в чем проблема у тебя вообще ?
Ловишь F9 , делаешь ОткрытьФорму(Документ.НужныйВид,Конт);
Через Конт заполняешь все реквизиты, если нужно, то в перехватчиком перехватываешь событие ВВодНового и в нём выполняешь оригинальное  ВВодНового с параметрами объект копирования и флагом копирования и всё..
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #37 - 03. Июня 2009 :: 06:45
Печать  
я вот не понимаю 1с.
есть программные аналоги интерактивных действий: ввод нового, ввод на основании, а вот копирования нет Печаль

ps
что, сложно было сделать?
ведь она умеет заполнять реквизиты копированием объекта.
нужно было только вынести это в програминтерфейс
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #38 - 03. Июня 2009 :: 06:54
Печать  
вот и приходится прикручивать этот "цирк" с перебором мд и перекладыванием значенией реквизитов.
дык еще и без 1с++ доступа нет к интерфейсу модуля контекста
  

1&&2&&3
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #39 - 03. Июня 2009 :: 06:56
Печать  
Eprst писал(а) 03. Июня 2009 :: 06:38:
Не понимаю, в чем проблема у тебя вообще ?
Ловишь F9 , делаешь ОткрытьФорму(Документ.НужныйВид,Конт);
Через Конт заполняешь все реквизиты, если нужно, то в перехватчиком перехватываешь событие ВВодНового и в нём выполняешь оригинальное  ВВодНового с параметрами объект копирования и флагом копирования и всё..


Ааа ну понятно Улыбка о чем ты, ну F9 мне не нужно, люди пользуются мышью - но не суть...
перехватчиком если честно не понятно, что перехватывать если оно не срабатывает, а вот через контекст все заполнить и вызвать процедуру в том числе пашет на ура.
Так что удалось запустить Подмигивание
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #40 - 03. Июня 2009 :: 07:00
Печать  
ВводНового, даже если он не описан в модуле формы документа, будет "ловится" перхватчиком всегда...
И в нём, можешь уже оригинальное событие вызвать..
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #41 - 03. Июня 2009 :: 07:16
Печать  
Eprst писал(а) 03. Июня 2009 :: 07:00:
ВводНового, даже если он не описан в модуле формы документа, будет "ловится" перхватчиком всегда...
И в нём, можешь уже оригинальное событие вызвать..


док=СоздатьОбъект("Документ.Накладная");
док.Новый();

сработает процедура ВводНового() ? Улыбка
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #42 - 03. Июня 2009 :: 07:27
Печать  
Нет. Перехватываются интерактивные предопределеные события формы
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #43 - 03. Июня 2009 :: 07:30
Печать  
blindvic писал(а) 03. Июня 2009 :: 07:27:
Нет. Перехватываются интерактивные предопределеные события формы

я то знаю, вопрос был риторический Подмигивание
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #44 - 03. Июня 2009 :: 07:37
Печать  
Ну ё.. ты же не программно делаешь Новый , а интерактивно через ОткрытьФорму - вот там и  поймаешь..
Улыбка
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #45 - 03. Июня 2009 :: 07:48
Печать  
Eprst писал(а) 03. Июня 2009 :: 07:37:
Ну ё.. ты же не программно делаешь Новый , а интерактивно через ОткрытьФорму - вот там и  поймаешь..
Улыбка

Взависимости от подхода мог и программно Улыбка а на счет ловить зачем? если она и так срабатывает тогда, если интерактивно Улыбка мне подменять ничего не нужно Подмигивание
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #46 - 03. Июня 2009 :: 07:55
Печать  
А вот тут ты ошибаешься, если ты делаешь новый документ через
ОткрытьФорму, то ПризнакКопирования в в Ввод нового будет =0..
А если там прописаны спец. действия при ПризнакКопирования =1 ?
Например, лишние реквизиты "занулить" или нумер хитрый или...

Вот тогда и нужно будет перехватить и выполнить ВВодНового(1,ОбъектКопирования)
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #47 - 03. Июня 2009 :: 08:09
Печать  
Eprst писал(а) 03. Июня 2009 :: 07:55:
А вот тут ты ошибаешься, если ты делаешь новый документ через
ОткрытьФорму, то ПризнакКопирования в в Ввод нового будет =0..
А если там прописаны спец. действия при ПризнакКопирования =1 ?
Например, лишние реквизиты "занулить" или нумер хитрый или...

Вот тогда и нужно будет перехватить и выполнить ВВодНового(1,ОбъектКопирования)


У меня так вообще то работает Подмигивание
кф="";
ОткрытьФорму("Документ.Накладная",кф);
.......
кф.ВводНового(1);
кф.Форма.Обновить();

Другое дело что возможно сработает 2 раза ВводНового(), но это в моем случае не принципиально Подмигивание
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #48 - 03. Июня 2009 :: 08:27
Печать  
а вот как получить ГК не понятно для перехватчика Печаль причем еще не понятно то, как работает снятьПерехватСобытийГК() Печаль
у меня же параллельно перехватываются события для записи в журнал изменений и если здесь снять, интересно настройка "ПерехватитьСобытияГК" тоже снимется и снова нужно ставить в управлениенастройками.включить("ПерехватитьСобытияГК")?
интересно вообще как себя поведут 2 объекта Перехватчика, один локальный и конкретный, а другой глобальный (для журнала изменений) пашет.
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #49 - 03. Июня 2009 :: 09:01
Печать  
К сожалению, ты периодически путаешься с терминологией.
Например, события формы документа (ВводНового и куча др.) и события контекста документа (только 2 события по проведению и его отмене.

А сейчас ты путаешь отключение перехвата одного, конкретного группового контекста (т.е. формы) и отключение всего перехвата на уровне сеанса 1С. Это совершенно разные и несвязанные вещи.
Поэтому при использовании СнятьПерехватСобытийГК() никакой другой перехват не будет выключен, все будет штатно работать, настройка ВК также не снимется Улыбка
Сам подумай, если бы снималось все, какой был бы дурдом в использовании Перехватчика.

Проблем с получением ГК при перехвате нет. Просто запоминай этот ГК в своем классе-перехватчике в момент установки перехвата как атрибут класса/объекта-перехватчика, а потом юзай в любых событиях, которые перехватываются данным классом.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #50 - 03. Июня 2009 :: 09:18
Печать  
Артур, я так понимаю этот код все равно постоянно делать?
Код
Выбрать все
УпрНастр = СоздатьОбъект("УправлениеНастройками");
УпрНастр.Сбросить("Отладчик");
УпрНастр.Включить("ПерехватитьСобытияГК");
 



и ниже я так понял что то вроде этого? только не понятно что ставить вместо "ГК" всмысле откуда получить этот ГК в моем случае, просто или я чего-то путаю или не понимаю малость Печаль Просто например у меня есть уже класс по записи изменений в журнал и там срабатывает событие_Вводнового(), в итоге получается еще один класс мутить для этого одного действия, причем редко используемого?

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

  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #51 - 03. Июня 2009 :: 09:36
Печать  
pavlo писал(а) 03. Июня 2009 :: 09:18:
Артур, я так понимаю этот код все равно постоянно делать?
Код
Выбрать все
УпрНастр = СоздатьОбъект("УправлениеНастройками");
УпрНастр.Сбросить("Отладчик");
УпрНастр.Включить("ПерехватитьСобытияГК");
 


Ты мой ответ читал или все-таки нет??
УправлениеНастройками отвечает за работу ВСЕЙ 1С++ в течение сеанса 1С !!
Конкретный перехват на конкретную форму здесь совершенно ни при чем !
Приведенный тобой код нужно включать при загрузке 1С++, чтобы исключить глюки с реестром на клиентских машинах, и самое главное, включить возможность любого перехвата с помощью Перехватчика !

pavlo писал(а) 03. Июня 2009 :: 09:18:
и ниже я так понял что то вроде этого? только не понятно что ставить вместо "ГК" всмысле откуда получить этот ГК в моем случае, просто или я чего-то путаю или не понимаю малость Печаль

Код
Выбрать все
Перехватчик=СоздатьОбъект("Перехватчик");
Перехватчик.ПерехватитьСобытияГК(ГК); !! НЕВЕРНО - читай доку
Перехватчик.ВыполнитьОригинальноеСобытиеГК(ГК,"ВводНового",);
Перехватчик.СнятьПерехватСобытийГК(ГК);
 


Как правило, код установки перехвата используется в 2-х вариантах:
1. внешний код устанавливает перехват на объект-класса перехватчика.
Перехватчик.ПерехватитьСобытияГК(ГК, ОбъектПерехватчик);

2. или сам перехват вызывается внутри объекта-перехватчика, а внешний код вызывает спец.метод этого объекта.
внешний код - Типа ОбъектПерехватчик.УстановитьПерехват(ГК);
а внутри метода УстановитьПерехват(парамКонтФормы) в классе написано
Перехватчик.ПерехватитьСобытияГК(ппарамКонтФормы, вирт());

Для обоих случаев ты просто добавляешь переменную _КонтФормы (или _ГК) в модуль класса как приватный атрибут класса.
Перем _КонтФормы;

Далее для случая 2 - перед/после установкой перехвата ты сохраняешь переданный тебе ГК в нужную переменную _КонтФормы.
_КонтФормы = ГК;

Для случая 1 аналогичный код должен выполнить внешний код, что сложнее Печаль

Поэтому, как правило, методически правильно реализовывать именно метод/вариант 2 !

Далее внутри своего класса-перехватчика уже можно юзать
Перехватчик.ВыполнитьОригинальноеСобытиеГК(_КонтФормы,"ВводНового",);
или
Перехватчик.СнятьПерехватСобытийГК(_КонтФормы);

ЗЫ если нужно снимать перехват событий конкретного контекста из внешнего кода, то, как правило, лучше в классе реализовать спец.метод типа СнятьПерехват(), внутри которого написано все тот же код
Перехватчик.СнятьПерехватСобытийГК(_КонтФормы);
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #52 - 03. Июня 2009 :: 09:44
Печать  
Ну и главное, что нужно помнить при работе с Перехватчиком, что

наш собственный объект-обработчик перехвата событий группового контекста работает всегда только с одним групповым контекстом (контекстом формы, контекстом документа), а не с их кучей/списком/набором

Т.е. строгая связь один-к-одному.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #53 - 03. Июня 2009 :: 09:51
Печать  
Возможно, при разработке интерфейса Перехватчика и пользовательских классов-обработчиков перехвата ГК мне нужно было больше внимания уделить этой связи и четко ее выделить.
Например, можно было бы сделать так -
любой класс-обработчик перехвата ГК должен иметь спец.атрибут _КонтФормы, в которую при вызове Перехватчик.УстановитьПерехватСобытийГК( ГК ) сама ВК 1С++ и должна была автоматически записать переданный контекст.

Т.е. если такого атрибута в классе нет или он описан как экспортный, то при установке перехвата выдается исключение.

Я не пошел по такому пути, потому что этот вариант ограничивал разработчиков, я предпочитаю максимально гибкие варианты с минимумом ограничений.

Сейчас уже интерфейс Перехватчика не изменишь Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #54 - 03. Июня 2009 :: 10:03
Печать  
Мне лично просто не нравится подход в моем случае, то есть мне нужно определить перехватчик - это понятно, передать ГК - если просто Контекст можно, а не групповой тут понятно тогда.
А вот делать отдельный класс, для того чтобы там просто сделать одно действие в виде ВыполнитьОригинальное.... дико смущает и напрягает.
В итоге просто получится везде где есть перехватчик и свои действия, нужен свой класс для отработки Печаль ну да можно совместить классы, если не используются один и те же события, но не суть.... главное что дупить классы с одинаковыми событиями приходится если я правильно понял...

На счет идеи того, чтобы перехватчик сам ГК давал понял, и понял что уже переделать не имеет смысла.
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #55 - 03. Июня 2009 :: 10:16
Печать  
Вот ничего ты, похоже, не понял Печаль
Попробуй пояснить свои мысли!

pavlo писал(а) 03. Июня 2009 :: 10:03:
Мне лично просто не нравится подход в моем случае, то есть мне нужно определить перехватчик - это понятно, передать ГК - если просто Контекст можно, а не групповой тут понятно тогда.

Это ты про что??

Цитата:
А вот делать отдельный класс, для того чтобы там просто сделать одно действие в виде ВыполнитьОригинальное.... дико смущает и напрягает.

Я разве про это писал?

Цитата:
В итоге просто получится везде где есть перехватчик и свои действия, нужен свой класс для отработки Печаль ну да можно совместить классы, если не используются один и те же события, но не суть.... главное что дупить классы с одинаковыми событиями приходится если я правильно понял...

И это поясни, нифига не понятно.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #56 - 03. Июня 2009 :: 11:09
Печать  
эти все непонятности видать от того, что я не совсем понимаю как это пашет Улыбка
1.  не могу до конца понять где я могу получить ГК, если есть только простой контекст у меня? Улыбка
2. чтобы перехваченное событие отработать, нужно ведь класс свой создать с событиями скажем событие_вводНового() и там делать нужные вещи и потом там же отдать обработку родному событию?
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #57 - 03. Июня 2009 :: 11:28
Печать  
pavlo писал(а) 03. Июня 2009 :: 11:09:
эти все непонятности видать от того, что я не совсем понимаю как это пашет Улыбка
1.  не могу до конца понять где я могу получить ГК, если есть только простой контекст у меня? Улыбка
2. чтобы перехваченное событие отработать, нужно ведь класс свой создать с событиями скажем событие_вводНового() и там делать нужные вещи и потом там же отдать обработку родному событию?

1. Пойми, что родной контекст и групповой контекст - это разные вещи.
Родной контекст у тебя - это ведь контекст Документа ? СоздатьОбъект("Документ.Накладная", верно?
А ГК - это форма этого документа.
В общем случае, из обычного контекста невозможно получить ГК.
Например, поэтому, имея только обычный контекст, нельзя вызвать его событие ВводНового, т.к. нет ГК.

Чтобы получить ГК объекта, нужно открыть форму этого объекта как минимум.

2. Чтобы перехваченное событие отработать, нужно установить перехват на созданный объект класса-обработчика перехвата.
В этом классе должны быть обработчики событий типа Событие_ВводНового.
И уже в этом классе, а точнее, в обработчике нужного события можно выполнить спец.действия для этого события, и отдать управление родному обработчику события из модуля формы ГК.

А создавать отдельные классы на каждое событие или нет, зависит от твоей задачи.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #58 - 03. Июня 2009 :: 13:00
Печать  
в данном случае задача одна, просто перехватить ВводНового() и передать ему ВводНового(1) и все Улыбка
По поводу ГК я так и понимал что ГК не есть Контекст, отсюда и не понимаю как я получу этот ГК Улыбка
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+Запрос - как замена Журналов в 1с
Ответ #59 - 04. Июня 2009 :: 07:05
Печать  
trad писал(а) 03. Июня 2009 :: 06:45:
я вот не понимаю 1с.
есть программные аналоги интерактивных действий: ввод нового, ввод на основании, а вот копирования нет Печаль

ps
что, сложно было сделать?
ведь она умеет заполнять реквизиты копированием объекта.
нужно было только вынести это в програм интерфейс


Таких вопросов обычно много, но ни на один 1с сама не посчитала возможным ответить или не внятно что то ответили и забыли.... Печаль
  

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