Доброго дня, подскажите пожалуйста с одним вопросом. есть Системный отчёт сделанный через Схему Компоновки Данных, мне нужно добавить столбец, в котором будет отображаться дата накладной + СрокОплаты из Договора. не могу понять, как в этой таблице создать переменную и вывести её в отчёт) видео Уроки смотрю, вроде не сложная схема эта, а на практике чёт не выходит)
работаю в 1С:Предприятие 8.3 (8.3.10.2580) Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.57.17)
работаю в 1С:Предприятие 8.3 (8.3.10.2580) Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.57.17)
По теме из базы знаний
- Универсальный конструктор отчетов (Новейший отчет) для 1C 7.7
- «Программное заполнение настроек СКД» или «Как сделать отчёт на СКД с понятным для пользователя интерфейсом». (1С: Предприятие 8.1, 8.2 обычное приложение)
- Расширения конфигурации. Нюансы поведения
- Не провоцируйте СКД, или пример "как не надо"
- Полезняшки по СКД и построителям. Просто код
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) добавьте пользовательское поле - выбора. и не надо менять СКД типового отчета
отборы в поле выбора не нужны. а в поле значение - надо нажать на крестик и выбрать поле компоновки данных, а именно дату документа
либо поле-выражение и там можно будет склеить строки
отборы в поле выбора не нужны. а в поле значение - надо нажать на крестик и выбрать поле компоновки данных, а именно дату документа
либо поле-выражение и там можно будет склеить строки
(18) Этот отчет построен не на "чистом" СКД. То что вы сделали в СКД: 1С ещё кодом вертит. Поэтому там всё сложно... Видимо надо смотреть где 1С это делает (добавляет поля, группировки и т.д.) кодом и туда влезать. Но это сложнее чем на чистом СКД добавить поле и вывести.
Была похожая задача.
БП 3.0.70.33, в отчет "Задолженность покупателям по срокам долга" добавить колонку, в которой вычислялся бы процент Просроченной Задолженности от общей задолженности (100*Просроченная Задолженность/ОстатокДолга). Так как типовой отчет менять не разрешили, делаем внешний на основе типового и с ним уже играемся. Последовательность действий такая была:
1). Сохраняем типовой отчет как внешний
2). Добавляем сведения о внешнем отчете
3). Переносим процедуры из модуля менеджера типового отчета в модуль объекта внешнего отчета.
то есть на первых трех этапах добиваемся, чтобы нас заработал внешний отчет - точная копия типового
4). Во внешнем отчете открываем схему компоновки данных и добавляем вычисляемое поле "ПроцентПросроченнойЗадолженностиВОбщей", в поле выражение пишем формулу:100*ПросроченнаяЗадолженность/ОстатокДолга, тип указываем число, можно еще формат задать (если нужно) - таким образом мы создали дополнительно расчетное поле
5) На закладке «Ресурсы» установим выражение для расчета итога для поля ПроцентПросроченнойЗадолженностиВОбщей, заменив выражение по умолчанию «Сумма» на «100*Сумма(ПросроченнаяЗадолженность)/Сумма(ОстатокДолга)»
6)На закладке «Настройки» для Отчета добавим в состав выбранных полей вычисляемое поле ПроцентПросроченнойЗадолженностиВОбщей
После всех этих действий проверяем отчет... и - банан... никакого нового поля не добавилось, а все потому, что как написали в (19) отчет построен не на чистом СКД и в модуле объекта отчета выполняются дополнительные процедуры - добавляются группировки, изменяются настройки и тд.
7) Путем отладки находим процедуру в модуле объекта внешнего отчета под названием "ЗаполнитьПоляВСоответствииСоСпискомИнтервалов", в которой переопределяется состав выбранных полей настроек компоновщика, и добавляем в данную процедуру код (на картинке 4 видно, куда именно):
ПолеИтога = Схема.ПоляИтога.Добавить();
ПолеИтога.ПутьКДанным = "ПроцентПросроченнойЗадолженностиВОбщей";
ПолеИтога.Выражение = "100*Сумма(ПросроченнаяЗадолженность)/Сумма(ОстатокДолга)";
.......
БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(КомпоновщикНастроек, "ПроцентПросроченнойЗадолженностиВОбщей");
8) Сохраняем, проверяем, получаем то, что нужно (картинка 5)
На истину в последней инстанции не претендую, возможно, можно и более изящно решить, но я пока по другому не умею. Оставляю - вдруг, кому пригодится, вдруг кто покритикует, подскажет, как правильнее подобные задачи решать.
БП 3.0.70.33, в отчет "Задолженность покупателям по срокам долга" добавить колонку, в которой вычислялся бы процент Просроченной Задолженности от общей задолженности (100*Просроченная Задолженность/ОстатокДолга). Так как типовой отчет менять не разрешили, делаем внешний на основе типового и с ним уже играемся. Последовательность действий такая была:
1). Сохраняем типовой отчет как внешний
2). Добавляем сведения о внешнем отчете
3). Переносим процедуры из модуля менеджера типового отчета в модуль объекта внешнего отчета.
то есть на первых трех этапах добиваемся, чтобы нас заработал внешний отчет - точная копия типового
4). Во внешнем отчете открываем схему компоновки данных и добавляем вычисляемое поле "ПроцентПросроченнойЗадолженностиВОбщей", в поле выражение пишем формулу:100*ПросроченнаяЗадолженность/ОстатокДолга, тип указываем число, можно еще формат задать (если нужно) - таким образом мы создали дополнительно расчетное поле
5) На закладке «Ресурсы» установим выражение для расчета итога для поля ПроцентПросроченнойЗадолженностиВОбщей, заменив выражение по умолчанию «Сумма» на «100*Сумма(ПросроченнаяЗадолженность)/Сумма(ОстатокДолга)»
6)На закладке «Настройки» для Отчета добавим в состав выбранных полей вычисляемое поле ПроцентПросроченнойЗадолженностиВОбщей
После всех этих действий проверяем отчет... и - банан... никакого нового поля не добавилось, а все потому, что как написали в (19) отчет построен не на чистом СКД и в модуле объекта отчета выполняются дополнительные процедуры - добавляются группировки, изменяются настройки и тд.
7) Путем отладки находим процедуру в модуле объекта внешнего отчета под названием "ЗаполнитьПоляВСоответствииСоСпискомИнтервалов", в которой переопределяется состав выбранных полей настроек компоновщика, и добавляем в данную процедуру код (на картинке 4 видно, куда именно):
ПолеИтога = Схема.ПоляИтога.Добавить();
ПолеИтога.ПутьКДанным = "ПроцентПросроченнойЗадолженностиВОбщей";
ПолеИтога.Выражение = "100*Сумма(ПросроченнаяЗадолженность)/Сумма(ОстатокДолга)";
.......
БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(КомпоновщикНастроек, "ПроцентПросроченнойЗадолженностиВОбщей");
8) Сохраняем, проверяем, получаем то, что нужно (картинка 5)
На истину в последней инстанции не претендую, возможно, можно и более изящно решить, но я пока по другому не умею. Оставляю - вдруг, кому пригодится, вдруг кто покритикует, подскажет, как правильнее подобные задачи решать.
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот