1с. СКД. Таблица значений как источник данных.
Чтобы полученную запросом или как угодно таблицу значений вывести в отчет СКД надо:
1. В отчете создать табличную часть с перечнем полей отчета. Название и типы полей должны быть такими же как в таблице значений с данными. Это облегчит загрузку данных до одной строки кода.
2. В качестве набора данных отчета СКД 1с использовать Объект. Имя объекта – имя табличной части.
3. Добавить поля, одноименные и однотипные с реквизитами табличной части. Какого-то автоматического создания полей на основе ТЧ я не нашел. Так что всё в руки.
4. В форме на кнопку формирования отчета повесить следующую процедуру:
Процедура ДействияФормыДействие ( Кнопка )
    // Получить данные для отчета
    ТЗ = ПолучитьДанныеДляОтчета ( ) ;
Если при выполнении отчета возникает ошибка "Не найдено поле замены . ", значит вы не прописали нужное поле в табличную часть или макет СКД.
Если в запросе используется конструкция вида регистратор.дата или получение еще какого-либо реквизита через регистратор и это поле не отображается в полях отчета СКД, то:
Допустим Вы сделали запрос по регистру накоплений и через регистратор обратились к дате или сумме документа и при формировании отчета СКД, эти поля недоступны !? как же быть?
Проблема в том – что у регистратором может выступать несколько документов и видимо права чтение/просмотр есть не на все – поэтому через скд эта таблица целиком недоступна, решение:
1. открыть доступ на все регистраторы регистра
Описание ошибки:
При разработке очередного отчета с помощью системы компоновки данных на 1С 8 при необходимости использовать функцию языка запросов ДОБАВИТЬКДАТЕ() в выражении вычисляемого поля, возникла ошибка "Поле не найдено "День".
Вроде бы ничего особенного? Использовал в выражении вычисляемого поля СКД функцию встроенного языка запросов, что в принципе в данном месте не возбраняется. Но вочему-то конфигуратор 1С сообщает об ошибке.
А проблема, как оказалось, совсем в мелочи. При использовании параметра типа увеличения (СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ;) необходимо, в отличие от использования в выражениях полей запроса, заключать в кавычки, т.е. в моем случае: не просто ДОБАВИТЬКДАТЕ(ДатаПлюс14Дней, ДЕНЬ, -3), а
ДОБАВИТЬКДАТЕ(ДатаПлюс14Дней, " ДЕНЬ " ,-3)