![]() |
|
Кросс-отчет по продажам | ☑ | ||
---|---|---|---|---|
0
Harad
05.12.24
✎
21:11
|
Здравствуйте. Столкнулся с трудностью в отображение данных в кросс - таблице.
Работа с Кросс Таблицей. Сразу говорю, Да, я новичок и только учусь всем прелестям этой программы. // Мы Создали Макет. Сделали все поля под макет // А Теперь будем прописывать вся поля у Макета // Наша задача: Чтоб на пересечение столбцов и строк были показатели продаж. &НаСервере Процедура СформироватьОтчетПоКроссТаблицеНаСервере(ТабДок) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПродажиОбороты.Контрагент КАК Контрагент, | ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.Контрагент) КАК КонтрагентПредставление, | ПродажиОбороты.Номенклатура КАК Номенклатура, | ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.Номенклатура) КАК НоменклатураПредставление, | ПродажиОбороты.СуммаОборот КАК Сумма |ИЗ | РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты |ИТОГИ | СУММА(Сумма) |ПО | ОБЩИЕ, | Контрагент, | Номенклатура"; РезультатЗапроса = Запрос.Выполнить(); МакетКросТаб = РеквизитФормыВЗначение("Объект").ПолучитьМакет("МакетКроссТаблицы"); ОбластьШапкаТовар = МакетКросТаб.ПолучитьОбласть ("Шапка|Товар"); ОбластьШапкаПокупатель = МакетКросТаб.ПолучитьОбласть ("Шапка|Покупатель"); ОбластьШапкаИтог = МакетКросТаб.ПолучитьОбласть ("Шапка|Итог"); ОбластьСтрокаТовар = МакетКросТаб.ПолучитьОбласть ("Строка|Товар"); ОбластьСтрокаПокупатель = МакетКросТаб.ПолучитьОбласть ("Строка|Покупатель"); ОбластьСтрокаИтог = МакетКросТаб.ПолучитьОбласть ("Строка|Итог"); ОбластьПодвалТовар = МакетКросТаб.ПолучитьОбласть ("Подвал|Товар"); ОбластьПодвалПокупатель = МакетКросТаб.ПолучитьОбласть ("Подвал|Покупатель"); ОбластьПодвалИтог = МакетКросТаб.ПолучитьОбласть ("Подвал|Итог"); ВыборкаКлиент = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Контрагент"); ТабДок.Вывести(ОбластьШапкаТовар); Пока ВыборкаКлиент.Следующий() Цикл ОбластьШапкаПокупатель.Параметры.Заполнить (ВыборкаКлиент); ТабДок.Присоединить (ОбластьШапкаПокупатель); КонецЦикла; ТабДок.Присоединить (ОбластьШапкаИтог); КонецПроцедуры &НаКлиенте Процедура СформироватьОтчетПоКроссТаблице(Команда) ТабДок = Новый ТабличныйДокумент; СформироватьОтчетПоКроссТаблицеНаСервере(ТабДок); ТабДок.Показать(); КонецПроцедуры //Сам Макет был создан. Поля тоже были созданы. //Ячейки выставлены в параметры. //Когда создаю кросс таблицу в пользовательском режиме - даже отображается нужное количество столбцов. Но не отображаются данные по контрагентам (пустые поля) // Через "Вычислить Выражение" в цикл поступают данные из БД, но не отображаются при выведение в польз.режиме. //По ощущениям, я словно не вывожу данные в пользовательский режим, не хватает скила ещё понять, что нужно дописать. |
|||
1
Harad
05.12.24
✎
21:23
|
И да, я застрял на этапе вывода контрагентов, потому пока что не продолжаю писать код по выведению номенклатуры и показателей суммы.
Сначала хочу решить текущую проблему, понять в чём же проблема и только потом - продолжить. |
|||
2
Jackman
05.12.24
✎
21:27
|
(0) Поставьте точку останова в отладчике на:
ОбластьШапкаПокупатель.Параметры.Заполнить (ВыборкаКлиент) и посмотрите, что в ВыборкаКлиент, а лучше, вообще, временно для тестов заменить эту строку на ОбластьШапкаПокупатель.Параметры.Контрагент= ВыборкаКлиент.Контрагент Ясно, что поля должны называться как в запросе и как в макете. |
|||
3
Мультук
05.12.24
✎
21:34
|
(0)
1) Тут проблема не в, что вы новичок в 1С Тут проблема в том, что вы новичок в программировании. 2) Такое, наверное уже никто кодом не делает, ибо есть СКД google: 1С СКД Хрусталева Книга google: 1C СКД кросс таблица https://курсы-по-1с.рф/free/ Регимся, ищем по фразу "Бесплатный курс по СКД (Система Компоновки Данных)" Качаем смотрим 3) У вас проблема в том, что вы прыгаете через ступени обучения. Как минимум должен быть цикл в цикле верно ? Цикл по строкам, а внутри цикл по столбцам. При этом отдельно -- для шапки -- для данных -- для подвала 4) Тут ещё куча пунктов. Начните с моего пункта 2, и возьмите пока более легкую задачу. |
|||
4
Harad
05.12.24
✎
21:35
|
(2)
ВыборкаКлиент.Контрагент //Показывает самого контрагента. Всё верно. Данные забираются из Иб Только в пользовательском режиме, всё так же, не отображаются данные. |
|||
5
Мультук
05.12.24
✎
21:36
|
||||
6
Мультук
05.12.24
✎
21:43
|
||||
7
Harad
05.12.24
✎
21:43
|
(3) Полностью с Вами согласен. Спешу.
Возьму на вооружение литературу профильную. Видимо, слишком рано в такую тему залез ) Но, исправлюсь!) ---------- Спасибо За Помощь) Попробую, буду стараться) ---- Почему то статью с разжёвыванием не нашёл до этого, каюсь. Видимо плохо искал |
|||
8
Волшебник
05.12.24
✎
21:44
|
При выборке оборотов надо указывать период
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |