Имя: Пароль:
1C
1С v8
Обработка расшифровки для присоединяемых областей
0 Elena Komnina
 
26.12.15
00:56
Есть отчет с произвольным макетом: про строкам выводятся подразделения, в колонках месяца, на пересечение сумма продажи. Не получается реализовать обработку расшифровки (нужно расшифровать по документам).
При присоединении колонки для ячейки прописываю параметр расшифровки в следующем виде:

СтруктураРасшифровки = Новый Структура;
СтруктураРасшифровки.Вставить("Подразделение",
ТекущееПодразделение);
СтруктураРасшифровки.Вставить("НачалоПериода", ДатаНач);

В процедуре обработки расшифровки для табличного поля прописываю следующий текст:

Если ТипЗнч(Расшифровка) = Тип("Структура") Тогда
  СтандартнаяОбработка = Ложь;
  ДатаРасшифровки = Расшифровка.НачалоПериода;
КонецЕсли;

Но при обработке расшифровки получаю последнее установленное значение параметра. Например, при формировании отчета за январь-февраль при попытке расшифровать ячейку января ДатаРасшифровки  равна не январю, а февралю.
1 Nuobu
 
26.12.15
01:05
(0) СтруктураРасшифровки.Вставить("НачалоПериода", ДатаНач);

СтруктураРасшифровки.Вставить("НачалоПериода", Выборка.Период);
2 Elena Komnina
 
26.12.15
01:24
(0)На этапе заполнения все правильно: у меня ДатаНач заполняется как ВыборкаПериод.Месяц.
Отладчик показывает, что параметр заполнен нужной датой.
3 Nuobu
 
26.12.15
01:33
(2) Тогда всё равно попробуй написать как написано в (1)
4 Elena Komnina
 
26.12.15
01:34
Если более подробно, то заполнение идет так:

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

Процедура ЗаполнитьСтруктуруПараметров(ДатаНач, ДатаКон, Вид, СтатьяЗатрат = Неопределено);
    
    мСтруктураРасшифровки.Очистить();
    мСтруктураРасшифровки.Вставить("Подразделение", мТекущееПодразделение);
    мСтруктураРасшифровки.Вставить("Вид",           Вид);
    мСтруктураРасшифровки.Вставить("НачалоПериода", ДатаНач);
    мСтруктураРасшифровки.Вставить("КонецПериода",  ДатаКон);
        
КонецПроцедуры
5 Nuobu
 
26.12.15
01:37
Процедура ЗаполнитьСтруктуруПараметров(ДатаНач, ДатаКон, Вид, СтатьяЗатрат = Неопределено);
    
    //мСтруктураРасшифровки.Очистить();

мСтруктураРасшифровки = Новый Структура();

    мСтруктураРасшифровки.Вставить("Подразделение", мТекущееПодразделение);
    мСтруктураРасшифровки.Вставить("Вид",           Вид);
    мСтруктураРасшифровки.Вставить("НачалоПериода", ДатаНач);
    мСтруктураРасшифровки.Вставить("КонецПериода",  ДатаКон);
        
КонецПроцедуры
6 Elena Komnina
 
26.12.15
01:42
Nuobu, спасибо! Теперь все работает. И правда глупая ошибка.
7 Nuobu
 
26.12.15
01:44
(6) В качестве благодарности, принято фото выставлять в профиле.