Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 07:27
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

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

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

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Здравствуйте, имеем отчет на СКД. Запрос:
 
ВЫБРАТЬ
 ПеремещенияОпалубкиОстаткиИОбороты.Объект,
 ПеремещенияОпалубкиОстаткиИОбороты.Номенклатура,
 ПеремещенияОпалубкиОстаткиИОбороты.КоличествоНачальныйОстаток,
 ПеремещенияОпалубкиОстаткиИОбороты.КоличествоПриход,
 ПеремещенияОпалубкиОстаткиИОбороты.КоличествоРасход,
 ПеремещенияОпалубкиОстаткиИОбороты.КоличествоКонечныйОстаток,
 ВЫБОР
  КОГДА ПеремещенияОпалубкиОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
   ТОГДА NULL
  ИНАЧЕ ПеремещенияОпалубкиОстаткиИОбороты.Регистратор
 КОНЕЦ КАК Регистратор,
 ПеремещенияОпалубкиОстаткиИОбороты.СобственнаяАрендованная,
 ПеремещенияОпалубкиОстаткиИОбороты.СуммаСНДСКонечныйОстаток КАК СуммаСНДСОстаток
ИЗ
 РегистрНакопления.ПеремещенияОпалубки.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, Авто, , ) КАК ПеремещенияОпалубкиОстаткиИОбороты

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

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


Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Только если написать свою обработку расшифровки
в событии табличного документа - ОбработкаРасшифровки()
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Я уже битый час с эти парюсь. Пока имею следующее:

&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

    Перем СтруктураКоманды;

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

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

КонецПроцедуры // РезультатОбработкаРасшифровки()

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


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

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

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Ну так все-равно же выбирается действие:
   ОбработкаРасшифровки.ВыбратьДействие(
        Расшифровка,
        ВыполненноеДействие,
        ПараметрВыполненногоДействия,
        ДоступныеДействия,
        //ДополнительноеМеню
    );
Выполняйте сразу ОткрытьЗначение
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Ну так все-равно же выбирается действие:
   ОбработкаРасшифровки.ВыбратьДействие(
        Расшифровка,
        ВыполненноеДействие,
        ПараметрВыполненногоДействия,
        ДоступныеДействия,
        //ДополнительноеМеню
    );
Выполняйте сразу ОткрытьЗначение

ТОгда получается, что пропадет контекстное меню(а регистратор все равно так и не получается открыть(

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Сорри, неправильно прочитала.
Попробуйте использовать конструкцию вида:
Ссылка=ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[<индекс вашего поля в расшифровке>].Значение

И дальше уже от этой ссылки открывать форму.

Индекс поля в расшифровке можно получить отладчиком... Или попробовать по имени поля искать.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
у меня ДанныеРасшифровки имеют тип "Строка" и в ней сечас хранится следующее значение: "e1cib/tempstorage/486f64dd-5c5f-40af-9a2d-00d5bdaffec6"...ДанныеРасшифровки. Элементы не отработает((( Может есть у кого-нибудь примерный кусок кода?

Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С
у меня ДанныеРасшифровки имеют тип "Строка" и в ней сечас хранится следующее значение: "e1cib/tempstorage/486f64dd-5c5f-40af-9a2d-00d5bdaffec6"...ДанныеРасшифровки. Элементы не отработает((( Может есть у кого-нибудь примерный кусок кода?

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

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Надо было получить ДанныеРасшифровки на сервере. Пока получилось так:

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

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


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


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

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

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

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Функция ПолучитьКоллекцию возвращает первое попавшееся значение расшифровки, а там их несколько. Остановитесь отладчиком на ЭлементРасшифровки.ПолучитьПоля()  и посмотрите там имена полей.

Как вариант, в функцию ПолучитьКоллекцию передавайте еще один параметр - имя нужного поля, и далее используйте
Поля=ЭлементРасшифровки.ПолучитьПоля();
Поле=Поля.Найти(ИмяПоля);
Возврат ?(Поле=Неопределено,Неопределено,Поле.Значение);
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать


Теги:
 

Печатная форма "ЧекККМ" для "Отчета о розничных продажах"

Автор Игорь ПолищукРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 7052
Последний ответ 01 Июн 2011, 20:39
от Шурыгин Иван Сергеевич
Формирование отчёта "Задолженость по контрагентам" 1С:Предприятие 8.2 "Торговля для частных предпринимателей базовая", редакция 1.0

Автор casper009Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 2997
Последний ответ 27 Май 2015, 10:02
от casper009
Ошибка при выгрузке отчета "Прибыль"

Автор VasilРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4094
Последний ответ 28 Апр 2011, 14:34
от MaryaAlbertovna
Создание отчета "Отсутствие заказов"

Автор dronspartak9@gmail.comРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3874
Последний ответ 16 Апр 2014, 15:09
от dronspartak9@gmail.com
Программирование отчета "Движения на складах"

Автор ЛунатикРаздел Конфигурирование, программирование в "1С - Предприятие 8"

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

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

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

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


Зарегистрироваться

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
180 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

* Облако тэгов

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

* Инструменты

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal