Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Получить текст модуля (число прочтений - 7483 )
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Получить текст модуля
Ответ #15 - 12. Марта 2009 :: 16:08
Печать  
PVR писал(а) 12. Марта 2009 :: 11:55:
Цитата:
...

Помоги себе, перейди на v3  Улыбка

поддерживаю
  
Наверх
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Получить текст модуля
Ответ #16 - 02. Мая 2009 :: 16:43
Печать  
1С++ 2.5.0.7 и 2.5.0.8 
Код
Выбрать все
	Конт = Сам.ПолучитьКонтекстОкружения();  
	ВМ = СоздатьОбъект("Информатор");
	ТМ = ВМ.ПолучитьТекстМодуля(Конт);
 

1С падает.
Код
Выбрать все
	ВМ = СоздатьОбъект("ВыполняемыйМодуль");
	ВМ.НазначитьКонтекст(Конт);
	ТМ = ВМ.ПолучитьТекстМодуля();
 

Выдает пустую строку.
Как все-таки получить текст чужого модуля? На какой версии работает ?
  

Константин
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получить текст модуля
Ответ #17 - 05. Мая 2009 :: 08:29
Печать  
Я же вроде только для 3 версии делал? Улыбка
  

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


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Получить текст модуля
Ответ #18 - 06. Мая 2009 :: 12:56
Печать  
А реально ли получать модуль проведения документа?
Поясню для чего.
В случае с модулем проведения гарантировано не будут использоваться реквизиты формы. Зато имея текст модуля можно слегка поколдовав сделать внешнее проведение документа. Или реализовать частичное перепроведение (что мне, собственно говоря, и нужно).
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получить текст модуля
Ответ #19 - 06. Мая 2009 :: 18:00
Печать  
Частичное перепроведение можно организовать штатным способом. ОбработкеПроведения можно задавать входные параметры, а уж внутри делать "Если".
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получить текст модуля
Ответ #20 - 07. Мая 2009 :: 08:54
Печать  
classic писал(а) 06. Мая 2009 :: 12:56:
А реально ли получать модуль проведения документа?
Поясню для чего.
В случае с модулем проведения гарантировано не будут использоваться реквизиты формы. Зато имея текст модуля можно слегка поколдовав сделать внешнее проведение документа. Или реализовать частичное перепроведение (что мне, собственно говоря, и нужно).

Юзай перехватчик и твой код станет супер-мощным Улыбка
Не будешь извращаться с другими подходами.
  

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


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Получить текст модуля
Ответ #21 - 08. Мая 2009 :: 09:39
Печать  
artbear писал(а) 07. Мая 2009 :: 08:54:
Юзай перехватчик и твой код станет супер-мощным Улыбка
Не будешь извращаться с другими подходами.

Ну, не всегда топором можно сделать то, что нужно делать отверткой.
Дано: есть база, в ней два вида учета. Бух и Фин. Проводки по фин учету как правило, стороятся на основании данных бух учета, но не всегда. Зато всегда построение проводок фин. учета лежит в процедуре "ПроводкиФин".
Задача: не меняя проводок по бух учету перепровести все документы (или только заданные, по выбору) в фин. учете.

Я, конечно, выкрутился - я создал справочник, в котором хранится текст процедуры "проводки фин" для нужных видов документов, и через выполняемый модуль их перепровожу. Получилось и бысто, и удобно (для пользователя). А для меня - нет. Это мне помнить нужно при изменении процедуры, что ее нужно обновить в справочнике.
Был бы доступ к тексту модуля проведения - выдрать из него текст процедуры с заданным названием - тривиальная задача. А универсальность бы повысилась.

Мотжет, мне фантазии не хватает? Как то же самое можно реализовать через Перехватчик?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получить текст модуля
Ответ #22 - 08. Мая 2009 :: 10:19
Печать  
Раз стоит подобная задача, то наверняка у тебя выполнено следующее:
1. автоудаление движений документов запрещено.
2. подобное перепроведение ты делаешь с помощью спец.обработки.
Иначе проводки по БУ будут удалены, да еще косяки будут.

Если эти пункты верны, то внутри этой обработки можно делать так:
1. для всех видов документов, которые обрабатываем, выполняем перехват событий проведения.
2. запускаем перепроведение.
3. при получении управления объектами-перехватчиками событий проведения просто выполняем необходимый код из модуля документа через контекст модуля, т.е.
контМодуляПроведения.ФинПроводки()
Соответственно, у тебя автоматом не вызовется родной модуль проведения и не будет никаких проблем с БУ.

Все Улыбка
Никакого дублирования инфы в этом случае нету.

PS где-то на форуме я подобную схему уже описывал вроде Улыбка
  

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


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Получить текст модуля
Ответ #23 - 10. Мая 2009 :: 14:18
Печать  
У меня все еще проще получилось - проводки по ФУ - они на справочниках. И при перепроведении обработкой метод Провести() у документа НЕ вызываетсяУлыбка. Процедура ПроводкиФин удаляет "движения" текущие, и создает новые.
Из-за невозможности из перехваченной процедуры "ОбработкаПроведения" управлять автоудалением проводок я и не стал делать вызов процедуры через контекст...
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получить текст модуля
Ответ #24 - 12. Мая 2009 :: 10:30
Печать  
classic писал(а) 10. Мая 2009 :: 14:18:
У меня все еще проще получилось - проводки по ФУ - они на справочниках. И при перепроведении обработкой метод Провести() у документа НЕ вызываетсяУлыбка. Процедура ПроводкиФин удаляет "движения" текущие, и создает новые.
Из-за невозможности из перехваченной процедуры "ОбработкаПроведения" управлять автоудалением проводок я и не стал делать вызов процедуры через контекст...

Понимаешь, у тебя фактически отсутствует ключевое "перепровести документы", поэтому и сама схема получилась проще Улыбка
А вот если бы именно с перепроведением, то уже было бы не так все просто.
  

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