Имя: Пароль:
1C
1С v8
Как в СКД установить тип значения вместо текста - ссылку. ☑
0 MAPATNK2
 
naïve
19.03.19
✎
09:25
Как в СКД установить тип значения вместо текста - ссылку. Обычные формы УПП.
1 MAPATNK2
 
naïve
19.03.19
✎
09:36
Т.е в результате отработки отчета выводится список документов и кол-во. Но при нажатии на документ в процедуре обработки выбора я получаю просто текст "Заказ покупателя №.... дата", и чтобы не писать парсер для получения кода, поиска документа по номеру и дате, хотелось бы сразу , при двойном нажатии открывать документ. При программном открытии форма не реагирует на двойной нажатие. Но при открытие "Файл-Открыть" отрабатывается стандартная процедура расшифровки.
2 MAPATNK2
 
naïve
19.03.19
✎
09:36
Не понятно почему
3 MAPATNK2
 
naïve
19.03.19
✎
09:49
Либо мой вопрос настолько глупый, что никто не хочет ответить, либо никто не делал подобного, хотя это вряд ли.
4 MAPATNK2
 
naïve
19.03.19
✎
10:00
Может при программном открытии отчета необходимо какой-то параметр в истину переназначить, чтобы отрабатывалась стандартная обработка?
5 mistеr
 
19.03.19
✎
10:07
>Но при нажатии на документ в процедуре обработки выбора я получаю просто текст

Это где нажатие? В поле формы, в ячейке таб. документа, где-то еще?
6 MAPATNK2
 
naïve
19.03.19
✎
10:16
(5) При нажатии на ячейку в форме отчета.
7 Вася Теркин
 
19.03.19
✎
10:19
Тема называется "Как добавить расшифровку в СКД?". Есть такие прямоугольные, книги, вроде называются. Но не Митичкин. Хрусталёва, вроде.
8 palsergeich
 
19.03.19
✎
10:19
Ссылка в расшифровке лежит, кури гугл
9 mistеr
 
19.03.19
✎
10:19
(6) Используй ОбработкаРасшифровки, там все будет.
10 MAPATNK2
 
naïve
19.03.19
✎
10:20
(9) В обрработке расшифровки в параметре Расшифровка тупо лежит число. И что я с ним должен делать? Я уже искал про ОбработкаРасшифровки ничего не дало.
11 mistеr
 
19.03.19
✎
10:23
(10) Поищи еще про ДанныеРасшифровки.
12 MAPATNK2
 
naïve
19.03.19
✎
10:26
Есть како-то параметр, который отвечает за отработку стандартной процедуры ОбработкаРасшифровки ? Я же объясняю , через "Файл - открыть" все работает, а через
СсылкаНаОбъект = Справочники.ВнешниеОбработки.НайтиПоКоду("000000072");
        
        ЭтоОбработка = ?(СсылкаНаОбъект.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка, Истина, Ложь);
        ЭтоОтчет = ?(СсылкаНаОбъект.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет, Истина, Ложь);
        
        Если НЕ (ЭтоОбработка ИЛИ ЭтоОтчет) Тогда
            Возврат;
        КонецЕсли;
        
        ИмяФайла = ПолучитьИмяВременногоФайла();
        ДвоичныеДанные = СсылкаНаОбъект.ХранилищеВнешнейОбработки.Получить();
        ДвоичныеДанные.Записать(ИмяФайла);
        
        Попытка
            Если ЭтоОбработка Тогда
                Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
            Иначе
                Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла);
            КонецЕсли;
            
            Если Не Форма = Неопределено Тогда
                НастройкиКД = Форма.КомпоновщикНастроек.ПолучитьНастройки();
                ПолеНоменклатура  = Форма.КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Номенклатура");
                НовыйОтбор = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
                НовыйОтбор.ЛевоеЗначение = ПолеНоменклатура.Поле;
                НовыйОтбор.ПравоеЗначение = ТекущаяНоменклатура;
                НовыйОтбор.Использование = Истина;
                
                Форма.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД);
                Форма.РежимВыбора = Истина;
                //Форма = Форма.ПолучитьФорму("ФормаОтчета");
                Форма.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат); //таб док на форме
                Форма.Открыть();


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




НЕ ПАШЕТ
13 Вася Теркин
 
19.03.19
✎
10:38
(10) Настрой уже СКД
14 ДенисЧ
 
19.03.19
✎
10:41
Если у тебя вылезает строка - значит, в запросе ты выбираешь представление, а не ссылку
15 palsergeich
 
19.03.19
✎
10:43
(12) это событие формы.
Если есть а конфигурации стандартная форма отчёта - добавь ее копированием в сам отчёт и модифицируй.
Или нарисуй форму сам, на ОФ это чуть посложнее чем на уф.
(14) СКД сам же добавляет представления ссылок в результирующий запрос и это нормально. В табдоке в ячейке всегда строка, и о текстячпйки имеет строковый тип
16 Вафель
 
19.03.19
✎
10:44
выводи поле заказ, но у него установи кастомное представление
17 Вася Теркин
 
19.03.19
✎
10:45
НЕ ПАШЕТ - вот тут ошибка. Получается ПАШЕТ - булево.
Если ПАШЕТ = Истина, то в результате ложь.
А если ПАШЕТ = Ложь, как у тебя, то все хорошо.
(14) У него там СКД...
(15) Он её из хранилища тягает, во внешних отчетах она.
(16) Ещё смешнее
18 palsergeich
 
19.03.19
✎
10:46
(17) ну и что что из хранилища, если форма обработки слинкована и код написан верно все будет работать
19 palsergeich
 
19.03.19
✎
10:47
А из кода без описания события формы да, не получится по человечьи.
20 ДенисЧ
 
19.03.19
✎
10:47
(15) Вот сейчас набросал примитивный запрос в скд по документам. В табдоке спокойно открывается документ (или справочник).
Без всяких обработчиков.
21 palsergeich
 
19.03.19
✎
10:49
Хотя вру.
В ячейке табдоке есть поле в котором хранится ИД расшифровки.
И есть сама расшифровка на поле.
То есть там, где получается текст ячейки всегда можно получить значение и самой расшифровки.
(20) за тебя это делает платформа. При двойном клике она получает ИД ячейки. Потом лезет в расшифровку получает значение. Потом смотрит какое стандартное действие произошло. Для ссылок это открытие и выполняет его.
22 Вася Теркин
 
19.03.19
✎
10:49
(18) Ну так и надо смотреть СКД, а не код.
23 palsergeich
 
19.03.19
✎
10:50
(20) но непосредственно в самой ячейке ссылки нет.
Для получения ссылки используются служебные механизмы.
24 mistеr
 
19.03.19
✎
10:52
Стоп. Все вышенаписанное не в кассу. Проблема у ТС на самом деле в другом: "При программном открытии форма не реагирует на двойной нажатие".

Либо открывается другая форма, либо у табдока ТолькоПросмотр=Ложь.

P.S. ТС конечно чемпион по запутыванию.
25 palsergeich
 
19.03.19
✎
10:54
(24) неизвестно что натворено в существующей форме отчёта, там стандартное действие могло быть переопределения, видел такое неоднократно. Я бы начал копать с этого.
26 palsergeich
 
19.03.19
✎
10:55
Или как вариант при компановке данные расшифровки не заполняются или на форме нет стандартного реквизита хранилища данных расшифровки.
Тоже обычная ситуация
27 palsergeich
 
19.03.19
✎
10:56
Я бы начал искать проблему с изучения формы.
28 Вася Теркин
 
19.03.19
✎
10:57
(26) Начинать лучше отсюда. Посмотреть что за колонки, какие в них значения и какие представления...
29 mistеr
 
19.03.19
✎
11:07
(26) При интерактивном открытии обработки из файла все работает. Значит форма в порядке.
30 MAPATNK2
 
naïve
19.03.19
✎
11:59
(24)Да, параметр это был Ложь, при изменении его на Истина, ничего не изменилось. Форма открывается, какая нужно.
31 MAPATNK2
 
naïve
19.03.19
✎
11:59
(24) Так что проблема не в этом.
32 MAPATNK2
 
naïve
19.03.19
✎
12:00
Мне просто нужна процедура для примера, как при обработкеРасшифровки получить необходимую мне ссылку на документ. Может кто нибудь помочь? т.к. в Интернете я ничего не нашел, иначе бы не писал сюда
33 MAPATNK2
 
naïve
19.03.19
✎
12:14
Находил вот такую вот процедуру.


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



Но она не помогает.
34 Вася Теркин
 
19.03.19
✎
12:26
Напиши
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)    
Возврат
.....
КонецПроцедуры

Вдруг поможет
35 MAPATNK2
 
naïve
19.03.19
✎
12:31
(34) Нет, не помогло
36 MAPATNK2
 
naïve
19.03.19
✎
12:32
Да я одно не пойму, почему в ручном режиме работает всё, а при открытии программно, ничего не пашет.
37 LordCMEPTb
 
19.03.19
✎
12:50
(12) По строке кода:
Форма.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат);//таб док на форме
могу сделать предположение, что речь об обычной форме.
А потому вызывается процедура модуля объекта, у которой следует указать 2й параметр, чтобы все хорошо работало.
38 MAPATNK2
 
naïve
19.03.19
✎
12:53
(37) Какой второй параметр?
39 MAPATNK2
 
naïve
19.03.19
✎
13:25
В общем, так и не решился вопрос. Если вдруг у кого то будут идеи, пожалуйста, напишите. Не хотелось бы добавлять отчет в саму конфигурацию, и заставлять пользователей вручную его открывать каждый раз, тоже не хочется.
40 aleks_default
 
19.03.19
✎
13:39
С даннымирасшифровки что-то напутал. У тебя программный вывод отчета?
41 aleks_default
 
19.03.19
✎
13:40
вот кстати в (37) все правильно написано
42 MAPATNK2
 
naïve
19.03.19
✎
14:27
(40) Нет. Стандартный отчет делал СКД.
43 MAPATNK2
 
naïve
19.03.19
✎
14:27
Ничего программно не вывожу. Только саму форму отчета открываю.Код выше
44 MAPATNK2
 
naïve
19.03.19
✎
14:57
(37) (41) Что во втором параметре то дожно быть, я в код неопределнное значение поставил в качетсве 2 параметра, теперь при нажатии на ячейку появляется окно с числом. Что дальше ? XD
45 aleks_default
 
19.03.19
✎
15:50
ДанныеРасшифровкиКомпоновки    = Новый ДанныеРасшифровкиКомпоновкиДанных;

Форма.СкомпоноватьРезультат(Форма.ЭлементыФормы.Результат, ДанныеРасшифровкиКомпоновки);
Форма.Данныерасшифровки = ДанныеРасшифровкиКомпоновки
Форма.Открыть();
46 palsergeich
 
19.03.19
✎
16:08
(44) ты уже близок, почти дошел до конца
47 aleks_default
 
19.03.19
✎
16:13
Чета я ступил
48 MAPATNK2
 
naïve
20.03.19
✎
08:12
(46) Близок, но что я могу передать в параметр? Я открываю форму из справочника номенклатуры.
49 aleks_default
 
20.03.19
✎
09:05
У тебя в форме есть все что нужно
50 MAPATNK2
 
naïve
20.03.19
✎
09:11
(49) Дак вы можете не загадками говорить. Я если бы знал что туда писать, давно бы сделал. Не первый день сижу с этой фигней. Если знаете, подскажите, что нужно сделать.
51 aleks_default
 
20.03.19
✎
09:50
Млять, я тебе уже кусок кода написал. Какие нахрен еще загадки
52 aleks_default
 
20.03.19
✎
09:53
Ты хотя бы анализируй то что тебе уже рассказали. Причем уже не один раз. Или сюда только за готовым ответом приходишь. Тогда вообще ничему никогда не научишься
53 MAPATNK2
 
naïve
20.03.19
✎
10:06
(52) Прошу прощения. Не увидел сообщение. Да, всё запустилось. Спасибо.