|
Расшифровка | ☑ | ||
---|---|---|---|---|
0
lg2marvel
11.10.18
✎
12:32
|
Всем привет, делаю расшифровке в отчете.
Есть макет, вывожу его на табличное поле на форме. Для Каждого стр из тзЗапросСклады Цикл Строка.Параметры.Склад = стр.Склад; СтруктураРасшифровки = Новый Структура; СтруктураРасшифровки.Вставить("Склад",стр.Склад); СтруктураРасшифровки.Вставить("Поле",1); Строка.Параметры.РасшифровкаСклад = СтруктураРасшифровки; СтруктураРасшифровки.Вставить("Поле",2); Строка.Параметры.РасшифровкаПродажа = СтруктураРасшифровки; ............................................................................. Таб.Вывести(Строка); Процедура ТабличныйДокументОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Если Расшифровка.Поле = 1 Тогда ОткрытьЗначение(Расшифровка.Склад); ИначеЕсли Расшифровка.Поле = 2 Тогда Сообщить("Продажа"); КонецЕсли; КонецПроцедуры Все бы ничего, но отрабатывает только СтруктураРасшифровки.Поле = 2, куда бы я не нажимал. Но у меня возникает вопрос, есть же Элемент, куда попадает ячейка табличного поля. Но получить я могу только его координаты (Ячейка.Имя). Может можно как-то узнать параметра ячейки по которой я клацаю? |
|||
1
lg2marvel
11.10.18
✎
12:34
|
(0) ячейка в смысле Элемент - 1-й параметр процедуры расшифровки
|
|||
2
lg2marvel
11.10.18
✎
12:41
|
Как я понял для стандртного обработчика расшифровки все равно как я обозвал параметр расшифровки? Или можно как-то обратиться к нему?
|
|||
3
lg2marvel
11.10.18
✎
12:41
|
{ВнешнийОтчет.ФинРезультат.Форма.ФормаОтчета.Форма(1507)}: Поле объекта не обнаружено (ПараметрРасшифровки)
Сообщить(Элемент.ПараметрРасшифровки); |
|||
4
lg2marvel
11.10.18
✎
12:44
|
Синтаксический помощник скуп до жути
|
|||
5
1Сергей
11.10.18
✎
12:49
|
(3) не нашел в (0) ПараметрРасшифровки
|
|||
6
1Сергей
11.10.18
✎
12:51
|
||||
7
lg2marvel
11.10.18
✎
12:55
|
(6)
Для Каждого стр из тзЗапросСклады Цикл Строка.Параметры.Склад = стр.Склад; СтруктураРасшифровки = Новый Структура; СтруктураРасшифровки.Вставить("Склад",стр.Склад); СтруктураРасшифровки.Вставить("Поле",1); Строка.Параметры.РасшифровкаСклад = СтруктураРасшифровки; Если не вписать имя параметра в свойствах ячейки - не будет работать и расшифровка (разве что только указать конкретно область расшифроки) |
|||
8
1Сергей
11.10.18
✎
12:58
|
(7) ну, так там вписан какой параметр? РасшифровкаСклад? В каком месте не можешь до расшифровки достучаться?
Как партизан на допросе |
|||
9
lg2marvel
11.10.18
✎
13:02
|
В ячейке Склад - параметр расшифровки РасшифрокаСклад, дальше ячейка Продажа - РасшифровкаПродажа.
В процедуре ОбработкаРасшифровки я хочу в зависимости от того на какой ячейке вызвана обработка расшифровки отбработать результат и вывести. На пример при нажатии на Склад - я просто выведу форму справочника Склад, а при нажатии на продажи - будет запрос к регистру продажи с группировкой по регистратору Вот в этой ОбработкаРасшифровки я не могу получить на какую ячейку я нажал. |
|||
10
lg2marvel
11.10.18
✎
13:05
|
(8) Да там вписан параметр РасшифровкаСклад
|
|||
11
Индиго
11.10.18
✎
13:05
|
(9)А в свойствах ячеек ты прописал имена расшифровок и назначил "для ячейки" а не "для строки"?
|
|||
12
lg2marvel
11.10.18
✎
13:08
|
(11) Да, использование расшифровки - ячейка
|
|||
13
lg2marvel
11.10.18
✎
13:11
|
При заполнении табличного документа делаю следующее:
СтруктураРасшифровки = Новый Структура; СтруктураРасшифровки.Вставить("Склад",стр.Склад); СтруктураРасшифровки.Вставить("Поле",1); Строка.Параметры.РасшифровкаСклад = СтруктураРасшифровки; СтруктураРасшифровки.Поле = 2; Строка.Параметры.РасшифровкаПродажа = СтруктураРасшифровки; Чтоб передать в параметре СтруктураРасшифровки.Поле номер ячейки по которой я нажал. И потом обрабатываю в обработчике расшифровки: Процедура ТабличныйДокументОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Если Расшифровка.Поле = 1 Тогда ОткрытьЗначение(Расшифровка.Склад); ИначеЕсли Расшифровка.Поле = 2 Тогда Сообщить("Продажа"); КонецЕсли; В итоге получется куда бы я не нажимал мне выходит сообщение "продажа" |
|||
14
1Сергей
11.10.18
✎
13:19
|
(13) смотри ячейки слева от нужной. где-то стоит "для строки"
|
|||
15
1Сергей
11.10.18
✎
13:21
|
(13) и это... ты же Таб.Вывести(Строка) делаешь внутри цикла, между тем, как меняешь значения расшифровки?
|
|||
16
lg2marvel
11.10.18
✎
13:24
|
(14) Для всей табилцы сделал Использование расшифровки ячейка.
(15) Да, внутри цикла: Для Каждого стр из тзЗапросСклады Цикл //Выводим а ТЧ результат запроса Склады Строка.Параметры.Склад = стр.Склад; СтруктураРасшифровки = Новый Структура; //РРРРРРРРРРРРасшифровка мать её СтруктураРасшифровки.Вставить("Склад",стр.Склад); СтруктураРасшифровки.Вставить("Поле",1); Строка.Параметры.РасшифровкаСклад = СтруктураРасшифровки; СтруктураРасшифровки.Поле = 2; Строка.Параметры.РасшифровкаПродажа = СтруктураРасшифровки; ПараметрыОтбора.Вставить("Склад", стр.Склад); тзПродажиПоСкладу = тзПродажи.Скопировать(ПараметрыОтбора); ПродажаВРозницу = 0; ПродажаОПТ = 0; Для Каждого стрТЗ ИЗ тзПродажиПоСкладу Цикл Если ЗначениеЗаполнено(стрТЗ.СуммаОборот) И (стрТЗ.ВидОперации=Перечисления.ВидыОперацийПродажа.ПродажаВРозницу) Тогда ИтогоПродажа = ИтогоПродажа + стрТЗ.СуммаБезНДС; ПродажаВРозницу = ПродажаВРозницу + стрТЗ.СуммаБезНДС; ИначеЕсли ЗначениеЗаполнено(стрТЗ.СуммаОборот) И (стрТЗ.ВидОперации=Перечисления.ВидыОперацийПродажа.Продажа) Тогда ПродажаОПТ = ПродажаОПТ + стрТЗ.СуммаБезНДС; ИтогоПродажаОПТ = ИтогоПродажаОПТ + стрТЗ.СуммаБезНДС; ИначеЕсли ЗначениеЗаполнено(стрТЗ.СуммаОборот) И (стрТЗ.ВидОперации=Перечисления.ВидыОперацийПродажа.ВозвратПоКассе) Тогда ПродажаВРозницу = ПродажаВРозницу - МодульЧисла(стрТЗ.СуммаОборот); ИтогоПродажа = ИтогоПродажа - МодульЧисла(стрТЗ.СуммаОборот); КонецЕсли; КонецЦикла; стрВозвраты = тзВозвраты.НайтиСтроки(ПараметрыОтбора); НакоплениеВовзратов = 0; Для Каждого стрТЗ из стрВозвраты Цикл НакоплениеВовзратов = стрТЗ.СуммаБезНДС; КонецЦикла; ПродажаОПТ = ПродажаОПТ + НакоплениеВовзратов; ИтогоПродажаОПТ = ИтогоПродажаОПТ + НакоплениеВовзратов; Строка.Параметры.Продажа = ПродажаВРозницу; Строка.Параметры.ПродажаОПТ = ПродажаОПТ; Таб.Вывести(Строка); КонецЦикла; |
|||
17
lg2marvel
11.10.18
✎
13:24
|
||||
18
1Сергей
11.10.18
✎
13:26
|
(16) и что ты хочешь? у тебя на момент вывода Поле всегда будет 2
|
|||
19
1Сергей
11.10.18
✎
13:27
|
делай разные параметры расшифровки для разных ячеек.
И заполняй их отдельно |
|||
20
lg2marvel
11.10.18
✎
13:33
|
(19) Так они же разные!
СтруктураРасшифровки.Вставить("Поле",1); Строка.Параметры.РасшифровкаСклад = СтруктураРасшифровки; СтруктураРасшифровки.Поле = 2; Строка.Параметры.РасшифровкаПродажа = СтруктураРасшифровки; И на макете РасшифровкаПродажа и РасшифровкаСклад для соответствующих ячеек |
|||
21
Cool_Profi
11.10.18
✎
13:34
|
(20) Она у тебя одна и та же. Ссылка ведь не меняется.
Структуру заново создай для продажи |
|||
22
lg2marvel
11.10.18
✎
13:36
|
Да блин! Реально работает!
|
|||
23
lg2marvel
11.10.18
✎
13:36
|
СтруктураРасшифровки = Новый Структура; //РРРРРРРРРРРРасшифровка мать её
СтруктураРасшифровки.Вставить("Склад",стр.Склад); СтруктураРасшифровки.Вставить("Поле",1); Строка.Параметры.РасшифровкаСклад = СтруктураРасшифровки; СтруктураРасшифровки = Новый Структура; СтруктураРасшифровки.Вставить("Склад",стр.Склад); СтруктураРасшифровки.Вставить("Поле",2); Строка.Параметры.РасшифровкаПродажа = СтруктураРасшифровки; |
|||
24
Cool_Profi
11.10.18
✎
13:36
|
||||
25
lg2marvel
11.10.18
✎
13:37
|
Э то не поддается никакой логике!
|
|||
26
Cool_Profi
11.10.18
✎
13:38
|
(25) Это абсолютно нормальная логика для программиста. А не для бухгалтера.
|
|||
27
lg2marvel
11.10.18
✎
13:38
|
И да, я понял почему :-(, тупанул, при выводе строки данные в структуре были Поле = 2.Хоть куда ты их не присваивай
|
|||
28
lg2marvel
11.10.18
✎
13:39
|
need more practice
|
|||
29
lg2marvel
11.10.18
✎
13:39
|
Спасибо всем огромное, второй день на одном месте
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |