7.7 Расшифровка ячеек отчета - как?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем M a x i m, 7 авг 2009.

  1. TopicStarter Overlay
    M a x i m
    Offline

    M a x i m Опытный в 1С

    Регистрация:
    6 окт 2008
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    Добрый день.
    Создал простой отчет, где по выбранному складу выбираются разнотипные документы, а из них выборочно строки табличной части и заносятся в секцию "строка" (собссно выбираются МПЗ).

    Мне надо, чтобы дв.кликом на ячейке открывался документ, из табличной части которого взяты данные этой ячейки. Смотрел в нормальных отчетах, но там все завязано на запросы из регистров, в которых ничего не смыслю, и я не осилил.
    Заранее благодарен.
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    1) Таблица отчета должна быть обязательно в режиме просмотра
    Код:
    Таб.ТолькоПросмотр(1);
    
    
    2)В свойствах ячеки таблицы в поле расшифровка указывай текущий документ. Например для выборки

    Код:
    Док.ВыбратьДокументы();
    Пока Док.ПолучитьДокумент()=1 Цикл
    Таб.ВывестиСекцию("стр");
    КонецЦикла;
    
    
    Нужно указать расшифровку: Док.ТекущийДокумент()
  3. TopicStarter Overlay
    M a x i m
    Offline

    M a x i m Опытный в 1С

    Регистрация:
    6 окт 2008
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    Я в процессе отбора документов загоняю данные в таблицу значений, а уж перебирая ТЗ, вывожу секции.
    Вот:
    Код:
    //ОТБОР ВОЗВРАТОВ ОТ ПОКУПАТЕЛЕЙ
    Док=СоздатьОбъект("Документ.ВозвратОтПокупателя");
    Док.ВыбратьДокументы(ВыбДата, ВыбДата); 
    Пока Док.ПолучитьДокумент()=1 Цикл 
    Если (Док.Проведен()=1) и (Док.МестоХранения=ВыбВодитель) Тогда
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку()=1 Цикл
    Если Док.Товар=ВыбИзделие Тогда
    ТЗ.НоваяСтрока();
    ТЗ.ВремяДок=Док.ПолучитьВремя(Ч, М, С);//нужно хронологии                
    ТЗ.Знак="+";//т.е. приход         
    ТЗ.Документ="Возврат от покупателя №"+Док.НомерДок;
    ТЗ.Контрагент=Док.Контрагент;
    ТЗ.ЕдИзм=Док.ЕдиницаИзмерения;
    ТЗ.Колво=Док.Количество;       
    ВсегоПриход=ВсегоПриход+Док.Количество;//счетчик
    КонецЕсли;//(Док.Товар=ВыбИзделие)
    КонецЦикла;//Док.ПолучитьСтроку          
    КонецЕсли;//(Док.Проведен()=1) и (Док.МестоХранения=ВыбВодитель)
    КонецЦикла;//Отбор возвратов от покупателей    
    
    
    
    
    
    так я отбираю доки, но таких циклов еще три - все загоняется в ТЗ

    Код:
    //ПОКАЖЕМ ОТЧЕТ
    Таб=СоздатьОбъект("Таблица");
    Таб.ТолькоПросмотр(1);
    Таб.ВывестиСекцию("Шапка"); 
    
    Если ПоказХронологии=0 Тогда
    Таб.ВывестиСекцию("Приход");
    КонецЕсли;
    
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 цикл
    Если (ПоказХронологии=0) и (ТЗ.Знак="=") Тогда
    Таб.ВывестиСекцию("ВсегоПриход");
    Таб.ВывестиСекцию("Расход");
    Иначе
    Таб.ВывестиСекцию("Строка");
    КонецЕсли;                       
    КонецЦикла;                          
    Если ПоказХронологии=1 Тогда
    Таб.ВывестиСекцию("ВсегоПриход");
    КонецЕсли;                           
    Таб.ВывестиСекцию("ВсегоРасход");
    КонОстаток=ВсегоПриход-ВсегоРасход;
    Таб.ВывестиСекцию("КонОстаток");
    
    Таб.Показать();
    
    
    
    
    
    так вывожу в отчет

    пробовал в расшифровке ячейки писать Док.ТекущийДокумент() -ессно не реагирует на дв.клик
    пробовал ТЗ.ТекущийДокумент() - пишет "Поле агрегатного объекта не обнаружено (ТекущийДокумент)"


    p.s. ТЗ нужно для либо сортировки в хронологическом порядке, либо вывода сначала "прихода" потом "расхода"
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Просто добавть в ТЗ новую колонку ТекущийДокумент

    Код:
    Тз.ТекущийДокумент=Док.ТекущийДокумент()
    
    
    тогда будет работать
  5. TopicStarter Overlay
    M a x i m
    Offline

    M a x i m Опытный в 1С

    Регистрация:
    6 окт 2008
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    молчит проклятый ©Гоблин

    я это и во все циклы отбора вставил - удалил
    и в цикл для отчета - удалил
  6. TopicStarter Overlay
    M a x i m
    Offline

    M a x i m Опытный в 1С

    Регистрация:
    6 окт 2008
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    З А Р А Б О Т А Л О ! ! !

    ВСЕ ГЕНИАЛЬНО И ПРОСТО
    СПАСИБО

Поделиться этой страницей