Имя: Пароль:
1C
 
УФ. Открыть общую форму из серверного модуля
,
0 1CIlya
 
20.02.19
14:57
Здравствуйте, друзья!

Одним только заголовком провоцирую закидать себя помидорами, в таком случае подскажите, пожалуйста, как лучше сделать. В ЗУПе, при формировании регл. отчетности, много длинющих запросов, которые не понятно как отлаживать. Придумал простое решение:


Процедура ПоказатьВременныеТаблицы(МенеджерВременныхТаблиц) Экспорт
    
    ТабДок = НТХ_ПроцедурыИФункции.ВывестиВременныеТаблицы(МенеджерВременныхТаблиц);
    стПарам = Новый Структура("ТабличныйДокумент", ТабДок);
    
    ОткрытьФорму("ОбщаяФорма.НТХ_УниверсальныйОтчет", стПарам);
    
КонецПроцедуры


Ан, нет, непашед. Метода ОткрытьФорму() на сервере нет. Что делать?
1 SleepyHead
 
гуру
20.02.19
15:08
(0) Отладчик, подмена текста в запросе по кнопке F(x), просмотр временных таблиц. Это штатными методами.

В какой-то из консолей запросов есть функционал просмотра временных таблиц, поищи.
2 Fish
 
20.02.19
15:39
Отладка запросов в ЗУП - это боль. Сочувствую.
3 Cyberhawk
 
20.02.19
15:40
ИР в помощь, легко и непринужденно все получается
4 Радим1987
 
20.02.19
15:46
Создай общий модуль например "Отладка"



Функция Отладка(МенеджерВременныхТаблиц,Порядок = "") Экспорт
    
    Если Ложь Тогда
        МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    КонецЕсли;
    
    Структура = новый Структура;
    
    Для каждого Элемент Из МенеджерВременныхТаблиц.Таблицы Цикл       

    
        Запрос = Новый Запрос;
        Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
        Запрос.Текст =
        "ВЫБРАТЬ
        | *
        |ИЗ
        | ВремТаб КАК ВремТаб
        |
        |УПОРЯДОЧИТЬ ПО Порядок";
        
        Запрос.Текст = СтрЗаменить(Запрос.Текст,"ВремТаб",Элемент.ПолноеИмя);
        Если Порядок = "" тогда
            Запрос.Текст = СтрЗаменить(Запрос.Текст,"УПОРЯДОЧИТЬ ПО Порядок","");
        Иначе
            Запрос.Текст = СтрЗаменить(Запрос.Текст,"Порядок",Порядок);
        КонецЕсли;
        
        Структура.Вставить(Элемент.ПолноеИмя,Запрос.Выполнить().Выгрузить());
    
    КонецЦикла;

    Возврат Структура;
    
КонецФункции

5 Радим1987
 
20.02.19
15:47
вычислить выражение → отладка.отладка(запрос.менеджервремнныхтаблиц)
6 ДенисЧ
 
20.02.19
15:48
7 FIXXXL
 
20.02.19
15:50
(0) открывай общую форму с передачей параметра, Менеджер можно во ВременноеХранилище положить
ПриСозданииНаСервере читай Менеджер и вызывай свою процедуру...
8 Радим1987
 
20.02.19
15:51
9 TormozIT
 
гуру
20.02.19
15:53
10 1CIlya
 
20.02.19
16:16
(4),(5) Спасибо! Буду пробовать.
11 1CIlya
 
20.02.19
16:17
(7) Параметр я передам, спасибо. А общую форму как-нибудь с сервера можно открыть, чтобы она этот параметр обработала?
12 1CIlya
 
20.02.19
16:18
(9) Жесть! Я содрогнулся от облегчения отладки.
13 ДенисЧ
 
20.02.19
16:19
(11) Какая форма в серверном модуле??
14 1CIlya
 
20.02.19
16:20
В настоящее время я на сервере сохраняю ТабДок в файл и затем уже его открываю просмотрщиком файлов 1С.
15 1CIlya
 
20.02.19
16:21
(13) Чтобы понять о чем вопрос, нужно прочитать (7), (11).
16 FIXXXL
 
20.02.19
16:26
(14) первичный вызов должен идти с клиента и возвращать адрес хранилища, который передаешь с клиента параметром в общую форму
17 Вафель
 
20.02.19
16:28
временные можн опрям в отладчике смотреть
18 ADenPiter
 
20.02.19
16:30
Зачем такие сложности. Появилась же функция временной таблицы ПолучитьДанные(). Выбираешь в отладчике менеджер, в менеджере таблицу, приписываешь ПолучитьДанные().Выгрузить() и смотришь.
19 1CIlya
 
20.02.19
16:38
(18) Спасибо! Это с какой версии платформы?
20 Вафель
 
20.02.19
16:40
с 8.3.8
21 СвинТуз
 
20.02.19
16:41
(19)
ВыполнитьПакетСПромежуточнымиДанными()
22 СвинТуз
 
20.02.19
16:42
как дополнение к (18)
23 1CIlya
 
20.02.19
16:46
(20) Получилось. К сожалению, для ЗУП отладка по одной ВТ за раз не вариант. Перед глазами должна быть простыня с 10 ВТ, чтобы между ними легко перемещаться и смотреть, что куда попадает или не попадает.
24 ADenPiter
 
20.02.19
16:54
(23) Да отладка в ЗУП вообще ад. Но иногда такой способ позволяет увидеть в какой таблице проблема.
25 1CIlya
 
20.02.19
16:58
(24) Немного полегче, если делать как описано в (14).


Как же, все-таки эту форму открыть с сервера. На клиенте нет никакой типовой проверялки выполнения фоновых заданий, может таким путем пойти...
26 ADenPiter
 
20.02.19
17:01
(25) Клиент с сервера можно вызвать только системой взаимодействия, но с ней свой геморрой.
27 TormozIT
 
гуру
20.02.19
22:36
(12) Тяжело тебе будет в ЗУПе, если это кажется жестью.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс