Имя: Пароль:
1C
 
Расшифровка ячейки отчета новым отчетом возможна?
0 ekat_kuzn
 
30.07.10
13:25
Здравствуйте!
СКажите, пожалуйста, возможно ли без использования СКД сделать расшифровку ячеек отчета в виде карточки счета?
1 Grusswelle
 
30.07.10
13:26
Возможно.
2 Mitriy
 
30.07.10
13:26
смотри типовую ОСВ в бухгалтерии...
3 Невский Александр
 
30.07.10
13:27
(0) а кто запрещает получить этот отчет, передать туда параметры?
Также в его модуле указать Сформировать() Экспорт и вызвать эту процедуру
4 Невский Александр
 
30.07.10
13:28
(3) + ну и конечно открыть саму форму
Только не забудь при получении формы передать форму владельца и набрать "ЗакрыватьПриЗакрытииВладельца = ИСТИНА"
5 ekat_kuzn
 
30.07.10
13:36
Спасибо. мой неверный вариант:
        ПараметрыКарточкиСчета = Новый Соответствие;

   ПараметрыКарточкиСчета.Вставить("ИмяОбъекта", "КарточкаСчетаХозрасчетный");
   ПараметрыКарточкиСчета.Вставить("ДатаНач", ДатаНач);
   ПараметрыКарточкиСчета.Вставить("ДатаКон", ДатаКон);
   ПараметрыКарточкиСчета.Вставить("Счет", ВыборкаСтрока.БС);
   
   ОписаниеТипаОрганизации = Новый ОписаниеТипов("СправочникСсылка.Организации");
   ОрганизацияДляОтчета    = ОписаниеТипаОрганизации.ПривестиЗначение(Организация);
   ПараметрыКарточкиСчета.Вставить("Организация", ОрганизацияДляОтчета);
           
   ОписаниеТипаКонтрагент = Новый ОписаниеТипов("СправочникСсылка.Контрагенты");
   КонтрагентДляОтчета      = ОписаниеТипаКонтрагент.ПривестиЗначение(ВыборкаСтрока.Контрагент);
   ПараметрыКарточкиСчета.Вставить("Контрагент", КонтрагентДляОтчета);
   
   
   ОтборПоКонтрагенту = новый соответствие;
   ОтборПоКонтрагенту.Вставить("Субконто1",ВыборкаСтрока.Контрагент);
   ПараметрыКарточкиСчета.Вставить("Отбор", ОтборПоКонтрагенту);
   Область3Строка.Параметры.Расшифр = ОткрытьОтчет(ПараметрыКарточкиСчета);

Проблема в том, как параметру "Расшифр" присвоить ссылку на карточку счета.
Сейчас открываются все карточки счета с отборами, а затем главный отчет.
6 Невский Александр
 
30.07.10
13:43
(5)
Не пойму ... передай в Расшифр -> ПараметрКарточкиСчета,
а затем в процедуре ОбработкаРасшифровки() допишешь свой кусок открытия второго отчета
7 ekat_kuzn
 
30.07.10
14:14
"передай в Расшифр -> ПараметрКарточкиСчета" это так: Область3Строка.Параметры.Расшифр = ПараметрыКарточкиСчета;

если написать
Область3Строка.Параметры.Расшифр = ПараметрыКарточкиСчета;
то при нажатии на ячейку появляется окно со словом "соответствие"
8 Невский Александр
 
30.07.10
14:22
(7) СтандартнаяОбработка = ЛОЖЬ;

Далеее смотри
ПолеТабличногоДокумента.ОбработкаРасшифровки (SpreadsheetDocumentField.DetailProcessing)
ПолеТабличногоДокумента (SpreadsheetDocumentField)
ОбработкаРасшифровки (DetailProcessing)
Синтаксис:
ОбработкаРасшифровки(<Расшифровка>, <Стандартная обработка>)
Параметры:
<Расшифровка>
Тип: Произвольный. Значение расшифровки ячейки или рисунка.
<Стандартная обработка>
Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина
Описание:
Возникает при двойном щелчке мыши (нажатии клавиши Enter) на ячейке или рисунке, которые содержат значение расшифровки.

/////
Если ТипЗнч(Расшифровка) = Тип("Соответствие") Тогда

     ... определяешь структуру соответствия - если все ОК, все данные есть и это именно то соответствие, то и получаешь здесь форму отчета, передаешь параметры, владельца и открываешь форму
9 ekat_kuzn
 
30.07.10
14:38
спасибо большое, не ожидала такого быстрого ответа.
так у меня из макета расшифровка, а не из формы. поля таб. документа нет(.
10 ekat_kuzn
 
30.07.10
14:38
СКД не используется.
11 Невский Александр
 
30.07.10
14:50
(9) А какая разница? Или нельзя добавить на форму поле табл. документа?
12 Невский Александр
 
30.07.10
14:51
(10) Ну и получается - что СКД не ипользуется
В любом случае в 8.1 расшифровка работает ТОЛЬКО для поля табл. документа
По-другому никак
13 ekat_kuzn
 
30.07.10
15:19
т.е.вызывая для ячейки макета расшифровку, отчет-расшифровка будет на форме в поле табличного документа?
14 ekat_kuzn
 
30.07.10
15:20
нужно вызывать событие "ОбработкаРасшифровки" для поля таб документа?
15 ekat_kuzn
 
30.07.10
15:21
(13) странно
16 ekat_kuzn
 
30.07.10
15:22
вызывать тогда надо расшифровку из поля таб док-та и без макета, видимо
17 ekat_kuzn
 
30.07.10
15:24
если не вызывать событие "ОбработкаРасшифровки" поля табличного документа:
ЭтотОбъект.получитьформу().ЭлементыФормы.ПолеТабличногоДокумента1.ОбработкаРасшифровки(ПараметрыКарточкиСчета,ЛОЖЬ);
   Если ТипЗнч(ПараметрыКарточкиСчета) = Тип("Структура") ИЛИ ТипЗнч(ПараметрыКарточкиСчета) = Тип("Соответствие") Тогда
       Отчет = Отчеты[ПараметрыКарточкиСчета["ИмяОбъекта"]].Создать();
       Отчет.Настроить(ПараметрыКарточкиСчета);
       ФормаОтчета = Отчет.ПолучитьФорму(, , Новый УникальныйИдентификатор());
       ФормаОтчета.ПоказыватьЗаголовок = Истина;
       ФормаОтчета.ОбновитьОтчет();
       ФормаОтчета.Открыть();
   КонецЕсли;
пишет "поле объекта недоступно для чтения"
18 ekat_kuzn
 
30.07.10
15:25
(17) из модуля объекта
19 Невский Александр
 
30.07.10
15:28
(18) а на какую строку именно ругается?
20 ekat_kuzn
 
30.07.10
15:30
ЭтотОбъект.получитьформу().ЭлементыФормы.ПолеТабличногоДокумента1.ОбработкаРасшифровки(ПараметрыКарточкиСчета,ЛОЖЬ);

ПараметрыКарточкиСчета - соответствие, я проверяла
21 ekat_kuzn
 
30.07.10
15:31
С учетом (4) про владельца:
ЭтотОбъект.получитьформу().ЭлементыФормы.ПолеТабличногоДокумента1.ОбработкаРасшифровки(ПараметрыКарточкиСчета,ЛОЖЬ);
   Если ТипЗнч(ПараметрыКарточкиСчета) = Тип("Структура") ИЛИ ТипЗнч(ПараметрыКарточкиСчета) = Тип("Соответствие") Тогда
       Отчет = Отчеты[ПараметрыКарточкиСчета["ИмяОбъекта"]].Создать();
       Отчет.Настроить(ПараметрыКарточкиСчета);
       ФормаОтчета = Отчет.ПолучитьФорму(,ЭтотОбъект.получитьформу(), Новый УникальныйИдентификатор()); //*
       ФормаОтчета.ЗакрыватьПриЗакрытииВладельца = ИСТИНА;  //*
       ФормаОтчета.ПоказыватьЗаголовок = Истина;
       ФормаОтчета.ОбновитьОтчет();
       ФормаОтчета.Открыть();
   КонецЕсли;
22 ekat_kuzn
 
30.07.10
15:33
с чего ему не ругаться, если это просто поле таб док-та, с отчетом никак не связано(
23 Невский Александр
 
30.07.10
15:33
(20) потому что неправильно
Нельзя так делать
24 Невский Александр
 
30.07.10
15:35
процедура ОбработкаРасшифровки у поля таб. документа является ЗАРЕЗЕРВированной (аналогично, также как и например, ПриОткрытии() у формы)
и параметры туда никакие передавать не надо - она сама использует два своих параметра Расшифровка и СтандартнаяОбработка
25 Невский Александр
 
30.07.10
15:36
Соответственно и проверять надо будет не так ...
Если ТипЗнч(ПараметрыКарточкиСчета) = Тип("Структура") ИЛИ ТипЗнч(ПараметрыКарточкиСчета) = Тип("Соответствие") Тогда

а вот так
Если ТипЗнч(Расшифровка) = Тип("Структура") ИЛИ ТипЗнч(Расшифровка) = Тип("Соответствие") Тогда
26 ekat_kuzn
 
30.07.10
15:39
Если ТипЗнч(Расшифровка) = Тип("Структура") ИЛИ ТипЗнч(Расшифровка) = Тип("Соответствие") Тогда   - Переменная не определена (Расшифровка)
27 ekat_kuzn
 
30.07.10
15:49
не понимаю:
ЭтотОбъект.получитьформу().ЭлементыФормы.ПолеТабличногоДокумента1.ОбработкаРасшифровки(,ЛОЖЬ); - Возникает при двойном щелчке мыши (нажатии клавиши Enter) на ячейке или рисунке, которые содержат значение расшифровки.
Значит, этот код должен располагаться в событии "обработкарасшифровки", а онсейчас в модуле объекта.
28 ekat_kuzn
 
30.07.10
16:00
Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   стандартнаяобработка=ложь;
   Если ТипЗнч(Расшифровка) = Тип("Структура") ИЛИ ТипЗнч(Расшифровка) = Тип("Соответствие") Тогда
       Отчет = Отчеты[Расшифровка["ИмяОбъекта"]].Создать();
       Отчет.Настроить(Расшифровка);
       ФормаОтчета = Отчет.ПолучитьФорму(,ЭтотОбъект.получитьформу(), Новый УникальныйИдентификатор()); //*
       ФормаОтчета.ЗакрыватьПриЗакрытииВладельца = ИСТИНА;  //*
       ФормаОтчета.ПоказыватьЗаголовок = Истина;
       ФормаОтчета.ОбновитьОтчет();
       ФормаОтчета.Открыть();
   КонецЕсли;
КонецПроцедуры
29 ekat_kuzn
 
30.07.10
16:01
В модуле объекта:
...
ПараметрыКарточкиСчета.Вставить("Отбор", ОтборПоКонтрагенту);
   Область3Строка.Параметры.Расшифр = ПараметрыКарточкиСчета;
       
   ЭтотОбъект.получитьформу().ЭлементыФормы.ПолеТабличногоДокумента1.ОбработкаРасшифровки();
30 ЗлобнийМальчик
 
30.07.10
16:02
(0) это невозможно
31 ekat_kuzn
 
30.07.10
16:09
(24) если параметры не передавать, то как связать ячейку макета (данные о ней) и поле таб док-та?
32 Невский Александр
 
30.07.10
16:12
(31)
Делается так:
В макете нужно задать "параметрРасшифровки", перадать туда твое соответствие
Область.параметры.ПараметрыДляОтчета = параметрыКарточкиСчета;

А в процедуре ОбработкаРасшифровки  ты это соответствие сможешь получить как Расшифровка
33 ekat_kuzn
 
30.07.10
16:21
в макете пар-тр расшифровки назван "Расшифр"
Область3Строка.Параметры.Расшифр = ПараметрыКарточкиСчета; (29) - так и написано

отчет главный выводится, при нажатии на ячейку этого отчета выводится окно со словом "соответствие".

еще раз:
1) в модуле объектанаписано:
Область3Строка.Параметры.Расшифр = ПараметрыКарточкиСчета;
   //ЭтотОбъект.получитьформу().ЭлементыФормы.ПолеТабличногоДокумента1.ОбработкаРасшифровки(Область3Строка.Параметры.Расшифр,ПараметрыКарточкиСчета);
   
2) в модуле формы:
Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   стандартнаяобработка=ложь;
   Если ТипЗнч(Расшифровка) = Тип("Структура") ИЛИ ТипЗнч(Расшифровка) = Тип("Соответствие") Тогда
       Отчет = Отчеты[Расшифровка["ИмяОбъекта"]].Создать();
       Отчет.Настроить(Расшифровка);
       ФормаОтчета = Отчет.ПолучитьФорму(,ЭтотОбъект.получитьформу(), Новый УникальныйИдентификатор()); //*
       ФормаОтчета.ЗакрыватьПриЗакрытииВладельца = ИСТИНА;  //*
       ФормаОтчета.ПоказыватьЗаголовок = Истина;
       ФормаОтчета.ОбновитьОтчет();
       ФормаОтчета.Открыть();
   КонецЕсли;
КонецПроцедуры
34 ekat_kuzn
 
30.07.10
16:23
у меня в 16-30 инет отключится, потом только вечером смогу зайти
35 ekat_kuzn
 
30.07.10
16:25
(32) вместо ПараметрыДляОтчета у меня Расшифр. верно?
36 ekat_kuzn
 
30.07.10
17:13
а вот и я
Закон Брукера: Даже маленькая практика стоит большой теории.