|
Все та же трудность с Табличным документом | ☑ | ||
---|---|---|---|---|
0
Gossar1C
21.08.13
✎
14:52
|
Здравствуйте еще раз. К сожалению не могу понять как выводить количество номенклатуры для каждого заказа (если содержатся).
http://s019.radikal.ru/i607/1308/c8/4054bd6a5bea.jpg &НаСервере Процедура ВыполнитьФормированиеОтчета() Данные = ЗаполнитьДанныеДляОтчета(); Макет = ПолучитьОбщийМакет("МакетОтчетаПоСкладам"); ДанныеЗаполнения = Данные.ТаблицаДанных.Выбрать(); ТаблицаСкладов = Новый ТаблицаЗначений; ТаблицаСкладов.Колонки.Добавить("Склад"); ТаблицаСкладов.Колонки.Добавить("Номенклатура"); Пока ДанныеЗаполнения.Следующий() Цикл ДанныеЗаполненияПоСкладам = Неопределено; ДанныеЗаполненияПоСкладам = ДанныеЗаполнения.ТаблицаТоваров.Выгрузить(); Для Каждого Элем Из ДанныеЗаполненияПоСкладам Цикл НоваяСтрока = ТаблицаСкладов.Добавить(); НоваяСтрока.Склад = Элем.Номенклатура.Склад; НоваяСтрока.Номенклатура = Элем.Номенклатура; КонецЦикла; КонецЦикла; ТаблицаНоменклатуры = ТаблицаСкладов.Скопировать(); ТаблицаСкладов.Свернуть("Склад"); ОбластьШапкаТаблицыЗаказы = Макет.ПолучитьОбласть("R1C2:R2C6"); Объект.ПолеОтчета.Вывести(ОбластьШапкаТаблицыЗаказы); ДанныеТаблицыСклад = Макет.ПолучитьОбласть("R3C2:R4C6"); ДанныеТаблицыНоменклатура = Макет.ПолучитьОбласть("R5C2:R5C6"); Уровень = 0; Стр = 0; Для Каждого ЭлементСклада ИЗ ТаблицаСкладов Цикл ДанныеТаблицыСклад.Параметры.Склад = ?(ЗначениеЗаполнено(ЭлементСклада.Склад),ЭлементСклада.Склад,"<не указан>"); Объект.ПолеОтчета.Вывести(ДанныеТаблицыСклад,Стр); СтруктураПоиска = Новый Структура; СтруктураПоиска.Вставить("Склад",ЭлементСклада.Склад); МассивНайденных = ТаблицаНоменклатуры.НайтиСтроки(СтруктураПоиска); Для Стр = 0 По МассивНайденных.Количество() Цикл Если Стр <> МассивНайденных.Количество() Тогда ДанныеТаблицыНоменклатура.Параметры.Номенклатура = МассивНайденных[Стр].Номенклатура; Объект.ПолеОтчета.Вывести(ДанныеТаблицыНоменклатура,Стр); КонецЕсли; КонецЦикла; Стр = Стр + 1; КонецЦикла; ДанныеЗаполненияШапки = Данные.ТаблицаДанных.Выбрать(); ОбластьДанныеТаблицыЗаказы = Макет.ПолучитьОбласть("ДанныеТаблицыЗаказы"); Пока ДанныеЗаполненияШапки.Следующий() Цикл ГотоваяСтрока = Сред(Строка(ДанныеЗаполненияШапки.Ссылка),Найти(ДанныеЗаполненияШапки.Ссылка,"РН"),11); ОбластьДанныеТаблицыЗаказы.Параметры.Ссылка = ГотоваяСтрока; Объект.ПолеОтчета.Вывести(ОбластьДанныеТаблицыЗаказы,ДанныеЗаполненияШапки.Уровень()); КонецЦикла; КонецПроцедуры |
|||
1
Gossar1C
21.08.13
✎
14:56
|
Вот пример того что получается сейчас
http://s48.radikal.ru/i121/1308/e4/51cc38ce584f.jpg склады и номенклатура с заказами ставятся нормально |
|||
2
Gossar1C
21.08.13
✎
15:16
|
похоже опять печалька =\ и помощи я не дождусь
|
|||
3
Zamestas
21.08.13
✎
15:24
|
(0) Запросом выбрать не?
|
|||
4
Gossar1C
21.08.13
✎
15:25
|
(3) да запросом понятно, я не понимаю как на табличный документ это залить, ведь тут же пересечение идет
|
|||
5
Gossar1C
21.08.13
✎
15:28
|
(3) просто как уровень задавать на пересечении? если допустим область вертикальная то он будет выводить данные по вертикали если горизонтальная то наоборот
|
|||
6
Gossar1C
22.08.13
✎
09:48
|
up
|
|||
7
Crush
22.08.13
✎
10:53
|
В скд в настройках вида отчета добавь таблицу и сделай группировки по строкам и по колонкам. Вот тебе и пересечение будет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |