Имя: Пароль:
1C
 
БСП отчеты - как определить какой отчет открыт (открыть в конфигураторе)
,
0 RomaH
 
naïve
01.04.21
08:45
Собственно - встроенные отчеты (в конфигурации) и доп отчеты - внешние файлы

у отчетов куча вариантов отчетов - названия пишут пользователи
читая СКД (нет выполняемого кода)

вот звонит пользователь - открыт отчет - что-то надо исправить - как определить что за отчет открыт?
1 acht
 
01.04.21
08:51
Какая хорошая первоапрельская тема.

Спросить пользователя, если не сможет объяснить откуда он это взял - значит оно ему и не надо.
2 dka80
 
01.04.21
08:53
Справа три точки вертикальные - Информация для технического специалиста
3 RomaH
 
naïve
01.04.21
09:09
(2) о - это для встроенных отчетов
остались дополнительные - там такого нет
4 dka80
 
01.04.21
09:13
С дополнительными все проще - просто спроси у пользователя. Потому что со встроенными отчет может называться "супер отборка", а на самом деле это один из вариантов строенного отчета "мегаотчет"
5 RomaH
 
naïve
01.04.21
09:18
(4) что спросить?
пользователь открывает из панели отчетов - "Отчет имени Ивана Васильевича", а на самом дела это внешний отчет "СреднееПоМаксимумам"
6 acht
 
01.04.21
09:19
(5) >  что спросить?
Порядок действий, который пользователь совершал для достижения результата. Ваш К.О.
7 RomaH
 
naïve
01.04.21
09:22
(6) ты БСП вообще видел - иди мальчик отсюда, не мешай взрослым дядям разговаривать
8 RomaH
 
naïve
01.04.21
11:02
нашел идентификатор я только тут:
https://ibb.co/tH7Pr5V

только костыль в общую форму? или этот идентификатор можно в типовой увидеть?
9 Mikeware
 
01.04.21
11:09
(1) хы... "он у меня под звездочкой!!!"
10 Mikeware
 
01.04.21
11:10
(8) поищи в справочнике Отчеты
11 RomaH
 
naïve
01.04.21
11:12
(10) что искать? еще раз - ты же сам пишешь в (9)
у пользователя отчет "под звездочкой" "Отчет имени Ивана Ивановича"

я подключаюсь к рабочему столу пользователя вижу этот открытый отчет
как найти его в конфигураторе?
12 Kassern
 
01.04.21
11:16
(11) Смотришь, куда юзверг нажал, чтобы открыть отчет. Ставишь точку останова у себя и нажимаешь на этот отчет, а дальше прыгаешь по процедурам и находишь куда обращается 1ска, чтобы его открыть. Профит...
13 Mikeware
 
01.04.21
11:19
14 Mikeware
 
01.04.21
11:20
(12) тоже вариант. Но если юзверг нажал у себя "под звездочкой", то только под его сеансом смотреть..
15 Kassern
 
01.04.21
11:20
(12) а на будущее, умные люди придумали справку, создаешь внешний отчет и пишешь в справке, что за отчет и откуда ноги растут и будет тебе счастье
16 Kassern
 
01.04.21
11:20
(15) надо хоть немного документировать доработки в том числе и отчеты...
17 RomaH
 
naïve
01.04.21
11:21
(12) это надо зайти в администрирование, установить пользователю вход по паролю
из конфигуратора выполнить запуск под пользователем .. долго и печально

(13) а как в этот список попасть из формы отчета?
18 Kassern
 
01.04.21
11:21
(17) а разве нельзя тупо в конфигураторе подключить сеанс юзверга в отладку?
19 Mikeware
 
01.04.21
11:24
(17) из формы отчета - никак. а найти по названию, которое отображается - можно
20 FIXXXL
 
01.04.21
11:24
(11) пользователи сами варианты накручивают-сохраняют?
21 Mikeware
 
01.04.21
11:27
(20) еще как... более того, дошли уже до такого ТЗ:
Еще есть одна задача, её решение тоже может сохранить ресурс времени, в результате ускорить в целом выполнение процессов.

Когда я получаю очередную задачу по составлению отчета, обычно я не знаю, будет это единоразовый запрос или он станет регулярным.
Я мог бы сохранять каждый вариант отчета с настройками, которые бы я для него делал, но работать с вариантами отчетов в текущем интерфейсе неудобно.

Все варианты одного отчета вываливаются неструктурированным списком, их могут быть сотни. Их уже сотни.
По названию тоже не всегда удобно ориентироваться.

Нужно сделать следующее:
Создать структурированное хранилище вариантов отчетов на месте кнопки перебора листа вариантов отчетов.
Дать возможность создавать в нем папки, называть их.
Создавать папки с автоматически сохраненными вариантами отчетов с указанием даты создания. - система может чистить те, к которым не обратился пользователь спустя некоторое время, например, в течение недели.
22 Mikeware
 
01.04.21
11:28
+(21) "я уже джва года хочу..."  :-)
23 FIXXXL
 
01.04.21
11:34
(21) ну ссылку справочник ВариантыОтчетов храни сбоку в каком придумаешь виде и показывай как надо :)
24 Kassern
 
01.04.21
11:34
(17) ладно, так уж и быть научу тебя магии)
Жмякаешь на значок "Получить ссылку", копируешь ссылку на отчет.
У себя можешь создать обработку и там написать что то типа:
&НаКлиенте
Процедура Пуск(Команда)
    ПерейтиПоНавигационнойСсылке(Ссылка);
КонецПроцедуры
Поставить точку останова и посмотреть откуда вызывается отчет)
25 Kassern
 
01.04.21
11:35
(24) тут полюбому можно еще поковырять и выдать уже имя отчета внешнего
26 FIXXXL
 
01.04.21
11:40
(25) в форме элемента справочника ВариантыОтчетов ИзменитьФорму и галки на Родитель и группу Техническая информация
27 Dmitry77
 
01.04.21
11:42
У либо о отчета есть уникальная ссылка. Просишь её прислать тебе У пользователя.
28 FIXXXL
 
01.04.21
11:44
(27) ему в конфигураторе нужен очет
29 Kassern
 
01.04.21
11:47
(28) а что мешает в конфигураторе перейти по ссылке и найти, что за отчет?
30 Mikeware
 
01.04.21
11:50
(23) это переписывать типовой механизм придется.
или я туплю и чего-то не понял?
31 FIXXXL
 
01.04.21
11:51
(30) ну не сильно, добавить менюху свою в общую форму, обработчики сохранения вариантов подогнуть
32 FIXXXL
 
01.04.21
11:52
(29) по какой ссылке?
33 Mikeware
 
01.04.21
11:53
(32) по присланной...
(31) я смотрел - многовато получалось.
сказал, что "зашито в платформу"... в общем, "тактично послал"...
34 Kassern
 
01.04.21
11:54
(32) у любой открытой формы есть ссылка в 1с. К примеру "e1cib/data/Справочник.ВариантыОтчетов?ref=b2670cc47aaa3e5611e94b0cb5208d3e" с помощью процедуры ПерейтиПоНавигационнойСсылке можно в конфигураторе глянуть куда 1ска долбится чтобы открыть данную форму. В данном случае, какой отчет запускает
35 RomaH
 
naïve
01.04.21
12:10
костыль:
ОтчетыПереопределяемый:

Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
    
    Форма.НавигационнаяСсылкаОтчета = ПолучитьНавигационнуюСсылку(Форма.Параметры.Отчет);
    
    НоваяКоманда = Форма.Команды.Добавить("ПерейтиПоНавигационнойСсылкеОтчета");
    НоваяКоманда.Действие = "ПерейтиПоНавигационнойСсылкеОтчета";//Имя процедуры
    НоваяКоманда.Заголовок = "Перейти к отчету";
    
    НовыйЭлемент = Форма.Элементы.Добавить("ПерейтиПоНавигационнойСсылкеОтчета",
                                     Тип("КнопкаФормы"),
                                     Форма.Элементы.ГруппаПрограммныйИнтерфейс);
    НовыйЭлемент.ИмяКоманды = "ПерейтиПоНавигационнойСсылкеОтчета";    
    
    НовыйЭлемент.ПоложениеВКоманднойПанели = ПоложениеКнопкиВКоманднойПанели.ВДополнительномПодменю;
    
КонецПроцедуры

в модуле формы ФормаОтчета добавить:
&НаКлиенте
Процедура ПерейтиПоНавигационнойСсылкеОтчета(Команда)
    
    ПерейтиПоНавигационнойСсылке(НавигационнаяСсылкаОтчета);
    
КонецПроцедуры


... можно конечно переопределить навигационную ссылку формы - но тогда ссылку на вариант отчета будет сложно послать
а так пользователь шлет навигационную варианта - а я уже перехожу либо в ИдентификаторыОбъектовМетаданных
либо в Доп обработки и отчеты
36 Dmitry77
 
01.04.21
12:14
(34) есть меню перейти по ссылке. И замер производительности в отладчике.
37 RomaH
 
naïve
01.04.21
12:17
+(35) надо еще реквизит формы программно добавить
"НавигационнаяСсылкаОтчета"

Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
    
    ДобавляемыеРеквизиты    = Новый Массив;
        
    // Опишем ревизиты формы
    НавигационнаяСсылкаОтчета = Новый РеквизитФормы("НавигационнаяСсылкаОтчета",    Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(200)));
        
    // Заполним массив после описания реквизитов формы
    ДобавляемыеРеквизиты.Добавить(НавигационнаяСсылкаОтчета);
        
        // Добавим новые реквизиты в форму
    Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);    
    
    Форма.НавигационнаяСсылкаОтчета = ПолучитьНавигационнуюСсылку(Форма.Параметры.Отчет);
    
    
    НоваяКоманда = Форма.Команды.Добавить("ПерейтиПоНавигационнойСсылкеОтчета");
    НоваяКоманда.Действие = "ПерейтиПоНавигационнойСсылкеОтчета";//Имя процедуры
    НоваяКоманда.Заголовок = "Перейти к отчету";
    
    НовыйЭлемент = Форма.Элементы.Добавить("ПерейтиПоНавигационнойСсылкеОтчета",
                                     Тип("КнопкаФормы"),
                                     Форма.Элементы.ГруппаПрограммныйИнтерфейс);
    НовыйЭлемент.ИмяКоманды = "ПерейтиПоНавигационнойСсылкеОтчета";    
    
    НовыйЭлемент.ПоложениеВКоманднойПанели = ПоложениеКнопкиВКоманднойПанели.ВДополнительномПодменю;
    
КонецПроцедуры
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн