Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 15:49

Как в СКД установить тип значения вместо текста - ссылку.

Автор Марат Аютов, 19 мар 2019, 09:49

0 Пользователей и 1 гость просматривают эту тему.

Марат Аютов

Как в СКД установить тип значения вместо текста - ссылку. Обычные формы УПП.
Т.е в результате отработки отчета выводится список документов и кол-во. Но при нажатии на документ в процедуре обработки выбора я получаю просто текст "Заказ покупателя №.... дата", и чтобы не писать парсер для получения кода, поиска документа по номеру и дате, хотелось бы сразу , при двойном нажатии открывать документ. При программном открытии форма не реагирует на двойной нажатие. Но при открытие "Файл-Открыть" отрабатывается стандартная процедура расшифровки.
Не понятно почему.
Обычные формы. УПП.

Марат Аютов

Может при программном открытии отчета необходимо какой-то параметр в истину переназначить, чтобы отрабатывалась стандартная обработка?

LexaK

вообще было замечено, что если поле отчета Табличный документ, доступен для редактирования, то при двойном клике в ячейке ссылка документа как текст, а если просмотр то при включенной расшифровки открывается форма документа.
и еще сам запрос проверьте, возможно вместо ссылки вам действительно возвращается Представление() документа - а это по любому строка,
больше догадок нет.
при наличии самого отчета и под отладчиком решается за 5 минут
если помогло нажмите: Спасибо!

Марат Аютов

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

LexaK

при программном, какую форму вывода используете? а настройка расшифровки есть?
если помогло нажмите: Спасибо!

Марат Аютов

Цитата: LexaK от 19 мар 2019, 11:48
при программном, какую форму вывода используете? а настройка расшифровки есть?


Как понять какую форму вывода использую? Создал стандартную форму, конфигурация сама заполнила её. И её же выводит. А если вы имеете ввиду, внешний ли отчет, то да, отчет внешний, но загруженный в базу.





СсылкаНаОбъект = Справочники.ВнешниеОбработки.НайтиПоКоду("000000072");

ЭтоОбработка = ?(СсылкаНаОбъект.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка, Истина, Ложь);
ЭтоОтчет = ?(СсылкаНаОбъект.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет, Истина, Ложь);

Если НЕ (ЭтоОбработка ИЛИ ЭтоОтчет) Тогда
Возврат;
КонецЕсли;

ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = СсылкаНаОбъект.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);

Попытка
Если ЭтоОбработка Тогда
Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
Иначе
Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла);
КонецЕсли;

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

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


//Форма.Открыть(СтрПараметры);
Иначе
Сообщить("Форма открываемой обработки или отчета не определена.", СтатусСообщения.БезСтатуса);
КонецЕсли;
Исключение
Если ЭтоОбработка Тогда
Предупреждение("Выбранный файл не является внешней обработкой.
|Либо, данная обработка не предназначена для
|запуска в этой конфигурации.");
Иначе
Предупреждение("Выбранный файл не является внешним отчетом.
|Либо, данный отчет не предназначена для
|запуска в этой конфигурации.");
КонецЕсли;
КонецПопытки;

УдалитьФайлы(ИмяФайла);



Добавлено: 19 мар 2019, 11:57


Цитата: LexaK от 19 мар 2019, 11:48
при программном, какую форму вывода используете? а настройка расшифровки есть?
Никаких настроек расшифровки нет. Я и пытаюсь уже 2 день найти метод, который позволит мне при двойном нажатии на ячейку в таб документе отчета открыть документ, который лежит в этой ячйке. Эта процедура стандартно выполняется , если открывать отчет через "Файл - открыть - Мой отчет"  но если я его открываю прогарммно, функции стандартной расшифровки при двойном клике не работают.
Добавлено: 19 мар 2019, 12:08


Находил следующую процедуру расшифровки. Но она не помогает

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Перем ВыполненноеДействие;
СтандартнаяОбработка=Ложь;
ОбработкаРасшифровки=Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки,Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
ДоступныеДействия=Новый Массив;      // заполняем доступные действия, если параметр не указан, то будут доступны все действия
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить);
Настройки=ОбработкаРасшифровки.Выполнить(Расшифровка,ВыполненноеДействие,ДоступныеДействия);
//МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
//ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных, , ДанныеРасшифровки);
Если Настройки<>Неопределено Тогда    // требуется сформировать отчет с новыми настройками
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);         // загружаем настройки
ЭлементыФормы.Результат.Очистить();                                                 // очищаем поле табличного документа
СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки);            // выводим результат
КонецЕсли;
ЭЛЕ = ДанныеРасшифровки.Элементы[Расшифровка];
КонецПроцедуры

antoneus

Файлы "Мой отчет" и загруженный в базу точно одинаковые? Чудес не бывает. Кэш как себя чувствует?

Марат Аютов

Цитата: antoneus от 19 мар 2019, 12:48
Файлы "Мой отчет" и загруженный в базу точно одинаковые? Чудес не бывает. Кэш как себя чувствует?
Абсолютно одинаковые. При каждом редактировании сохраняю и перезаливаю в базу.
А разница какая, как он себя чувствует, при любом изменении в форме или в коде, все отображается, при программном открытии. проблема в самом коде. Есть у кого Процедура для открытия документа, при двойном нажатии на ячейку? Стандартно, если два раза на ячейку в отчете нажмешь ,вылезает меню, где можно открыть тот или иной документ, на который ты щелкунул. У меня же эта менюха не вылазит.

Похожие темы (5)

Рейтинг@Mail.ru

Поиск