Имя: Пароль:
1C
1С v8
Проблемы с расшифровкой в отчете и выводом
0 ЯТолькоУчусь
 
30.08.12
13:25
Бодрый день! Помогите разобраться, проблема такая:
есть таблица, расшифровка добавляется тут
Для каждого Стр Из Табл Цикл
       ДатаД = ДатаНач;
       
   Пока ДатаД<>ДатаКон Цикл
       Обл = Макет.ПолучитьОбласть("СтрТаб|ОбДень");
       Если Формат(ДатаД,"ДЛФ=Д") = Стр.Дата Тогда
           обл.Параметры.ОборотДень = Стр.Оборот;
           СтрРасшифровки = ТаблицаЗначений.Добавить();
           СтрРасшифровки.Статья = Стр.Субконто;
           СтрРасшифровки.Сумма = Стр.Оборот;
           СтрРасшифровки.ДатаД = Стр.Дата;
           СтрРасшифровки.Осн = Стр.Основание;
           СтрРасшифровки.Контр = Стр.Контрагент;
           Обл.Параметры.СтрРасш = ТаблицаЗначений;
       Иначе
           обл.Параметры.ОборотДень = "";
           
       КонецЕсли;
       ДатаД = ДатаД+86400;
   КонецЦикла;
   
   а = а+1;                                                
КонецЦикла;

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

И второй вопрос по выводу самой таблицы - она изначально такая
субконто1 дата1 сумма1 основаниеплатежа1 контрагент1
субконто1 дата2 сумма2 основаниеплатежа2 контрагент2
субконто2 дата1 сумма1 основаниеплатежа1 контрагент1
А надо привести в вид
субконто1 сумма1 сумма2
субконто2 сумма1 сумма2
т.е. столбцы чтоб стали датой
Вот код вывода
Для каждого Стр Из Табл Цикл
   Обл = Макет.ПолучитьОбласть("СтрТаб|СтрДо");                
   обл.Параметры.номерпп = а+1;
   обл.Параметры.Субконто = Стр.Субконто;
   Таблица.Вывести(Обл);                                    
   ДатаД = ДатаНач;
       
   Пока ДатаД<>ДатаКон Цикл
       Обл = Макет.ПолучитьОбласть("СтрТаб|ОбДень");
       Если Формат(ДатаД,"ДЛФ=Д") = Стр.Дата Тогда
           обл.Параметры.ОборотДень = Стр.Оборот;
           Обл.Параметры.СтрРасш = ТаблицаЗначений;
       Иначе
           обл.Параметры.ОборотДень = "";
           
       КонецЕсли;
       ЭлементыФормы.ПолеТабличногоДокумента1.Присоединить(Обл);
       ДатаД = ДатаД+86400;
   КонецЦикла;
   Обл = Макет.ПолучитьОбласть("СтрТаб|СтрПосле");
   обл.Параметры.Оборот = Стр.Оборот;
   Таблица.Присоединить(Обл);                                    
КонецЦикла;

конфа Бухгалтерия предприятия, редакция 2.0 (2.0.36.4)
1 ЯТолькоУчусь
 
30.08.12
13:31
Народ, не оставляйте в беде человека))
2 ЯТолькоУчусь
 
30.08.12
13:33
Может объяснила коряво? Фотки как загрузить?
3 Axel2009
 
30.08.12
13:34
ща как понабегут =)
4 ЯТолькоУчусь
 
30.08.12
13:36
(3) та чет нет никого...
5 vmv
 
30.08.12
13:36
(1) в расшифровку зашивай структуру

СтруктрураРасшфЯч = Новый("Структура");

СтруктрураРасшфЯч.Вставить("Таблица", Тз);
СтруктрураРасшфЯч.Вставить("НомерСтроки", 1);
СтруктрураРасшфЯч.Вставить("ИмяКолонкиФото", "Фото");
СтруктрураРасшфЯч.Вставить("ИмяКолонкиФотоНю", "ФотоНю");

потом по клику на расшифровку попадаешь в стандартный обработчик ОбработкаРасшифровки() и устраиваешь дефиле во всей красе, можно даже ролик с ютую запустить, почему нет?
6 Axel2009
 
30.08.12
13:43
Для каждого Стр Из Табл Цикл
       ДатаД = ДатаНач;
       
   Пока ДатаД<>ДатаКон Цикл
       Обл = Макет.ПолучитьОбласть("СтрТаб|ОбДень");
ТаблицаЗначений.Очистить();
       Если Формат(ДатаД,"ДЛФ=Д") = Стр.Дата Тогда
           обл.Параметры.ОборотДень = Стр.Оборот;
           СтрРасшифровки = ТаблицаЗначений.Добавить();
           СтрРасшифровки.Статья = Стр.Субконто;
           СтрРасшифровки.Сумма = Стр.Оборот;
           СтрРасшифровки.ДатаД = Стр.Дата;
           СтрРасшифровки.Осн = Стр.Основание;
           СтрРасшифровки.Контр = Стр.Контрагент;
           Обл.Параметры.СтрРасш = ТаблицаЗначений;
       Иначе
           обл.Параметры.ОборотДень = "";
           
       КонецЕсли;
       ДатаД = ДатаД+86400;
   КонецЦикла;
   
   а = а+1;                                                
КонецЦикла;
7 ЯТолькоУчусь
 
30.08.12
13:50
пробовала и (5) и (6) уже, по (6) - ТЗ выходит в расшифровке вообще пустая, а по (5) - мне надо в параметр расшифровки так сделать: Обл.Параметры.СтрРасш = Стуктура ? Так тоже не прокатывает
8 vmv
 
30.08.12
13:52
(7) ну тогда только замуж
9 Axel2009
 
30.08.12
13:52
Для каждого Стр Из Табл Цикл
       ДатаД = ДатаНач;
       
   Пока ДатаД<>ДатаКон Цикл
       Обл = Макет.ПолучитьОбласть("СтрТаб|ОбДень");
ТаблицаЗначений = Новый ТаблицаЗначений;
ТаблицаЗначений.Колонки.Добавить("К1");
...
       Если Формат(ДатаД,"ДЛФ=Д") = Стр.Дата Тогда
           обл.Параметры.ОборотДень = Стр.Оборот;
           СтрРасшифровки = ТаблицаЗначений.Добавить();
           СтрРасшифровки.Статья = Стр.Субконто;
           СтрРасшифровки.Сумма = Стр.Оборот;
           СтрРасшифровки.ДатаД = Стр.Дата;
           СтрРасшифровки.Осн = Стр.Основание;
           СтрРасшифровки.Контр = Стр.Контрагент;
           Обл.Параметры.СтрРасш = ТаблицаЗначений;
       Иначе
           обл.Параметры.ОборотДень = "";
           
       КонецЕсли;
       ДатаД = ДатаД+86400;
   КонецЦикла;
   
   а = а+1;                                                
КонецЦикла;
10 ЯТолькоУчусь
 
30.08.12
13:54
(9) не совсем поняла что это даст?
(8) чего там делать?
11 eklmn
 
гуру
30.08.12
13:54
Клевая фотка =) ням-ням
12 alex74
 
30.08.12
13:55
Если при клике хочешь видеть только одну строку, то и в расшифровку надо писать только одну строку
13 vmv
 
30.08.12
13:55
(10) можно будет в избранном сменить основной сайт на вк)
14 ЯТолькоУчусь
 
30.08.12
13:59
(12) Вот я это тоже понимаю, а как, получать ее по индексу?
15 Axel2009
 
30.08.12
14:02
(10) даст то что в расшифровке будут храниться разные ТЗ, а не одна как в (0)
16 ЯТолькоУчусь
 
30.08.12
14:03
+(14) Когда запихиваю строку, выходит при расшифровке не таблицей, а сообщение с надписью "строка таблица значений"...1с-ина как будто издевается
17 ЯТолькоУчусь
 
30.08.12
14:04
(15) а, догнала.. не увидела что новая тз...
и у меня там будет 100500 тз? 0_0
но попробовать стоит)) спасибо
18 vmv
 
30.08.12
14:05
хранить в расшифровках ТЗ, а если там еще и фото - это же полный капец.

Расшифровка, если она не значение, а детализируемая сущность должна содержать только ключи и значения. Так сделано в СКД, хотя там и наворочено - но суть таже. В ручном режиме - детализируемая расшифровка - это структура, а не тонны бесполезных данных
19 ЯТолькоУчусь
 
30.08.12
14:08
(18) почему фото :D я хотела скрин залить, как оно должно быть
вообщем у нас есть отчет с субконто по строкам и датами по столбцам, на пересечении суммы, а расшифровка каждой суммы - это табличка за день по документам, из каких состоит сумма
(надеюсь понятно)
20 vmv
 
30.08.12
14:08
(16) вы пытаесь запихнуть в расшивровку невесть что и просто по щелчку, без постобработки расшифровки, увидеть черти што?

Почитайте по стандартный обработчик ОбработкаРасшифровки() - без него сесть сразу на два стула можно, но вы же пока учитесь и врядли обойдесь чиста опытом
21 ЯТолькоУчусь
 
30.08.12
14:08
скд - это что и как?
22 ЯТолькоУчусь
 
30.08.12
14:10
(20) расшифровку впервые делаю, можно поспокойнее объяснить?
23 vmv
 
30.08.12
14:10
(21) про СКД забудьте, пока рано или если у вас есть свободные две недели, то самым эффективным будет изучить ее. Да и задача состоит в том, чтобы по расшифровке открывать вложенный отчет, а не какие-то там Тз
24 ЯТолькоУчусь
 
30.08.12
14:11
(23) да я думала так проще будет, а оказалось как всегда
25 vmv
 
30.08.12
14:13
(24) на СКД действительно все проще, причем намного, но ее нужно знать - создатели этой технологии курили не самосад)
26 vmv
 
30.08.12
14:14
+(24) а

ТЗ показывать, да проще, но на малых объемах - как решение сойдет, как перспектива нет
27 vmv
 
30.08.12
14:19
на посошок

по щелчку на ячейку с рашифровкой БЕЗ постобработки этого щелчка в обработчике ОбработкаПроведения() будет сразу открыто нечто, если в параметр расшифровки записано значение примитивного или ссылочного типа.

В остальных случаях система будет просто ссообщать тип значения(строкатз, структура и пр.), как бы предлагая обработать этот щелчок.

без понимания основ далее рассуждать бесполезно, может все-таки замуж)
28 ЯТолькоУчусь
 
30.08.12
14:24
(27) да уже там, 9 лет, толку нет...
что за постобработка?
29 ЯТолькоУчусь
 
30.08.12
14:26
(26) мне и надо решение, сроки горят, доделываю за других пока те в отпусках(((
30 vmv
 
30.08.12
14:26
"ОбработкаРасшифровки"

поиск по этому слову в любой типовой конфигурации и просмотр тела обработчика повысят экспиренс на порядок
31 alex74
 
30.08.12
14:27
толку нет?
try the other hole
32 ЯТолькоУчусь
 
30.08.12
14:43
(30) можно еще один тупой вопрос - в каком месте обработку вызвать и как?
33 ЯТолькоУчусь
 
30.08.12
14:50
вообщем в цикле сделала так
ПолеТабличногоДокумента1ОбработкаРасшифровки(Обл.Параметры.СтрРасш, ТаблицаЗначений, Ложь);

и процедура

Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   Элемент = Расшифровка;
КонецПроцедуры

Внимание, вопрос: я туплю? Или в правильном напрвлении
Так или иначе как было так и осталось - выдает все таблицу
34 vmv
 
30.08.12
14:51
(32) в модуле формы где существует табличный документ в который идет вывод отчетных данных, как правило это модуль формы отчета, но может быть и любая другая форма с табличным документом.

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

Для отдельных ячеек можно поставить условие

Если ИмяЯчейки = "МояХираяЯчейка" Тогда
стандартнаяОбработка = Ложь;
// моя обработка расшифровки
...
КонецЕсли;
35 vmv
 
30.08.12
15:00
вот из типовой пример взял

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


таким же образом можно открыть и Тз, спозиционировав на строку.

Расшифровка.Свойство - говорит о том, что это структура
36 ЯТолькоУчусь
 
30.08.12
15:13
Спасибо всем за внимание и помощь, я спать пошла )) надеюсь пойдет на пользу, а то не догоняю сегодня уже
37 Axel2009
 
30.08.12
16:42
(35) если это не структура то вылетит нафиг такая расшифровка. и ниче не говорит, а подразумевается