Добавить переменную в отчёт СКД

1. alexeinahai 25.01.18 12:50 Сейчас в теме
Доброго дня, подскажите пожалуйста с одним вопросом. есть Системный отчёт сделанный через Схему Компоновки Данных, мне нужно добавить столбец, в котором будет отображаться дата накладной + СрокОплаты из Договора. не могу понять, как в этой таблице создать переменную и вывести её в отчёт) видео Уроки смотрю, вроде не сложная схема эта, а на практике чёт не выходит)
работаю в 1С:Предприятие 8.3 (8.3.10.2580) Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.57.17)
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. akim2040 41 25.01.18 12:54 Сейчас в теме
(1) Собственно что именно не получается то? выдерните из документа дату накладной и срок оплаты из договора, и потом их склейте. вы уверены что надо именно переделать типовой отчет? Может имеет смысл заморочиться и сделать внешний.
3. alexeinahai 25.01.18 12:57 Сейчас в теме
(2) нужен отчёт по кредиторской задолженности, со сроками долга) я тоже думал, может с нуля сделать, но в процессе понял, что очень геморойно)
4. akim2040 41 25.01.18 12:59 Сейчас в теме
(3) А в стандратном отчете есть же регистратор? попробуйте тогда сделать через пользовательские поля
5. alexeinahai 25.01.18 13:03 Сейчас в теме
(4) я в вопросе программирования, пока слабо ориентируюсь, так что не очень понимаю о чём вы)
6. alexeinahai 25.01.18 13:05 Сейчас в теме
(4) вроде бы нашел, про что вы говорите) сейчас попробую в них покопаться)
7. alexeinahai 25.01.18 13:24 Сейчас в теме
(4) как я понял пользовательские поля, это что-типа отбора или фильтра.
Прикрепленные файлы:
8. ЧерныйКот 25.01.18 13:37 Сейчас в теме
(1) добавьте пользовательское поле - выбора. и не надо менять СКД типового отчета
отборы в поле выбора не нужны. а в поле значение - надо нажать на крестик и выбрать поле компоновки данных, а именно дату документа
либо поле-выражение и там можно будет склеить строки
9. klinval 338 25.01.18 13:57 Сейчас в теме
В пользовательском режиме:
1. Показать настройки.
2. Дополнительные поля
3. Добавить "Договор.Срок оплаты"
4. Добавить "Документ.Номер"
5. Размещение "В отдельных колонках"
ЧерныйКот; +1 Ответить
10. alexeinahai 25.01.18 14:04 Сейчас в теме
(9) так выведутся отдельно столбцы, а мне нужно ДатаДокумента + СрокОплаты в одной ячейке)
11. klinval 338 25.01.18 14:21 Сейчас в теме
(10) В конфигураторе:
1. Схема СКД
2. Настройки.
3. Пользовательские поля
4. Добавить поле выражение
5. Забиваем имя
6. Выражение: Договор.СрокОплаты + " " + Документ.Номер
7. Выбираем данное поля в выбранных полях.
14. alexeinahai 26.01.18 08:18 Сейчас в теме
(11)
(12)
(13)
Делаю, как вы говорите, прописал формулу:"Формат([Документ.Дата], "ДФ=dd.MM.yyyy") + " до " + Формат(Договор.СрокОплаты, "ДФ=dd.MM.yyyy")", но у меня ругается, мол Поле не найдено "[Документ.Дата]", и так же ругается на второе поле. видимо я что-то делаю не так?)
Прикрепленные файлы:
15. klinval 338 26.01.18 09:12 Сейчас в теме
(14) Если вы сделаете всё как я написал - всё получится. См. картинку. У меня на том-же отчете ничего не ругается: версия БП 3.0.56.22, отчет "ЗадолженностьПоставщикамПоСрокамДолга"
Прикрепленные файлы:
16. alexeinahai 26.01.18 10:56 Сейчас в теме
(15) получилось) только теперь как это поле отобразить в отчёте?) не могу его там найти
17. klinval 338 26.01.18 11:16 Сейчас в теме
(16) п.7 моего сообщения в (11):
В конфигураторе:
...
7. Выбираем данное поля в выбранных полях.
18. alexeinahai 26.01.18 11:58 Сейчас в теме
(17) это я сделал, но в отчёте всё равно не вижу столбец этот
Прикрепленные файлы:
19. klinval 338 26.01.18 12:54 Сейчас в теме
(18) Этот отчет построен не на "чистом" СКД. То что вы сделали в СКД: 1С ещё кодом вертит. Поэтому там всё сложно... Видимо надо смотреть где 1С это делает (добавляет поля, группировки и т.д.) кодом и туда влезать. Но это сложнее чем на чистом СКД добавить поле и вывести.
20. alexeinahai 26.01.18 13:30 Сейчас в теме
21. sakura44 21.08.19 10:42 Сейчас в теме
Была похожая задача.
БП 3.0.70.33, в отчет "Задолженность покупателям по срокам долга" добавить колонку, в которой вычислялся бы процент Просроченной Задолженности от общей задолженности (100*Просроченная Задолженность/ОстатокДолга). Так как типовой отчет менять не разрешили, делаем внешний на основе типового и с ним уже играемся. Последовательность действий такая была:
1). Сохраняем типовой отчет как внешний
2). Добавляем сведения о внешнем отчете
3). Переносим процедуры из модуля менеджера типового отчета в модуль объекта внешнего отчета.
то есть на первых трех этапах добиваемся, чтобы нас заработал внешний отчет - точная копия типового
4). Во внешнем отчете открываем схему компоновки данных и добавляем вычисляемое поле "ПроцентПросроченнойЗадолженностиВОбщей", в поле выражение пишем формулу:100*ПросроченнаяЗадолженность/ОстатокДолга, тип указываем число, можно еще формат задать (если нужно) - таким образом мы создали дополнительно расчетное поле
5) На закладке «Ресурсы» установим выражение для расчета итога для поля ПроцентПросроченнойЗадолженностиВОбщей, заменив выражение по умолчанию «Сумма» на «100*Сумма(ПросроченнаяЗадолженность)/Сумма(ОстатокДолга)»
6)На закладке «Настройки» для Отчета добавим в состав выбранных полей вычисляемое поле ПроцентПросроченнойЗадолженностиВОбщей
После всех этих действий проверяем отчет... и - банан... никакого нового поля не добавилось, а все потому, что как написали в (19) отчет построен не на чистом СКД и в модуле объекта отчета выполняются дополнительные процедуры - добавляются группировки, изменяются настройки и тд.
7) Путем отладки находим процедуру в модуле объекта внешнего отчета под названием "ЗаполнитьПоляВСоответствииСоСпискомИнтервалов", в которой переопределяется состав выбранных полей настроек компоновщика, и добавляем в данную процедуру код (на картинке 4 видно, куда именно):

ПолеИтога = Схема.ПоляИтога.Добавить();

ПолеИтога.ПутьКДанным = "ПроцентПросроченнойЗадолженностиВОбщей";

ПолеИтога.Выражение = "100*Сумма(ПросроченнаяЗадолженность)/Сумма(ОстатокДолга)";

.......
БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(КомпоновщикНастроек, "ПроцентПросроченнойЗадолженностиВОбщей");

8) Сохраняем, проверяем, получаем то, что нужно (картинка 5)

На истину в последней инстанции не претендую, возможно, можно и более изящно решить, но я пока по другому не умею. Оставляю - вдруг, кому пригодится, вдруг кто покритикует, подскажет, как правильнее подобные задачи решать.
Прикрепленные файлы:
12. ЧерныйКот 25.01.18 14:32 Сейчас в теме
(10) в пользовательском режиме, добавляете пользовательское поле-выражение
выражение детальных записей :
Формат([Дата накладной], "ДФ=dd.MM.yyyy") + " до " + Формат([Срок Оплаты], "ДФ=dd.MM.yyyy")
13. akim2040 41 26.01.18 06:07 Сейчас в теме
(10) В 11 коменте ответили как можно.
Пользовательские поля может испошльзовать для фильтров "Поле выбор" и для своих полей "Поле выражение"
Кстати их можно использовать сразу в режиме предприятия, что бы сразу смотреть результат что получается.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот