|
Программная настройка СКД | ☑ | ||
---|---|---|---|---|
0
Tornadius
19.05.23
✎
05:11
|
Доброго дня, форумчане!
Прошу помощь зала - уперся в, с первого раза, простую задачу: Добавить в существующий отчет еще одно поле. Отчет называется "Материальная ведомость" Конфа "БП для Казахстана", но сути СКД не меняет. Отдельным запросом выдернул данные и связал со старым через связь наборов в СКД, Но все уперлось в то, что вся структура настроек в процедуре "ПередКомпановкойМакета..." очищается и заново создается программно. Добавил код: Таблица = КомпоновщикНастроек.Настройки.Структура.Добавить(Тип("ТаблицаКомпоновкиДанных")); ... НоваяКолонкаОтчета = Таблица.Колонки.Добавить(); НоваяКолонкаОтчета.Использование = ПараметрыОтчета.ФМаксДата; ПолеВыбора = НоваяКолонкаОтчета.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ПолеВыбора.Поле = Новый ПолеКомпоновкиДанных("МаксДата"); ПолеВыбора.Использование = ПараметрыОтчета.ФМаксДата; где: "МаксДата" - поле -она же дата последней операции с номенклатурой в строках отчета "ФМаксДата" - флаг выводить поле или нет. Но колонок добавляется очень много - на каждое значение в строках, как бы развернута получается по горизонтали а не по вертикали по строкам) Что я делаю не так? И как правильно программно добавить колонку в отчет? |
|||
1
toypaul
19.05.23
✎
07:46
|
нарисуй сначала что есть сейчас и что тебе нужно. а то ты в показаниях путаешься
|
|||
2
Tornadius
19.05.23
✎
08:36
|
(1) Нужно добавить в отчет который формируется программно, дополнительную колонку с датой последней операции по номенклатуре.
сам отчет выглядит стандартно: строки - "Номенклатура", Колонки - "Нач. Остаток", "Приход", "Расход", "Кон. остаток" с подколонками "Кол-во" и "Сумма" Мне удалось добавить колонку "Дата последней операции", сделав поле "МаксДата" ресурсом, но в нее выводится только максимальное значение по всем строкам, что не правильно. Должна выводиться для каждой номенклатуры (строки) своя максдата. и в запросе я это все получаю, а вывести в СКД не могу. |
|||
3
areaho0ray
19.05.23
✎
09:06
|
Тебе не новая колонка нужна, а поле с этой датой добавить.
|
|||
4
Tornadius
19.05.23
✎
09:15
|
(3) Как это сделать программно?
|
|||
5
toypaul
19.05.23
✎
09:30
|
Надо добавить колонку с пустой группировкой. В нее в выбранные поля добавить свое поле
|
|||
6
areaho0ray
19.05.23
✎
09:32
|
Подчиненную сроку смотри в структуре Таблица.Строки без группировок - там должны быть все поля в Таблица.Строки[].Выбор
|
|||
7
toypaul
19.05.23
✎
09:34
|
По идее в (0) так и сделано. Не понятно почему не работает
|
|||
8
Tornadius
19.05.23
✎
09:39
|
(7) Такое ощущение, что результат запроса глючит, но в СКД его никак не посмотреть.
так как там идет объеденение из 3 наборов данных, и к нему через связь наборов добавлен четвертый набор, который как раз и содержит МаксДату |
|||
9
Tornadius
19.05.23
✎
09:42
|
вот бы выдернуть данные из СКД сразу после завершения запроса но до создания таблицы и посмотреть что туда попадает
|
|||
10
illiona
naïve
19.05.23
✎
09:43
|
Попробуй выгрузить скд запрос в файл и загрузить в КонсольСистемыКомпоновкиДанных.erf и потестировать.
|
|||
11
Tornadius
19.05.23
✎
09:44
|
(5) Делал так, все равно пока ресурсом не сделаешь колонку не получишь. Будет группировка по значению данного поля - т.е. столько колонок сколько различных значений
|
|||
12
Tornadius
19.05.23
✎
09:45
|
(10) Это которая на сайте 1С? она этого не делает.
|
|||
13
Tornadius
19.05.23
✎
09:48
|
(10) Мало того, она работает только в толстом клиенте
|
|||
14
Tornadius
19.05.23
✎
09:52
|
Может кто знает, как перехватить программно выполнение, на пример в процедурах перед или после компановки?
|
|||
15
Мультук
19.05.23
✎
09:57
|
(14)
Сделайте внешний отчёт. (его проще менять) Добавьте руками СКД. Добавьте руками ресурс и поле. Получите результат. Убедитесь, что он правильный. Затем удалите этот ресурс и поле. Добавляйте их программно, пока не получите такой же результат. Пьем чай, берем с полки пирожок. (с) Переносим программный код в основной отчёт. |
|||
16
Tornadius
19.05.23
✎
10:02
|
(15) Этим и занимаюсь. Выгрузил из конфы отчет "Материальная ведомость",
чтобы его не ломать добавил свой набор данных в котором ищу максдату последней операции и связал его с тем что было. теперь хочу вывести свое поле, но блин (см. (0)) там программная очистка и заново сборка структуры отчета. Я поле получил, но оно заполняется не верно. В консоли запросов все работает - в СКД нет, вои и хочу узнать, что не так делаю |
|||
17
Мультук
19.05.23
✎
10:08
|
(16)
>> чтобы его не ломать добавил свой набор данных в котором ищу максдату последней операции Текст запроса в наборе, который ищет максДата Текст ресурса "МаксДата" >>и связал его с тем что было. Скриншот связи >>В консоли запросов все работает Там априори нет связи между наборами >> Я поле получил, но оно заполняется не верно Что такое "неверно" ? Упростите пример до 2-3 позиций и объясните сначала себе какую дату должно показывать, а какую показывает. |
|||
18
Tornadius
19.05.23
✎
10:20
|
(17) Текст запроса который ищет МаксДату:
ВЫБРАТЬ МАКСИМУМ(ТиповойОстаткиИОбороты.Период) КАК МаксДата, ВЫРАЗИТЬ(ТиповойОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура) КАК Номенклатура, ВЫБОР КОГДА &ЕстьСклады ТОГДА ВЫРАЗИТЬ(ТиповойОстаткиИОбороты.Субконто2 КАК Справочник.Склады) ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КОНЕЦ КАК Склад, ТиповойОстаткиИОбороты.Счет КАК Счет, ТиповойОстаткиИОбороты.Организация КАК Организация, ТиповойОстаткиИОбороты.СтруктурноеПодразделение КАК Подразделение {ВЫБРАТЬ МаксДата, Номенклатура.*, Склад.*, Счет.*, Организация.*, Подразделение.*} ИЗ РегистрБухгалтерии.Типовой.ОстаткиИОбороты(, {(&КонецПериода)}, ДЕНЬ, , Счет В (&СписокСчетов) {(Счет)}, &ВидыСубконто, Организация В ИЕРАРХИИ (&СписокОрганизаций)) КАК ТиповойОстаткиИОбороты СГРУППИРОВАТЬ ПО ТиповойОстаткиИОбороты.Счет, ВЫРАЗИТЬ(ТиповойОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура), ВЫБОР КОГДА &ЕстьСклады ТОГДА ВЫРАЗИТЬ(ТиповойОстаткиИОбороты.Субконто2 КАК Справочник.Склады) ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КОНЕЦ, ТиповойОстаткиИОбороты.Организация, ТиповойОстаткиИОбороты.СтруктурноеПодразделение Скриншоты выкладывать на Мисту не умею, опишу так: Вкладка СКД "Связи наборов данны" в ней 5 строк: Источник Приемник Выражение источник Выражение приемник НаборДанных2 ВТ_МаксДата Счет Счет НаборДанных2 ВТ_МаксДата Номенклатура Номенклатура НаборДанных2 ВТ_МаксДата Склад Склад НаборДанных2 ВТ_МаксДата Организация Организация НаборДанных2 ВТ_МаксДата Подразделение Подразделение где НаборДанных2 - старый набор ВТ_МаксДата - новый набор с запросом выше -- Ресурс Поле Выражение Расчитывать по... МаксДата МаксДата Номенклатура --- Получаю по различной номенклатуре одно значение (вся колонка - одно значение) в консоле запросов значения разные |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |