|
Вопрос по COM 7.7 - 8 | ☑ | ||
---|---|---|---|---|
0
DmitriyDI
10.06.14
✎
10:45
|
Есть отчет внешний на 7.7, есть база 8ки, вот я могу допустим получить из этого отчета внешнего через ком, таблицу значений которая на выходе и вернуть ее в 8ку, или придется весь код переписывать под 8ку и ком с 7кой?
не совсем понимаю просто, как лучше сделать |
|||
1
DmitriyDI
10.06.14
✎
10:46
|
и если могу, то как это сделать?
|
|||
2
ДенисЧ
10.06.14
✎
10:47
|
Я вот тоже не понимаю. Что ты хочешь сделать :-)
|
|||
3
DmitriyDI
10.06.14
✎
10:48
|
(2) выполнить все функции во внешней обработке из 7ки и через ком вернуть их результат в 8ку
|
|||
4
DmitriyDI
10.06.14
✎
10:48
|
(3) Их результатом будет ТЗ
|
|||
5
DmitriyDI
10.06.14
✎
11:07
|
Пришло осознание того что мне нужно, как мне запустить внешнюю обработку по кому?
|
|||
6
DmitriyDI
10.06.14
✎
11:09
|
(5) ОткрытьФормуМодально наверное
|
|||
7
vicof
10.06.14
✎
11:12
|
(6) Удачи.
(0) Данные нужно брать не из отчетов, а из регистров, справочников и документов |
|||
8
DmitriyDI
10.06.14
✎
11:15
|
(7) так отчет откуда данные берет)?
|
|||
9
hhhh
10.06.14
✎
11:41
|
(8) если отчет в результате выдает примитивные типы: число, строка. А если там ссылки на справочники, перечисления? Как ты результат будешь в восьмерке просматривать? Там этих справочников нет.
Поэтому отчет всё равно переписывать придется. |
|||
10
DmitriyDI
10.06.14
✎
11:44
|
(9) Да мне нужны примитивные типы там две строки и два числа,
делаю так Форма = База.ОткрытьФормуМодально("Отчет",,"C:\\Отчет.ert"); ТЗОтчета = Форма.Сформировать1(Парам1,Парам2); Но почему-то он просто открывает мне форму ( |
|||
11
del123
10.06.14
✎
11:45
|
Будь мужиком, перепиши обработку под восьмерку!
|
|||
12
DmitriyDI
10.06.14
✎
11:45
|
(10) Сам по себе отчет этот достаточно большой, много вычислений, и как-то не хочется все это тащить в 8ку
|
|||
13
del123
10.06.14
✎
11:47
|
Добавь в отчет функцию, которая будет тебе эту табличку возвращать
|
|||
14
DmitriyDI
10.06.14
✎
11:48
|
(13) да я добавил, см (10) Сформировать1 и возвращает
|
|||
15
del123
10.06.14
✎
11:52
|
проверь Парам1 и парам2, как в семерке эта функция выполняется
|
|||
16
DmitriyDI
10.06.14
✎
11:56
|
(15) просто открытьформумодально просто открывает эту форму у меня в 8ке, а я как думал что она просто будет брать из нее функции, может при открытии проверять на передачу параметра формы и написать статусвозврата(0) возврат?
|
|||
17
DmitriyDI
10.06.14
✎
12:00
|
Значение не является значением объектного типа (Сформировать1) ругается так
|
|||
18
del123
10.06.14
✎
12:03
|
функция экспортная?
|
|||
19
DmitriyDI
10.06.14
✎
12:03
|
(18) ага
|
|||
20
DmitriyDI
10.06.14
✎
12:05
|
может, как-то не так обращаюсь к функции 7рочной?
|
|||
21
DmitriyDI
10.06.14
✎
12:10
|
(20) в отладчике Форма =0 (число)
|
|||
22
DmitriyDI
10.06.14
✎
12:23
|
(21)мне кажется ошибка тут
Форма = База.ОткрытьФормуМодально("Отчет",,"C:\\Отчет.ert"); как-то по другому можно обратиться к форме отчета? |
|||
23
DmitriyDI
10.06.14
✎
12:28
|
(22) или как-то при открытии формировать эту ТЗ, и возвращать ее сразу, так можно, только куда ее вернуть не понятно
|
|||
24
kobzon
10.06.14
✎
12:30
|
Проще написать на 8-ке.
|
|||
25
dk
10.06.14
✎
12:30
|
в приоткрытии формируй и возвращай ТЗ обратно в параметр
--- примеры можешь посмотреть в печатных формах |
|||
26
DmitriyDI
10.06.14
✎
12:36
|
(25) спасибо, а где печатные формы найти?)
|
|||
27
DmitriyDI
10.06.14
✎
12:38
|
(24) не проще там 500 строчек кода
|
|||
28
DmitriyDI
10.06.14
✎
12:39
|
(27) а тут если получится в 20 уложиться можно, вместе с подключениями со всеми
|
|||
29
dk
10.06.14
✎
13:15
|
(26) каталог базы подкаталог prnforms
|
|||
30
Ёпрст
10.06.14
✎
13:21
|
открыл форму модально и еще чего -то ждёт после этого.
Ничего, лето большое.. к концу придёт осознание того, что пока форму не закроють, управление дальше не пойдёт..и весь код опосля открытьформумодально бесполезен. |
|||
31
Serginio1
10.06.14
✎
14:12
|
(30) Если внутри приОткрытии нет закрытия формы и передачи в Форма.Параметр нужного значения. Это семерочный подход.
Для 8 ки Ему нужно что типа такого ДляВнешнегоСоединения= Сервер.ВнешниеОбработки.Создать(ПутьКОбработке); Объект=ДляВнешнегоСоединения.ВычислитьВыражение("Документы.ЗаказПоставщику.СоздатьДокумент()"); |
|||
32
Serginio1
10.06.14
✎
14:20
|
(0) Тебе во внешнем отчете нужно прописать что то такое.
Процедура ПриОткрытии() Если ТипЗначенияСтр(Форма.Параметр)="СписокЗначений" Тогда Док=Форма.Параметр.Получить("Документ"); Форма.Параметр=ПолучитьДанныеДляВозврата(Док); Форма.Закрыть(); КонецЕсли; КонецПроцедуры И вызов соответственно Спз=СоздатьОбъект("СписокЗначений"); Спз.Установить("Документ",Докумен); расположениеФайла(путь,имя); ОткрытьФормуМодально("Отчет#",Спз,путь+ИмяОбработки_ert); Если ТипЗначенияСтр(спз)="СписокЗначений" Тогда |
|||
33
DmitriyDI
10.06.14
✎
14:26
|
(30) (32) так я же пишу
СписокЗначений = База.CreateObject("СписокЗначений"); СписокЗначений.ДобавитьЗначение(ВыбНачПериода); Форма = База.ОткрытьФормуМодально("Отчет",СписокЗначений,"С:\\Отчет.ert"); А в 7ке такой код Если Форма.Параметр.РазмерСписка()>0 тогда Форма.Параметр = Сформировать1(Форма.Параметр.ПолучитьЗначение(1)); Возврат; КонецЕсли; |
|||
34
DmitriyDI
10.06.14
✎
14:26
|
как мне получить этот параметр блин его)
|
|||
35
Serginio1
10.06.14
✎
14:29
|
Ну тут два варианта.
Первый Если ты читал то Форма.Параметр = Сформировать1(Форма.Параметр.ПолучитьЗначение(1)); Форма.Закрыть(); Второй если ты в процедуре приОткрытии Форма.Параметр = Сформировать1(Форма.Параметр.ПолучитьЗначение(1)); СтатусВозврата(0); Возврат; |
|||
36
DmitriyDI
10.06.14
✎
14:37
|
(35) написал по второму варианту, захожу в 8рочный отладчик смотрю чему равно Форма = 0 (число)
|
|||
37
Serginio1
10.06.14
✎
14:41
|
(36) А почему ты смотришь на форму а не на СписокЗначений?
|
|||
38
DmitriyDI
10.06.14
✎
15:54
|
(37) я заметил одну закономерность, если я пишу при открытии что-то, то он вообще форму не открывает
|
|||
39
Serginio1
10.06.14
✎
16:21
|
(38) А зачем тебе открытие формы?
В 7 ке нельзя вызвать метод формы. Поэтому извращаются через Форма.Параметр И соответственно, что бы был возврат сразу после выполнения устанавливают в Форма.Параметр нужное значение и закрывают форму |
|||
40
DmitriyDI
10.06.14
✎
16:31
|
(39) соответственно я не могу передать параметры если он вообще не открывает ее (такое ощущение, что просто обходит стороной)
|
|||
41
lex-kex
10.06.14
✎
16:38
|
При открытии 7-ой формы передавай туда 7-ый список значений
Список = База.NewObject("СписокЗначений") База.ОткрытьФорму("Отчет",Список,"С:\отчет.ert"); В 7.ке в этот список добавляй ответ, в список а затем в 8-ке получай его КомИз7ки = Список.ПолучитьЗначение(1); Что-то типа того |
|||
42
Serginio1
10.06.14
✎
17:10
|
(40) Как это не можешь?
Форма = База.ОткрытьФормуМодально("Отчет",СписокЗначений,"С:\\Отчет.ert"); СписокЗначений это и есть параметр. Обычно передается список значений. Только путь у тебя неправильный вроде как. Ты сначала из 7ки в отладчике посмотри что делается. А заодно проверь путь Фс.СуществуетФайл( |
|||
43
Serginio1
10.06.14
✎
17:11
|
Судя по "С:\\Отчет.ert"
должно быть "С:\Отчет.ert" |
|||
44
DmitriyDI
10.06.14
✎
17:27
|
(43) да это я так написал, отчет существует и он открывается даже если я при открытии ничего не пишу
|
|||
45
Serginio1
10.06.14
✎
18:00
|
Отладчик то что говорит?
|
|||
46
Serginio1
10.06.14
✎
18:01
|
Проверь сначала вызов из 7 ки без всяких оле
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |