Имя: Пароль:
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) Прошу прощения. Не увидел сообщение. Да, всё запустилось. Спасибо.