Имя: Пароль:
1C
1С v8
Отладка МВТ в типовых конфигурациях
,
0 ildary
 
25.01.19
10:10
Уважаемые специалисты, подскажите пожалуйста, есть ли более простой способ при отладке смотреть содержимое таблиц у МенеджерВременныхТаблиц? Как это приходится делать сейчас - сначала узнается имя таблицы, а потом приходится под рукой держать строку МенеджерВременныхТаблиц.Таблицы.Найти("").ПолучитьДанные().Выгрузить(), где надо подставлять вместо "" имя этой таблицы. А поскольку например в кадровом учёте все данные гоняются через МВТ - то рука устает вставлять в отладчик новую строку с подменой.

Может есть способ проще? 1С 8.3.12 последняя.
1 Вафель
 
25.01.19
10:11
куда уж проще то?
2 Вафель
 
25.01.19
10:12
есть консоли с отложененой отладкой
3 Мыш
 
25.01.19
10:12
(0) Обычно пишут свою функцию и помещают её в общий модуль.
4 ildary
 
25.01.19
10:14
(1) хочется сразу в отладчике, разворачивая МВТ - пыкнуть мышкой и нажать f2.

(2) про консоли знаю, только вот столкнулся, что почему то они не всегда справляются.

(3) это будет ничем не проще (0), разве что длина строки меньше будет.
5 Мыш
 
25.01.19
10:16
(4) Как напишешь. Можно сразу все вычислить и в структуру их
6 Вафель
 
25.01.19
10:18
может турбокофигуратор умеет, ну или можно заказать такую фишку ему
7 ildary
 
25.01.19
10:19
(5) а вообще это хорошая идея для расширения. Получив список имен таблиц МВТ - получить содержимое таблиц в ТЗ и сохранить в структуру.

(6) тоже вариант.

Спасибо за идеи!
8 ildary
 
25.01.19
10:31
Вот вариант, без регистрации и смс:

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

&НаСервере
Процедура Команда1НаСервере()
    
    МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    
    ТекстЗапроса =
    "ВЫБРАТЬ
    |    Валюты.Ссылка КАК Ссылка
    |ПОМЕСТИТЬ ВременнаяТаблица
    |ИЗ
    |    Справочник.Валюты КАК Валюты";

    Запрос = Новый Запрос(ТекстЗапроса);
    Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ТаблицыМВТ = ТаблицыМВТ(МенеджерВременныхТаблиц);
    
КонецПроцедуры
9 vvp91
 
25.01.19
10:39
Для ЕРП2/УТ11/КА2 все уже украдено:
ОбщегоНазначенияУТ область МетодыДляОтладкиИТестирования
Методы:
ЗапросВыполнитьВыгрузить
ПоказатьВременнуюТаблицу
СохранитьТаблицуЗначенийВФайл
ТабличныйДокументИзТаблицыЗначений
ПолучитьТаблицуЗначенийИзФайла
СравнитьТаблицыЗначений
10 impulse9
 
25.01.19
10:43
(0) постоянно ругают, что мол на мисте постоянно отправлять юзать поиск
Но, чел, реально, нажми на Я в правом верхнем углу, мне лично 6 пунктом вышла большая статья от курсы-по-1с.рф, где прямо разжевано для начинающих
11 ildary
 
25.01.19
10:48
(10) я выше написал, что знаю все эти фокусы и статью эту читал, но меня утомило каждый раз вставлять имя таблицы в отладчике руками. Мой способ проще - один раз вставил в отладчик одну строку - и она всегда тебе будет показывать все таблицы, только мышкой развернуть осталось.
12 Ёпрст
 
25.01.19
10:52
(0) закинь свой запрос в Инструменты Разработчика и сымотри..
13 ildary
 
25.01.19
11:00
(12) мне нужно в отладчике конфигуратора.
14 VladZ
 
25.01.19
11:08
(0) Что за конфигурация? На платформу 8.3.8 (а лучше на последнюю) нельзя перейти?

И смотреть командой ВыполнитьПакетСПромежуточнымиДанными().
15 d4rkmesa
 
25.01.19
11:10
(0) Неужели так напрягает циферку менять?
16 vis_tmp
 
25.01.19
11:12
Вообще, ощущается недостаточность штатного инструментария Конфигуратора.
17 Мыш
 
25.01.19
11:21
(16) ЕДТ ждёт вас с распростертыми объятьями )
18 impulse9
 
25.01.19
11:24
(17) нормальный ЕДТ пока не завезли
19 ildary
 
25.01.19
11:56
(15) какую цифру можно менять, если в МВТ есть две таблицы, одна называется ВТСтажСотрудниковДляКакойтоФигни а вторая ВТСотрудникиПолучавшиеВычетПриЦареГорохе. Я решил посмотреть первую таблицу и взяв готовый шаблон МенеджерВременныхТаблиц.Таблицы.Найти("").ПолучитьДанные().Выгрузить() - заменил "" на "ВТСтажСотрудниковДляКакойтоФигни" - и увидел что тут всё в порядке и мне нужна вторая таблица. Закрываем окно переменных, копируем в буфер имя второй таблицы из редактора и заменяем имя таблицы у предыдущего поиска (Ctrl лево спасает, конечно). И так весь день...

(17) Где версия 1.10, в которой обещана нормальная скорость?
20 ildary
 
25.01.19
11:57
(14) Это если запрос под рукой есть, иногда в процедуре есть только МВТ.
21 Hans
 
25.01.19
12:03
вбей в общий модуль или сделай расширение. У меня расширение. процедура покажет все таблицы в МВТ

Функция ПолучитьМенеджерВременныхТаблиц(МенеджерВременныхТаблиц) Экспорт
    
    Структура = Новый Структура;
    Для Каждого Таблица Из МенеджерВременныхТаблиц.Таблицы Цикл
        
        РезультатЗапроса = Таблица.ПолучитьДанные().Выгрузить();
        КоличествоСтрок = РезультатЗапроса.Количество();
        
        ИмяТаблицы = Таблица.ПолноеИмя;
        Структура.Вставить(ИмяТаблицы + "___КолСтр_" + Формат(КоличествоСтрок,"ЧДЦ=0; ЧН=; ЧГ="), РезультатЗапроса);
        
    КонецЦикла;
    
    Возврат Структура;
    
КонецФункции
22 ildary
 
25.01.19
12:10
(21) Спасибо за идею с количеством строк.
23 Мыш
 
25.01.19
12:27
(22) Можно ещё колонки вытащить )
24 Buster007
 
25.01.19
13:07
МенеджерВременныхТаблиц.Таблицы.["ИмяТаблицы"].ПолучитьДанные().Выгрузить()
1 раз написал в табло и используй сколько влезет.
можно еще по индексу таблицы также получать данные
Проблема высосана из пальца
25 Sasha_1CK
 
25.01.19
13:17
(0)
МенеджерВременныхТаблиц.Таблицы[0].ПолучитьДанные().Выгрузить()
МенеджерВременныхТаблиц.Таблицы[1].ПолучитьДанные().Выгрузить()
...

так не проще?
Конечно отлаживать запрос например книги покупок или продаж - один хрен устанешь - но по крайней мере никуда из окна откладки бегать туда сюда не надо.
Уж циферку можно и руками сменить без копипаста.
26 Ns33
 
25.01.19
13:27
И в развитие темы, а как можно передать отладку ВТ из конфигуратора в предприятие?
Я сохраняю ЗначениеВСтрокуВнутр(Запрос.Параметры), а потом преобразую обратно в немного модифицированной консоли запросов из инструментов разработчика. Но тут нужен весь запрос.
А стандартных инструментов для передачи МВТ нет?
27 d4rkmesa
 
25.01.19
13:37
(19) А, ну см. (25) тема раскрыта. Кстати, всегда думал, что проще по имени, а тут вот оно что.
28 ildary
 
25.01.19
14:15
(24) читайте (0) прежде чем отвечать не глядя. Таблиц - много и копипастить их за день очень утомляет.

(25) это что за угадайка - а если таблицы по колонкам почти одинаковы?

(26) на инфостарте есть консоль, которая умеет сохранить из отладчика как готовый текст запроса и его параметры. Но она не справляется, если запрос основан на временной таблице из МВТ.
29 ildary
 
25.01.19
14:17
Господа, предлагающие МенеджерВременныхТаблиц.Таблицы.блаблабла.ПолучитьДанные().Выгрузить()  - вы пробовали сами в комплексной хотя бы денёк так поотлаживать? Да, способ рабочий, но геморный. Вот в (22) - прямо палочка выручалочка получилась.
30 Xapac
 
25.01.19
14:17
(0)Бери мою консоль. на инфостарте.
31 vis_tmp
 
25.01.19
14:24
(17)Чур, чур, чур! )
32 ildary
 
25.01.19
14:49
(30) Спасибо, а можно ссылку?
33 Xapac
 
25.01.19
14:52
34 ildary
 
25.01.19
14:54
Ошибка! Публикация неактивна или находится на модерации.
35 Xapac
 
25.01.19
14:58
(34)незнаю она с июля на модерации. Видимо Инфострат очень хорошо работает) отправил повторно
36 Xapac
 
25.01.19
15:24
(34)Лови на почту скинул
37 TormozIT
 
гуру
25.01.19
15:27
(26) Стандартных нет, но есть же От/ОтЛкс в ИР. Че, ее не хватает?
38 TormozIT
 
гуру
25.01.19
15:28
(4) Когда не справляются? Можно пример?
39 ildary
 
25.01.19
15:35
(38) я говорю не про консоль запросов ИР (которая мне очень нравится, но я привык работать в тонком клиенте), а про другую - http://catalog.mista.ru/public/335504
40 ildary
 
25.01.19
15:36
(36) большое спасибо, попробую.