Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Баг - Сервис.ВыполнитьФункцию портит Контекст (число прочтений - 11089 )
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Баг - Сервис.ВыполнитьФункцию портит Контекст
23. Июня 2008 :: 09:21
Печать  
Во вложении - два внешних отчета.
test_class1.ert - просто отчет, к-й пытается вызвать функцию Расчет() из формы внешего отчета test_class2.ert
test_class2.ert - попытка реализации класса. В форму при открытии передается список значений с параметрами, с указанием значений переменных и функции к-ю надо вызвать.

Из-за вызова метода Сервис.ВыполнитьФункцию() в форме test_class2.ert, вылезает ошибка в форме test_class1.ert - "Не найден файл "Таблица"". По-видимому что-то происходит с контекстом.

Для проверки закомментируйте строку с Сервис.ВыполнитьФункцию() в форме test_class2.ert и раскомментируйте предыдущую строку.
  

EXTFORMS.7z ( 9 KB | Загрузки )
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #1 - 23. Июня 2008 :: 09:46
Печать  
Версия ФормЕкс ?
Используешь 1С++ или ТурбоБЛ ? Какие версии?
Используешь ТурбоМД? Какая версия?
  

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



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #2 - 23. Июня 2008 :: 19:03
Печать  
Из внешних компонент используются:
Formex 2.0.5.86
RBrowser
v7plus

Потестите у себя: распакуйте отчеты в папку EXTFORMS и запустите отчет test_class1.ert
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #3 - 23. Июня 2008 :: 19:27
Печать  
blindvic писал(а) 23. Июня 2008 :: 09:21:
Из-за вызова метода Сервис.ВыполнитьФункцию() в форме test_class2.ert, вылезает ошибка в форме test_class1.ert - "Не найден файл "Таблица"". По-видимому что-то происходит с контекстом.

По-видимому он ищет файл "Таблица" в контексте другой обработки. Это достаточно распространенное поведение 1С-а.

P.S. Сильно не вчитывался, ибо полагаю, что тестовый случай должен быть значительно короче.
P.P.S. Не понял, зачем пытаться реализовывать класс, если они уже реализованы в 1С++? Если это чисто академический интерес, то опять же посоветую для начала ставить эксперименты без печатных форм.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #4 - 24. Июня 2008 :: 04:16
Печать  
Поищи по форуму "StartBatch"
да, цель создания классов непонятна Печаль
ведь все уже есть в 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: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #5 - 24. Июня 2008 :: 04:21
Печать  
fez писал(а) 23. Июня 2008 :: 19:27:
По-видимому он ищет файл "Таблица" в контексте другой обработки. Это достаточно распространенное поведение 1С-а.

Да, это не баг именно ФормЕкс, а поведение 1С.
Ищи выше, как я написал.
  

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



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #6 - 24. Июня 2008 :: 07:37
Печать  
Да ладно, класс или не класс...
Мне нужно выполнить функцию другого внешнего отчета не зная заранее ее имени и передать результат ее выполнения в вызвавшую форму.
В оригинальной версии в обеих обработках была таблица с именем "Таблица", тем не менее ошибка вылезала.

Если эта баг 1С, а не формекс, тогда почему при комментировании строчки с Сервис.ВыполнитьФункцию() все нормально вызывается и находится?

П.С. Не хочу устанавливать1с++. Мне достаточно формекс пока что
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #7 - 24. Июня 2008 :: 08:46
Печать  
blindvic писал(а) 24. Июня 2008 :: 07:37:
Да ладно, класс или не класс...
Мне нужно выполнить функцию другого внешнего отчета не зная заранее ее имени и передать результат ее выполнения в вызвавшую форму.

1С++. Делегат.
  
Наверх
www  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #8 - 24. Июня 2008 :: 08:56
Печать  
Зачем мне 1С++, если в формекс есть Сервис.ВыполнитьФункцию()  Озадачен
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #9 - 24. Июня 2008 :: 09:42
Печать  
artbear писал(а) 24. Июня 2008 :: 04:16:
Поищи по форуму "StartBatch"

Еще раз Печаль
  

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



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #10 - 24. Июня 2008 :: 11:13
Печать  
Цитата:
Поищи по форуму "StartBatch"


Цитата:
Система=СоздатьОбъект("Система");
Система.StartBatch(Конт);


Не понял. Это метод объекта Система?
Он есть в Формекс?

И все-таки, это баг или не баг?
Это баг формекс или 1с? Вы видели текстовые обработки? По-моему это баг формекс.
При чем здесь StartBatch?
У меня есть только формекс.


Прошу не пинать ногами и не посылать читать маны. Просто нету времени перечитывать весь форум.

Что мне сделать, чтобы после вызова Сервис.ВыполнитьФункцию() все работало как надо?
Устанавливать 1с++? А другие варианты?
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #11 - 24. Июня 2008 :: 12:14
Печать  
blindvic писал(а) 24. Июня 2008 :: 11:13:
Вы видели текстовые обработки?


Видел.

Цитата:
Сервис<<?>>.ВыполнитьПроцедуру(Контекст,
{D:\TEST_CLASS2.ERT(32)}: Переменная не определена (Сервис)
Сервис<<?>>.ВыполнитьФункцию(Контекст, Прав(Идентификатор, СтрДлина(Идентификатор) - 7 - 1), Значение, Параметры);
{D:\TEST_CLASS2.ERT(36)}: Переменная не определена (Сервис)
Поле агрегатного объекта не обнаружено (КоличествоСтрок)


P.S. Вместо
Код
Выбрать все
ОткрытьФормуМодально("Отчет", Параметры, КаталогИБ() + "extforms\test_class2.ert"); 


Лучше писать

Код
Выбрать все
Путь = "";Имя = "";
РасположениеФайла(Путь, Имя);
ОткрытьФормуМодально("Отчет", Параметры, Путь + "test_class2.ert"); 


Тогда твои обработки смогут лежать в любом каталоге, главное чтобы рядом.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #12 - 24. Июня 2008 :: 12:18
Печать  
blindvic писал(а) 24. Июня 2008 :: 11:13:
Прошу не пинать ногами и не посылать читать маны. Просто нету времени перечитывать весь форум.

Тогда будь любезен, создай тест, который, во-первых, будет рабочим, а во-вторых, в котором не будет ничего такого, что не имело бы отношения к твоей проблеме. Времени не хватает не у тебя одного.
  
Наверх
www  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #13 - 24. Июня 2008 :: 12:20
Печать  
blindvic писал(а) 24. Июня 2008 :: 11:13:
Устанавливать 1с++?

устанавливать? Улыбка
Установочный диск, драйвера, долгий прогрессбар? Улыбка

Епрст, тебе долго подключить компоненту, и попробовать что советуют люди?
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Баг - Сервис.ВыполнитьФункцию портит Контекст
Ответ #14 - 24. Июня 2008 :: 12:27
Печать  
fez писал(а) 24. Июня 2008 :: 12:18:
blindvic писал(а) 24. Июня 2008 :: 11:13:
Прошу не пинать ногами и не посылать читать маны. Просто нету времени перечитывать весь форум.

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


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