1с отчет скд com соединение
Очень часто бывают ситуации, когда необходимо сделать отчет СКД на сложном запросе, который используюет в себе вложенные запросы и объединения внутренние и полные и т.д. - в результате в консоли этот запрос формируется верно, а в скд половина полей пустые! Связано это с особенностью СКД в объединении внутренних данных, а так же не стоит забывать что в СКД наборы данных связываются как левое соединение.
Решения возможны следующие:
- Изменить запрос в СКД
- Сформировать запрос обычным способом и подставить эти данные в СКД как внешние
Рассмотрим последний вариант:
Внешний источник данных, грузим из ТЗ
В модуле объекта уже есть функция
установим в ней наш запрос, получается примерно так:
Ниже в коде происходит установка внешних данных из нашей ТЗ с именем ТаблицаВнешнегоНабораДанных
В самой компоновке добавляем набор Объект с именем ТаблицаВнешнегоНабораДанных и перечисляем поля, которые будут использоваться в отчете:
Как я уже говорил выше, далее нам необходимо получить остатки взаиморасчетов на дату документа:
Получение остатков на документ в СКД
Набор данных Запрос - назвали его Остатки:
Теперь установим связи Запроса и Объекта
Остатки нужно получать на дату документа и по контрагенту
Далее, если нужно, задайте вычисляемые поля, ресурсы, параметры и Настройте Список вывода.
Пример результата отчета:
Похожие FAQ
Еще в этой же категории
Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
Как получить отчет( не СКД) при COM-соединении к базе? Как я понимаю, его надо как-то сформировать на удаленной базе, а в свою вытянуть полученный табличный документ? Ни где не смог найти примеров или описаний, везде примеры с документами и справочниками.
(1) lopatin, и ,заметь, при этом таскаются не сами документы и справочники, а информация из них. Ни на какие мысли не наталкивает?
(1) lopatin, любой отчет в идеале должен формироваться по команде Отчет.Сформировать(), результатом которой будет табличный документ. Если отчет так умеет, то дальше нужно этот табличный документ сериализовать в СОМ и десериализовать в текущей базе (можно через фабрикуХДТО, а можно и "знеачениевстрокувнутр"). Не вижу проблем совершенно.
(5) starik-2005, Десериализовать в текущей базе то конечно можно, если объекты совпадают, а вот любюй отчет сформировать в одной базе и сразу заполнить строковыми полями в текущей базе табличный документ - проблем действительно нет. Как десериализовать объект одной базы, к примеру "Автомобиль" в Автотранспорте в базе БП?
(6) Alex_E, если есть ключевое поле, то после десериализации можно пробежаться по нему и произвести замены в ссылочных полях. А если брать только строки - то совсем хорошо.
Но я говорил о сериализации табличного документа. Там помимо расшифровок ссылок больше нигде нет, а расшифровка нужна ли?
(7) starik-2005, ОбластьМакета.Параметры.Автомобиль - вполне может содержать саму ссылку на справочник "Автомобили", получить эту ссылку в текущей базе можно только при наличии справочника Автомобили в этой конфигурации, да и ссылка такая же должна в ней быть, если это отчет - вряд ли речь идёт о переносе данных в эту базу. Строковые же поля выводить таким способом, ИМХО, - это как из Москвы в Иваново через Пекин ездить. Создать табличный документ в текущей базе и заполнить его строками из источника отчета проще.
(11) avto1c, и почему ты решил, что я этого не знаю? И зачем мне понимать свой же пост? Думаешь, я его не понимаю? А вот ты похоже не понял. Сам почитай свою ссылку и найди отличия от в нее в моем посте.
(20) sssss_aaaaa_2011, ошибся с именем, это для автора постинга (1).
ИМХО перегнать тз в xml и перетащить текстом через com.
Народ мне не нужно словесное описание, я и так понимаю, что в теории должно быть. Я не понимаю какой код писать.
Объясняю на конкретном примере.
Вот я подключаюсь к базе:
Вот так, в базе где отчет создан получается результат отчета:
В модуле объекта Отчета есть следующий метод:
Попытался получить результат так:
: Метод объекта не обнаружен (СформироватьОтчет)
Отчет.СформироватьОтчет(Результат, Новый СписокЗначений, Новый СписокЗначений);Форма.Форма.Форма(31)>
Я не знаю какой мне писать код, как вызвать метод который получает табличный документ?
Спасибо за понимание.
попав в сформировать отчет начинаются проблемы типо Ошибка: Значение не является значением объектного типа (АвтоМасштаб) Результат.АвтоМасштаб = истина; , Ошибка: Индекс находится за границами массива КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение = ВнОрганизация
как я понимаю все это связано либо с скд, подскажите что еще нужно сделать что бы отчет взлетел ?
Дык а какой отчет ты все-таки формируешь? И откуда мы знаем что у тебя в функции СформироватьОтчет(. НачалоПериода,КонецПериода,Организация)
(2) а разве дело в том что в функции сформировать отчет, я подумал в том что стартуя из другой базы я должен еще что то для скд сделать так как по кнопке в начале проходим этот код
(0) через СОМ можно передавать явно только примитивные типы - стока, число, дата, булево, двоичныеданные.
Все остальное это ссылка на объект в той базе.
(5) я в курсе этого, именно по этому и передаю только НачалоПериода КонецПериода наименование организации и уже в этой базе нахожу её
(5) Даже хуже. Число в COM и число в 1с - разные типы, между которыми производятся преобразования с потерей точности. Так что, если обращаешься к числу в COM-базе - делать это надо только через обертку в строку.
(7) не понял что я не так передаю 1й параметр это тип дата 2й тоже 3й строка, что же я не так передаю ?
на возврат хочу ТЗ с примитивными типами только до возврата дело не доходит СКД чего то от меня хочет а чего не понятно.
Почему бы не скоммунздить текст запроса и не выполнять его по com(com, кстати, технология старая, используйте веб сервис)
(10) вы предлагаете в начале скопировать СКД запрос > 1000 строк выполнить его через com потом скопировать 2й запрос > 1500 строк
потом покурить типой код и разобраться в этих выборка выборка выборка выборка и отработать в базе источник я правильно понял ?
У тебя проблемы с выполнением отчета в неинтерактивном режиме. Либо какие-то параметры в отчет непередаются, либо там вообще текст запроса косячный (о чем говорит синтаксическая ошибка). И вообще выполняется другой отчет при выполнении первого. Разберись сначала как запустить отчет в неинтерактивном (без открытия формы) режиме в одной базе и чтобы он выполнялся без ошибок, а потом уже будешь пытаться сделать это по Com.
(13) а примеров или ссылок на выполнение такой задачи у вас нет случаем ? что то в Яндексе скудно на эту тему
Да на инфостарте вариантов полно должно быть. Ты не далеко не первый. Что-то подобное я лет десять назад реализовывал, так что сейчас ничего не осталось. Да и технологии устарели.
Очень часто бывают ситуации, когда необходимо сделать отчет СКД на сложном запросе, который используюет в себе вложенные запросы и объединения внутренние и полные и т.д. - в результате в консоли этот запрос формируется верно, а в скд половина полей пустые! Связано это с особенностью СКД в объединении внутренних данных, а так же не стоит забывать что в СКД наборы данных связываются как левое соединение.
Решения возможны следующие:
- Изменить запрос в СКД
- Сформировать запрос обычным способом и подставить эти данные в СКД как внешние
Рассмотрим последний вариант:
Внешний источник данных, грузим из ТЗ
В модуле объекта уже есть функция
установим в ней наш запрос, получается примерно так:
Ниже в коде происходит установка внешних данных из нашей ТЗ с именем ТаблицаВнешнегоНабораДанных
В самой компоновке добавляем набор Объект с именем ТаблицаВнешнегоНабораДанных и перечисляем поля, которые будут использоваться в отчете:
Как я уже говорил выше, далее нам необходимо получить остатки взаиморасчетов на дату документа:
Получение остатков на документ в СКД
Набор данных Запрос - назвали его Остатки:
Теперь установим связи Запроса и Объекта
Остатки нужно получать на дату документа и по контрагенту
Далее, если нужно, задайте вычисляемые поля, ресурсы, параметры и Настройте Список вывода.
Пример результата отчета:
Похожие FAQ
Еще в этой же категории
Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
Очень часто бывают ситуации, когда необходимо сделать отчет СКД на сложном запросе, который используюет в себе вложенные запросы и объединения внутренние и полные и т.д. - в результате в консоли этот запрос формируется верно, а в скд половина полей пустые! Связано это с особенностью СКД в объединении внутренних данных, а так же не стоит забывать что в СКД наборы данных связываются как левое соединение.
Решения возможны следующие:
- Изменить запрос в СКД
- Сформировать запрос обычным способом и подставить эти данные в СКД как внешние
Рассмотрим последний вариант:
Внешний источник данных, грузим из ТЗ
В модуле объекта уже есть функция
установим в ней наш запрос, получается примерно так:
Ниже в коде происходит установка внешних данных из нашей ТЗ с именем ТаблицаВнешнегоНабораДанных
В самой компоновке добавляем набор Объект с именем ТаблицаВнешнегоНабораДанных и перечисляем поля, которые будут использоваться в отчете:
Как я уже говорил выше, далее нам необходимо получить остатки взаиморасчетов на дату документа:
Получение остатков на документ в СКД
Набор данных Запрос - назвали его Остатки:
Теперь установим связи Запроса и Объекта
Остатки нужно получать на дату документа и по контрагенту
Далее, если нужно, задайте вычисляемые поля, ресурсы, параметры и Настройте Список вывода.
Пример результата отчета:
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Посмотреть все результаты поиска похожих
Еще в этой же категории
Как программно свернуть группировки в СКД (система компоновки данных)? 21
При формировании отчетов на СКД по умолчанию все группировки развернуты, но бывает что необходимо сразу после формирования показать отчет со свернутыми группировками! Данный код в модуле отчета позволяет свернуть группировки до необходимого уровня Как сформировать отчет СКД без проверки прав (в привилегированном режиме)? 21
Что при разработке отчетов требуется чтобы у пользователя с ограниченными правами, отчет формировался полностью без проверки прав! Особенно если настроен RLS Есть несколько способов как это сделать: 1. Установить привилегированный режим в модул Как в СКД вывести дату и время формирования отчета? 6
Есть несколько вариантов вывода информации перед основным отчетом,какой лучше?! - зависит от задачи: Допустим нам нужно вывести дату и время формирования отчета и свою шапку отчета, например так: Варианты решения: 1. Использование группиров Динамический отчет на СКД с разными вариантами 4
На днях делал несколько однотипных отчетов на СКД. Общий принцип: формируются все варианты отчета, указанные в настройках схемы и каждый вариант выводится на отдельной вкладке. Потом возникла мысль попробовать объединить все схемы в один отчет СКД не выводит поле в отчет 3
Если в запросе используется конструкция вида регистратор.дата или получение еще какого-либо реквизита через регистратор и это поле не отображается в полях отчета СКД, то: Допустим Вы сделали запрос по регистру накоплений и через регистратор обратил Посмотреть все в категории Схема Компоновки Данных
Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
Читайте также: