![]() |
![]() |
![]() |
|
Не работает расшифровка в СКД. | ☑ | ||
---|---|---|---|---|
0
Босечка
26.12.12
✎
13:13
|
Нажимаю на табл. поле, вместо эелемента справочника выдается сообщение со значением этой ячейки.
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Перем ВыполненноеДействие; СтандартнаяОбработка = Ложь; //Создадим и инициализируем обработчик расшифровки ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ДоступныеДействия = Новый Массив(); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Отфильтровать); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Сгруппировать); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить); Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия); Если Настройки <> Неопределено Тогда //пользователь выбрал действие, для которого нужно менять настройки Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить Тогда КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); ДействияФормыДействие(); ИначеЕсли ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда //как найти ссылку на документ? Ссылка=ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Значение; Ссылка.ПолучитьФорму().Открыть(); Иначе //при других действиях создадим новый отчет, откроем форму, сформируем отчет в ней ЭтаФорма.Открыть(); КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); ДействияФормыДействие(); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
1
Босечка
26.12.12
✎
13:14
|
И потом стандартное меню Расшифровать, Оформить и т.д., а Открыть недоступно (серое).
|
|||
2
Босечка
26.12.12
✎
13:15
|
Процедура ДействияФормыДействие()
УстановитьНастройки(); СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); СхемаКомпоновкиДанных.Параметры.НачалоПериода.Значение = НачалоДня(НачалоПериода); СхемаКомпоновкиДанных.Параметры.КонецПериода.Значение = КонецДня(КонецПериода); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ДанныеРасшифровки=Новый ДанныеРасшифровкиКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);//а в этой строке, тоже взятой из Хрусталевой я передаю кажется Намтсройку с незаполненными параметрами ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; // ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина); ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ЭлементыФормы.Результат.ИмяПараметровПечати="ПараметрыПеч"; ЭлементыФормы.Результат.Очистить(); СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки); КонецПроцедуры Процедура РезультатВыбор(Элемент, Область, СтандартнаяОбработка) ИндексРасшифровки=Число(Область.Расшифровка); ОбработкаРасшифровки=Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ЭлементРасшифровкиДанных=ДанныеРасшифровки.Элементы[ИндексРасшифровки]; ЭлементРасшифровкиДанныхПоля=ЭлементРасшифровкиДанных.ПолучитьПоля()[0]; ОбработкаРасшифровки.ОткрытьЗначение(ЭлементРасшифровкиДанных.Идентификатор, Новый ПолеКомпоновкиДанных(ЭлементРасшифровкиДанныхПоля.Поле)); КонецПроцедуры |
|||
3
Александр_
Тверь 26.12.12
✎
13:16
|
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки, ДанныеРасшифровки); //Выполним компоновку с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки,Истина); //Очищаем поле табличного документа ЭлементыФормы.Результат.Очистить(); //Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); вот так работает. |
|||
4
Александр_
Тверь 26.12.12
✎
13:18
|
возможно у тебя вот эта строка лишняя:
ДанныеРасшифровки=Новый ДанныеРасшифровкиКомпоновкиДанных; ибо Расширение формы отчета (Report form extension) ДанныеРасшифровки (DetailsData) Использование: Чтение и запись. Описание: Тип: ДанныеРасшифровкиКомпоновкиДанных. Содержит данные расшифровки последнего выполненного отчета. Недоступно на сервере 1С:Предприятие. Не используется в модуле внешнего соединения а ты затираешь их |
|||
5
Пеппи
26.12.12
✎
13:21
|
(4) да вроде не лишняя, скорее всего процедура не привязана к событию
|
|||
6
Босечка
26.12.12
✎
13:23
|
(5) Какая процедура не привязана и к какому событию?
|
|||
7
Босечка
26.12.12
✎
13:27
|
Убрала строку, все работает также (в смысле не работает)
|
|||
8
Пеппи
26.12.12
✎
13:29
|
у тебя в (0) процедура отрабатывает, все верно. у тебя открывается элемент расшифровки. в общем процедуру дорабатывай как тебе нужно
|
|||
9
Босечка
26.12.12
✎
13:54
|
А как ее дорабатывать? Если бы знала, не спрашивала бы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |