Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста (число прочтений - 4492 )
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
21. Февраля 2007 :: 03:25
Печать  
Решил попробовать:
Код
Выбрать все
Док=СоздатьОбъект("Документ."+СокрЛП(Объект));
Док.ВыбратьДокументы(НачДата,КонДата);
Пока Док.ПолучитьДокумент()=1 цикл
   Сообщить(Модуль.ВыполнитьПроцедуруКонтекста(Док,ИмяПроцедуры,Параметры));
КонецЦикла;
 


Сообщает 0, т.е.
Цитата:
1, если процедура существует, или 0, если нет.

Что делаю не так, что не допонял?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #1 - 21. Февраля 2007 :: 05:57
Печать  
у объекта "Документ" нет нужных тебе методов!
ИМХО они есть у модуля формы нужного тебе документа.
  

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



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #2 - 21. Февраля 2007 :: 06:30
Печать  
как быть в ситуации когда нужно выполнить именно процедуру формы документа? без передачи Контекста, т.е. не открытая форму... ни как? Нерешительный
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #3 - 21. Февраля 2007 :: 06:34
Печать  
Конечно, никак.
Откуда 1С и 1С++ получат данные о нужном модуле в этом случае? Печаль
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #4 - 21. Февраля 2007 :: 06:34
Печать  
DionX писал(а) 21. Февраля 2007 :: 06:30:
как быть в ситуации когда нужно выполнить именно процедуру формы документа?

Инкапсулируй нужный метод в класс и все будет ок Улыбка
  

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



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #5 - 21. Февраля 2007 :: 07:13
Печать  
ээээээ! мы простых путей не ищем! Очень довольный
ситуация такова, что я щас на новом месте работы. Тут есть конфа, написанная моим начальником. Он её в основном и сопровождает. Я к ней только отчетики клепаю да так по маленьку. Он (автор) на 1с++ ни хочет (старой закалки), несмотря на то, что я специально один его документ периписал, он стал перепроводится за 5 сек (реальных 4-8 секунд по замерам) вместо 40-50 минут в "его стиле" (тут конечно дело не только в 1с++ но и в программисте Класс). Хотя и мне пользоваться 1с++ не запрещает. Вот и получается, что мне плодить одинаковые куски кода не хосца, а переделать доки - тоже не могу. Хотел использовать такой выход.... ан нет....  Плачущий
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #6 - 21. Февраля 2007 :: 07:16
Печать  
Я же тебе говорю - оформи куски нужного кода в класс и используй не для формы, а для конкретного документа в любых отчетах/обработках, сами документы при этом можно не менять Улыбка
  

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



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #7 - 21. Февраля 2007 :: 07:29
Печать  
Хорошо... объясняю ещё "круче" Подмигивание
Например такая ситуация.
Есть например, некие разные процедурки почти в каждом документе (для каждого дока разные!), которые перерасчитывают многие (могут быть 10-ки!) реквизиты ТЧ в зависимости от введенных данных как в сам документ, так и в другие документы. Процедурки давольно длинные и замороченные, куча коэфициентов и тп.
Возникают ситуации, в конце месяца чуть ли не обязаловка, перерасчитать все строки во всех доках за период.
Нужно написать обработку, чтоб все это перерасчитывалось автоматом, а не приходилась бегать пользователю по всем докам и тыкать по всем строкам.
Мой замысел был написать класс, передаещь в него вид дока, период, название процедурки, -бац и готово.
Сделать как ты - не проблемма, но опять же возникает по два разных места сущестования одинакового алгоритма на каждую процедуру. (в доке и в классе)
А так как кофу сопровождает автор, алгоритмы могут менятся, мне прийдётся править свои классы за ним. Конечно же возникнут отстования и тп.
Если вставить эти же классы в доки - он откажется, так как просто не хочет разбираться в новом для себя. Вот такая хрень  Нерешительный Смущённый
  
Наверх
ICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #8 - 21. Февраля 2007 :: 07:37
Печать  
artbear писал(а) 21. Февраля 2007 :: 06:34:
Конечно, никак.
Откуда 1С и 1С++ получат данные о нужном модуле в этом случае? Печаль


Я, конечно, не знаю "внутренностей", но разве если передавать не просто Док, а Док.ТекущийДокумент() - нельзя понять для какого объекта выполнить нужную процедуру? Но а из какого модуля... Дык... можно было бы или просто произвести поиск нужной процедуры по всем модулям или программисту передавать в качестве доп. параметра - где искать. Или я что-то гоню не то?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #9 - 21. Февраля 2007 :: 08:14
Печать  
Ну если не хочешь плодить код, тогда цикл по докам и в цикле открывать нужную форму, выполнять нужный метод, записывать и проводить док и все.
Медленно, но надежно, и подходит тебе по всем параметрам, кроме скорости.
  

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



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #10 - 21. Февраля 2007 :: 08:20
Печать  
видимо прийдётся )))))
  
Наверх
ICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #11 - 21. Февраля 2007 :: 15:09
Печать  
Давайте, все же, добавим определение класса из текста модуля формы документа. И вообще из чего угодно.

Жаль, что у констант и перечислений нет модулей.  Подмигивание
  
Наверх
 
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #12 - 22. Февраля 2007 :: 01:05
Печать  
sedmin писал(а) 21. Февраля 2007 :: 15:09:
Давайте, все же, добавим определение класса из текста модуля формы документа. И вообще из чего угодно.

Жаль, что у констант и перечислений нет модулей.  Подмигивание

да, помню подымалась такая тема... В моём случае бы это помогло  Подмигивание
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ВыполняемыйМодуль::ВыполнитьПроцедуруКонтекста
Ответ #13 - 22. Февраля 2007 :: 03:25
Печать  
sedmin писал(а) 21. Февраля 2007 :: 15:09:
Давайте, все же, добавим определение класса из текста модуля формы документа. И вообще из чего угодно.

Я же тебе говорил, сделай, а там посмотрим.
Вдруг понравится Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать