![]() |
|
Расшифровка в СКД по номеру | ☑ | ||
---|---|---|---|---|
0
Andrey07070707
18.05.10
✎
10:23
|
добрый день, подскажите пожалуйста возможно ли сделать расшифровку в отчете без инициализаци и вывода отчета вручную? если да то как?
Есть простой линейный отчет, в нем используются номера документов а не ссылки. писать для него процедуру формирования откровенно лень, но есть желание иметь рашифровку. |
|||
1
Kashemir
18.05.10
✎
10:36
|
Все можно - пример своей расшифровки:
Процедура РеестрОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) // Вставить содержимое обработчика. Перем ВыполненноеДействие; ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПолучитьМакет("Реестр")); СтандартнаяОбработка = Ложь; ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, ИсточникДоступныхНастроек); ДоступныеДействия = Новый Массив(); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение); //ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить); //ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать); СписокДействий = Новый СписокЗначений; //ИндексРасшифровки = Число(Расшифровка) + 1; // Массив = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля(); Для каждого Эл из Массив Цикл Если Эл.Поле = "СсылкаДокумент" Тогда СписокДействий.Добавить("ДобавитьВСписокНаПерезагрузку", "Добавить в список перезагрузки"); // Пробуем проанализировать возможность удаления документа // получаем родительскую группировку МассивРодителей = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей(); Если МассивРодителей.Количество() = 1 Тогда МассивПолейРодителя = ДанныеРасшифровки.Элементы[МассивРодителей[0].Идентификатор].ПолучитьПоля(); Для каждого ЭлРод из МассивПолейРодителя Цикл Если ЭлРод.Поле = "НомерКонтекста" Тогда Если СокрЛП(ЭлРод.Значение) = "" Тогда Если Метаданные.НайтиПоТипу(ТипЗнч(Эл.Значение)) <> Неопределено и Метаданные.Документы.Содержит(Метаданные.НайтиПоТипу(ТипЗнч(Эл.Значение))) и Эл.Значение.Проведен Тогда СписокДействий.Добавить("УдалитьДокумент", "Пометить документ на удаление"); Прервать; КонецЕсли; КОнецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; Прервать; КонецЕсли; КонецЦикла; //КонецЕсли; Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия, СписокДействий); Если ВыполненноеДействие = "ДобавитьВСписокНаПерезагрузку" Тогда Массив = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля(); Для каждого Эл из Массив Цикл Если Эл.Поле = "СсылкаДокумент" Тогда Если ЗначениеЗаполнено(Эл.Значение) Тогда НоваяСтрока = ДокументыПерезагрузки.Добавить(); НоваяСтрока.Документ = Эл.Значение; НоваяСтрока.Выставлен = Ложь; КонецЕсли; КонецЕсли; КонецЦикла; ИначеЕсли ВыполненноеДействие = "УдалитьДокумент" Тогда //НомерКонтекста Не заполнено И СсылкаДокумент.Проведен Равно "істина" Если ЗначениеЗаполнено(Эл.Значение) Тогда // Переспросим на всякий случай Если Вопрос("Вы действительно хотите удалить документ " + Эл.Значение + " ?", РежимДиалогаВопрос.ДаНетОтмена, 30, КодВозвратаДиалога.Отмена) = КодВозвратаДиалога.Да Тогда // собственно пробуем удалить Объект = Эл.Значение.ПолучитьОбъект(); Объект.ДополнительныеСвойства.Вставить("ПрограммноеИзменение", Истина); Объект.ПометкаУдаления = Истина; Попытка Если Объект.Проведен Тогда Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения); Иначе Объект.Записать(); КонецЕсли; Сообщить("Документ " + Объект + " помечен на удаление", СтатусСообщения.Информация); Исключение Сообщить("Возникла ошибки при попытке установки пометки на удаление (" + ОписаниеОшибки() + ")", СтатусСообщения.Важное); КонецПопытки; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
2
Defender aka LINN
18.05.10
✎
10:38
|
Что мешает выводить ссылку, а в качества ее представления задать номер?
|
|||
3
Andrey07070707
18.05.10
✎
10:44
|
DEfender aka LINN, Снова Спасибо, Также сделал.
|
|||
4
Andrey07070707
18.05.10
✎
11:25
|
И еще один маленький вопросик. При использовании своего макета стандартная расшифровка не отрабатывает?
|
|||
5
Andrey07070707
18.05.10
✎
11:27
|
Вопрос отпал. нашел.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |