Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Страницы: [1]   

Автор Тема: Расшифровка отчета на СКД  (Прочитано 26951 раз)

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

Оффлайн

Здравствуйте, имеем отчет на СКД. Запрос:
 

Код:

ВЫБРАТЬ
ПеремещенияОпалубкиОстаткиИОбороты.Объект,
ПеремещенияОпалубкиОстаткиИОбороты.Номенклатура,
ПеремещенияОпалубкиОстаткиИОбороты.КоличествоНачальныйОстаток,
ПеремещенияОпалубкиОстаткиИОбороты.КоличествоПриход,
ПеремещенияОпалубкиОстаткиИОбороты.КоличествоРасход,
ПеремещенияОпалубкиОстаткиИОбороты.КоличествоКонечныйОстаток,
ВЫБОР
КОГДА ПеремещенияОпалубкиОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
ТОГДА NULL
ИНАЧЕ ПеремещенияОпалубкиОстаткиИОбороты.Регистратор
КОНЕЦ КАК Регистратор,
ПеремещенияОпалубкиОстаткиИОбороты.СобственнаяАрендованная,
ПеремещенияОпалубкиОстаткиИОбороты.СуммаСНДСКонечныйОстаток КАК СуммаСНДСОстаток
ИЗ
РегистрНакопления.ПеремещенияОпалубки.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, Авто, , ) КАК ПеремещенияОпалубкиОстаткиИОбороты
 
При двойном щелчке на ячейке получаем стандартное контекстное меню:
Расшифровать, Открыть, Отфильтровать и т.д. При нажатии "расшифровать" открывается форма " Выбор поля", где выбираем поле, по которому необходимо расшифровать отчет (У меня там только "Регистратор"). Можно ли сделать так, чтобы при нажатии на кнопку ""Расшифровать" сразу выводился отчет по регистратору? без выбора поля...Заранее спасибо


Последний раз редактировалось: MuI_I_Ika; 06 Авг 2013, 12:11

Оффлайн

Только если написать свою обработку расшифровки
в событии табличного документа - ОбработкаРасшифровки()

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн

Я уже битый час с эти парюсь. Пока имею следующее:

Код:

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

Но все не в ту степь...Где-нибудь почитать можно про это? никогда свою расшифровку не делала( получается каждую команду самому надо прописывать? и открытие и упорядочивание и т.д.? можно только "Расшифровать" заменить? в текущем варианте все равно открывается форма "Выбор поля"...За отклик спасибо


Последний раз редактировалось: MuI_I_Ika; 06 Авг 2013, 12:31

Оффлайн

Ну так все-равно же выбирается действие:

Код:

ОбработкаРасшифровки.ВыбратьДействие(
Расшифровка,
ВыполненноеДействие,
ПараметрВыполненногоДействия,
ДоступныеДействия,
//ДополнительноеМеню
); Выполняйте сразу ОткрытьЗначение

Оффлайн

Ну так все-равно же выбирается действие:

Код:

ОбработкаРасшифровки.ВыбратьДействие(
Расшифровка,
ВыполненноеДействие,
ПараметрВыполненногоДействия,
ДоступныеДействия,
//ДополнительноеМеню
); Выполняйте сразу ОткрытьЗначение
ТОгда получается, что пропадет контекстное меню(а регистратор все равно так и не получается открыть(

Оффлайн

Сорри, неправильно прочитала.
Попробуйте использовать конструкцию вида:

Код:

Ссылка=ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[<индекс вашего поля в расшифровке>].Значение
И дальше уже от этой ссылки открывать форму.

Индекс поля в расшифровке можно получить ... Или попробовать по имени поля искать.

Оффлайн

у меня ДанныеРасшифровки имеют тип "Строка" и в ней сечас хранится следующее значение: "e1cib/tempstorage/486f64dd-5c5f-40af-9a2d-00d5bdaffec6"...ДанныеРасшифровки. Элементы не отработает((( Может есть у кого-нибудь примерный кусок кода?

Оффлайн

у меня ДанныеРасшифровки имеют тип "Строка" и в ней сечас хранится следующее значение: "e1cib/tempstorage/486f64dd-5c5f-40af-9a2d-00d5bdaffec6"...ДанныеРасшифровки. Элементы не отработает((( Может есть у кого-нибудь примерный кусок кода?


в расшифровку помещается ссылка, а не строка !

Оффлайн

Надо было получить ДанныеРасшифровки на сервере. Пока получилось так:

&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   
   Если ТипЗнч(Расшифровка) <> Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
      Возврат;
   КонецЕсли;

         СтандартнаяОбработка = Ложь;
   Элемент =  ПолучитьКоллекцию(Расшифровка);
   Если ЗначениеЗаполнено(Элемент) Тогда
      ОткрытьЗначение(Элемент);
   КонецЕсли;
 
КонецПроцедуры // РезультатОбработкаРасшифровки()

&НаСервере
Функция ПолучитьКоллекцию(Расшифровка)
   
   ДанныеРасшифровкиОтчета = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
   ЭлементРасшифровки = ДанныеРасшифровкиОтчета.Элементы[Расшифровка];

   Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
      Для Каждого ЗначениеПоляРасшифровки Из ЭлементРасшифровки.ПолучитьПоля() Цикл
         Значение = ЗначениеПоляРасшифровки.Значение;
         Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Значение))
          ИЛИ Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Значение)) Тогда
            Возврат Значение;
         КонецЕсли;
      КонецЦикла;
   КонецЕсли;

   Возврат Неопределено;
 
КонецФункции

В результате открываются при двойном щелчке эл-т справочника Оборудования, а вот как сделать, чтобы при щелчке на полях "Приход", "Расход" и т.д. открывался этот же отчет с расшифровкой по регистратору причем с теми же отборами, так и не смогла пока сделать(

Оффлайн

Функция ПолучитьКоллекцию возвращает первое попавшееся значение расшифровки, а там их несколько. Остановитесь отладчиком на ЭлементРасшифровки.ПолучитьПоля()  и посмотрите там имена полей.

Как вариант, в функцию ПолучитьКоллекцию передавайте еще один параметр - имя нужного поля, и далее используйте

Код:

Поля=ЭлементРасшифровки.ПолучитьПоля();
Поле=Поля.Найти(ИмяПоля);
Возврат ?(Поле=Неопределено,Неопределено,Поле.Значение);

Страницы: [1]   

Теги:

 


Автор Раздел

Ответов: 3
Просмотров: 6860 Последний ответ 01 Июн 2011, 20:39
от

Автор Раздел

Ответов: 2
Просмотров: 2878 Последний ответ 27 Май 2015, 10:02
от

Автор Раздел

Ответов: 1
Просмотров: 3999 Последний ответ 28 Апр 2011, 14:34
от

Автор Раздел

Ответов: 2
Просмотров: 3754 Последний ответ 16 Апр 2014, 15:09
от

Автор Раздел

Ответов: 1
Просмотров: 1891 Последний ответ 05 Апр 2016, 10:15
от

Живое общение

Не устроил ответ?


Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.



Реклама

Поиск

Последние задачи на разработку (фриланс)

Реклама

Последние вакансии

Топ 10 авторов за месяц


99 Сообщений
76 Сообщений Геннадий ОбьГЭС
54 Сообщений
35 Сообщений
27 Сообщений
24 Сообщений Golickoff
21 Сообщений
18 Сообщений ilyay
18 Сообщений
16 Сообщений

Кто онлайн

  • ТочкаГостей: 307
  • ТочкаСкрытых: 0
  • ТочкаПользователей: 9
  • ТочкаСейчас на форуме:

Облако тэгов

Форум 1С с мобильного

Инструменты

Дополнительно


Источник: http://forum-1c.ru/index.php?topic=30896.0


Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Как сделать форму отчета в 1с

Как сделать форму отчета в 1с