Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Выполняемый модуль (число прочтений - 2271 )
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Выполняемый модуль
14. Августа 2008 :: 08:10
Печать  
Не могу разобраться с проблемой класса Выполняемый модуль:

1С++    v:2.5.0.7
FormEx v:2.0.5.92 beta

Есть 2 периферийные базы и центр. Настройка ЗиК 281 рел.
Есть документ  "Кадровое перемещение", на кнопке "Печать" весит вызов гл. процедуры -вспПечатьПриказов(Контекст)

=====ГМ=====
Процедура вспПечатьПриказов(Конт) Экспорт
     Интерфейс = СоздатьОбъект("ИнтерфейсКадры");
     Интерфейс.Печать(Конт);
КонецПроцедуры
=====ГМ=====

Вот метод Печать из класса "ИнтерфейсКадры"

Процедура Печать(Конт) Экспорт
     ВыбЗнач = "";
     Список  = СоздатьОбъект("СписокЗначений");
     Список.ДобавитьЗначение("Word", "Печать (Word)");
     Список.ДобавитьЗначение("1C"  , "Печать (1С)");
     
     If Список.ВыбратьЗначение(ВыбЗнач,, 1,,1) = 0 Then
           Возврат;
     EndIf;      
      
     If ВыбЗнач = "Word" Then                        
           ПечатьПриказа(Конт);
     Else      
           Модуль      = СоздатьОбъект("ВыполняемыйМодуль");                        
           Аргументы = СоздатьОбъект("СписокЗначений");
           Модуль.ВыполнитьПроцедуруКонтекста(Конт, "Печать", Аргументы);
     EndIf;      
КонецПроцедуры

Суть в следующем:
пользователю предлагается выбрать вариант печати приказа, либо "Word", либо стандартный "1С-й". Если "1С", то я обращаюсь к стандартрой процедуре печати из дока.
Проблема в том, что в одной базе это работает, а в другой не хочет. Как будто, какой-то другой контекст передается в метод класса.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выполняемый модуль
Ответ #1 - 14. Августа 2008 :: 08:31
Печать  
chessman писал(а) 14. Августа 2008 :: 08:10:
Есть документ  "Кадровое перемещение", на кнопке "Печать" весит вызов гл. процедуры -вспПечатьПриказов(Контекст)

Вот метод Печать из класса "ИнтерфейсКадры"

Процедура Печать(Конт) Экспорт
     Модуль.ВыполнитьПроцедуруКонтекста(Конт, "Печать", Аргументы);
КонецПроцедуры

И где логика?
Ты ведь пытаешься для контекста выполнить процедуру из модуля формы контекста Печать(), которой там нет Печаль
Т.е. твой баг.
Решение - либо переписывай код на вызов метода из ГМ (через ВыполнитьПроцедуруКонтекста не получится, делай через текст ВМ),
либо анализируй через ФормЕкс формулу кнопки Печать и через текст ВМ вызывай эту формулу.
  

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



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Выполняемый модуль
Ответ #2 - 14. Августа 2008 :: 09:24
Печать  
Как это ее там нет?
А как же это тогда работает в другой базе???
Через текст ВМ я делал изначально, такая же фигня- в одной базе все Ок, в другой не пашет.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выполняемый модуль
Ответ #3 - 14. Августа 2008 :: 09:35
Печать  
Я тебе ответил, исходя из твоих перечисленных условий.
Прочитай мой пред. пост еще раз и обрати внимание на свои фразы, что я оставил в цитате.!

У тебя не написано, что в модуле формы есть Печать(), у тебя написано, что на кнопке "Печать" сразу идет вызов метода из ГМ !!
  

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



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Выполняемый модуль
Ответ #4 - 14. Августа 2008 :: 09:46
Печать  
Ммм...я просто написал, что это стандартный релиз ЗиКа, думал, что этого будет достаточно.
Процедура печать там есть в форме каждого (почти) дока.

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выполняемый модуль
Ответ #5 - 14. Августа 2008 :: 09:53
Печать  
1. А просто Конт.Печать() работает вместо ВМ.ВыполнитьПроцедуруКонтекста ?
2. Проверь настройки Флаг = УправлениеНастройками.Получить("TurboBL")
Какое значение флага?
  

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



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Выполняемый модуль
Ответ #6 - 14. Августа 2008 :: 10:02
Печать  
artbear писал(а) 14. Августа 2008 :: 09:53:
1. А просто Конт.Печать() работает вместо ВМ.ВыполнитьПроцедуруКонтекста ?
2. Проверь настройки Флаг = УправлениеНастройками.Получить("TurboBL")
Какое значение флага?



Спасибо.
Заработало. Нужно было TurboBL включить.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать