|
Проблемы с реализацией расшифровки в отчете... | ☑ | ||
---|---|---|---|---|
0
MeGa_BALANCE
26.09.12
✎
10:35
|
Прошу помочь тех кто с этим работал...
В отчете присоединяются много горизонтальных группировок Процедура ВывестиМассив(СтВыв, ТабДок, Макет, НомП) ОблГЛ = Макет.ПолучитьОбласть("Строка|Лево"); ОблГП = Макет.ПолучитьОбласть("Строка|Право"); СтруктураРас=Новый Структура; СтруктураРас.Вставить("Номенклатура",НомП); //ТабДок.Присоединить(ОблГЛ); ТипВыв=""; ММин=0; Для каждого СтМ из СтВыв цикл Если Найти(СтМ.Ключ,"Остаток")>0 Тогда ОблШапкаОС = Макет.ПолучитьОбласть("Строка|Остаток"); ОблШапкаОС.Параметры.ОстатокС=СтМ.Значение; СтруктураРасшифровки = СтруктураРас; СтруктураРасшифровки.Вставить("Склад",ВывестиСкладИзМассива(СтМ.Ключ)); СтруктураРасшифровки.Вставить("Регистр","Остаток"); ОблШапкаОС.Параметры.РасшифровкаО=СтруктураРасшифровки; ТабДок.Присоединить(ОблШапкаОС); ИначеЕсли Найти(СтМ.Ключ,"Резерв_")>0 Тогда Если ТипВыв <> "Резерв" Тогда ТипВыв = "Резерв"; ТабДок.Присоединить(ОблГЛ); ТабДок.Присоединить(ОблГП); КонецЕсли; ОблШапкаР = Макет.ПолучитьОбласть("Строка|Резерв"); ОблШапкаР.Параметры.РезервС=СтМ.Значение; СтруктураРасшифровки = СтруктураРас; СтруктураРасшифровки.Вставить("Склад",ВывестиСкладИзМассива(СтМ.Ключ)); СтруктураРасшифровки.Вставить("Регистр","Резерв"); ОблШапкаР.Параметры.РасшифровкаР=СтруктураРасшифровки; ТабДок.Присоединить(ОблШапкаР); ИначеЕсли Найти(СтМ.Ключ,"РезервО_")>0 Тогда Если ТипВыв <> "РезервО" Тогда ТипВыв = "РезервО"; ТабДок.Присоединить(ОблГЛ); ТабДок.Присоединить(ОблГП); КонецЕсли; ОблШапкаОР = Макет.ПолучитьОбласть("Строка|РезервО"); ОблШапкаОР.Параметры.РезервОС=СтМ.Значение; СтруктураРасшифровки = СтруктураРас; СтруктураРасшифровки.Вставить("Склад",ВывестиСкладИзМассива(СтМ.Ключ)); СтруктураРасшифровки.Вставить("Регистр","Резерв"); ОблШапкаОР.Параметры.РасшифровкаО = СтруктураРасшифровки; ТабДок.Присоединить(ОблШапкаОР); ИначеЕсли Найти(СтМ.Ключ,"ВнуреннийЗаказ_")>0 Тогда Если ТипВыв <> "ВнуреннийЗаказ" Тогда ТипВыв = "ВнуреннийЗаказ"; ТабДок.Присоединить(ОблГЛ); ТабДок.Присоединить(ОблГП); КонецЕсли; ОблШапкаВР = Макет.ПолучитьОбласть("Строка|ВнуреннийЗаказ"); ОблШапкаВР.Параметры.ВнтрЗак=СтМ.Значение; СтруктураРасшифровки = СтруктураРас; СтруктураРасшифровки.Вставить("Склад",ВывестиСкладИзМассива(СтМ.Ключ)); СтруктураРасшифровки.Вставить("Регистр","Резерв"); ОблШапкаВР.Параметры.РасшифровкаО = СтруктураРасшифровки; ТабДок.Присоединить(ОблШапкаВР); ИначеЕсли Найти(СтМ.Ключ,"ЗаказаноВнутр_")>0 Тогда Если ТипВыв <> "ЗаказаноВнутр_" Тогда ТипВыв = "ЗаказаноВнутр_"; ТабДок.Присоединить(ОблГЛ); ТабДок.Присоединить(ОблГП); КонецЕсли; ОблШапкаЗВ = Макет.ПолучитьОбласть("Строка|ЗаказаноВнутр"); ОблШапкаЗВ.Параметры.ЗакВнутр=СтМ.Значение; СтруктураРасшифровки = СтруктураРас; СтруктураРасшифровки.Вставить("Склад",ВывестиСкладИзМассива(СтМ.Ключ)); СтруктураРасшифровки.Вставить("Регистр","Резерв"); ОблШапкаЗВ.Параметры.РасшифровкаО = СтруктураРасшифровки; ТабДок.Присоединить(ОблШапкаЗВ); ИначеЕсли Найти(СтМ.Ключ,"Заказ_")>0 Тогда Если ТипВыв <> "Заказ" Тогда ТипВыв = "Заказ"; ТабДок.Присоединить(ОблГЛ); ТабДок.Присоединить(ОблГП); КонецЕсли; ОблШапкаЗ = Макет.ПолучитьОбласть("Строка|Заказ"); ОблШапкаЗ.Параметры.ЗаказС=СтМ.Значение; СтруктураРасшифровки = СтруктураРас; СтруктураРасшифровки.Вставить("Склад",ВывестиСкладИзМассива(СтМ.Ключ)); СтруктураРасшифровки.Вставить("Регистр","Заказ"); ОблШапкаЗ.Параметры.РасшифровкаЗ = СтруктураРасшифровки; ТабДок.Присоединить(ОблШапкаЗ); ИначеЕсли Найти(СтМ.Ключ,"ЛимитМи_")>0 Тогда ММин = СтМ.Значение; ИначеЕсли Найти(СтМ.Ключ,"ЛимитМа_")>0 Тогда Если ТипВыв <> "ЛимитМа" Тогда ТипВыв = "ЛимитМа"; ТабДок.Присоединить(ОблГЛ); ТабДок.Присоединить(ОблГП); КонецЕсли; ОблШапкаЛим = Макет.ПолучитьОбласть("Строка|Лимит"); ОблШапкаЛим.Параметры.МинС=ММин; ОблШапкаЛим.Параметры.МаксС=СтМ.Значение; Если НеУчитыватьМин Тогда ОблШапкаЛим.Параметры.МинС="---"; КонецЕсли; Если НеУчитыватьМакс Тогда ОблШапкаЛим.Параметры.МаксС="---"; КонецЕсли; ТабДок.Присоединить(ОблШапкаЛим); ИначеЕсли Найти(СтМ.Ключ,"Необходимо_")>0 Тогда Если ТипВыв <> "Необходимо" Тогда ТипВыв = "Необходимо"; ТабДок.Присоединить(ОблГЛ); ТабДок.Присоединить(ОблГП); КонецЕсли; Если СтМ.Значение<0 Тогда ОблШапкаН = Макет.ПолучитьОбласть("Излишки|Необходимо"); Иначе ОблШапкаН = Макет.ПолучитьОбласть("Строка|Необходимо"); КонецЕсли; ОблШапкаН.Параметры.НеобходимоС=СтМ.Значение; ТабДок.Присоединить(ОблШапкаН); Иначе Сообщить("Параметр структуры не определен для " + СтМ.Ключ); КонецЕсли; КонецЦикла; ТабДок.Присоединить(ОблГЛ); КонецПроцедуры После того как по отладчику СтруктураРасшифровки были поделены по складам и типу рассшифровки... при выводе: Процедура ОбрРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Если ТипЗнч(Расшифровка) = Тип("Структура") Тогда Форма=ПолучитьФорму("ФормаДокументы"); Если Форма.Открыта() Тогда Форма.Закрыть(); КонецЕсли; СтандартнаяОбработка = Ложь; //переписать Форма=ПолучитьФорму("ФормаДокументы"); Форма.Номенклатура=Расшифровка.Номенклатура; Форма.Склад=Расшифровка.Склад; Форма.НаДату=КонецДня(НаДату); Форма.Регистр=Расшифровка.Регистр; Форма.Открыть(); КонецЕсли; КонецПроцедуры В параметр расшифровки попадает последнее значение склада и регистра выведеного на строке, при этом расшифровка ведется по "Ячейкам"... Есть предположение что функция .Присодинить() обединяет расшифровки и устанавливает туда последнюю... |
|||
1
MeGa_BALANCE
26.09.12
✎
10:47
|
ТабДок.Присоединить - Обединяет расшифровки?
|
|||
2
MeGa_BALANCE
26.09.12
✎
11:10
|
можно коненечно переписать все по адрессам ячеек определять параметры.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |