|
![]() |
#1 |
Участник
|
Цитата:
Я сейчас похож на Кота Базилио, а наш разговор на разговор Лисы Алисы с Котом Базилио на поле чудес... ![]() Лиса Алиса: 5 золотых на 2 не делится.Погоди, погоди. СКД - это построитель отчетов. Результат работы СКД - ячейки отчета(!) со свеми заголовками, промежуточными и окончательными итогами. Результат работы СКД практически невозможно использовать для работы с полученными записями... С результатами вообще непонятно что делать программисту. http://v8.1c.ru/overview/datacomposition.htm http://www.kb.mista.ru/article.php?id=668 http://coder1cv8.narod.ru/Publication6.html и т.д. А результат работы Query - записи таблиц. С этими записями программист может работать как угодно именно как с записями таблиц. Типичные примеры работы с Query Проблема с CustTrans Помогите с Query DAX 4.2 Фильтры, возникающие в диалоге автоматически Статистика по каждому коду номенклатуры. Как правильно построить Query? и т.д. поиском по ключевому слову Query или QueryRun на этом форуме. Итого: В 1С нет аналога Query. Запросы задаются текстовой строкой. Модифицировать запрос можно только путем изменения самого текста запроса. Простейший и типичнейший пример из 1С: Код: Процедура ДействияФормыЗагрузитьВнешниеДанные(Кнопка) ВнешниеДанные.Очистить(); Попытка КОМ=Новый COMОбъект("V81.COMConnector"); База=КОМ.Connect("Srvr=server;Ref=Base;Usr=user;Pwd=password"); ТекстЗапроса=" |ВЫБРАТЬ | Склад.Код КАК КодСклада, | СУММА(КоличествоОстаток) КАК ОстатокВнешняяБаза |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки |СГРУППИРОВАТЬ ПО | Склад"; Запрос=База.NewObject("Запрос"); Запрос.Текст=ТекстЗапроса; Выборка=Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НовСтр=ВнешниеДанные.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр,Выборка); КонецЦикла; Исключение Сообщить(ОписаниеОшибки(),СтатусСообщения.Внимание); КонецПопытки; База=Неопределено; КонецПроцедуры |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от mazzy
![]() СКД - это построитель отчетов. Результат работы СКД - ячейки отчета(!) со свеми заголовками, промежуточными и окончательными итогами. Результат работы СКД практически невозможно использовать для работы с полученными записями... С результатами вообще непонятно что делать программисту.
СКД - это система, позволяющая на входе описать а) Запросы б) Таблицы значений в) Внешние источники данных , применить к ним настройки компоновки, которые могут заранее формироваться визуально или программно и выгрузить полученный результат в макет отчета или структуру данных. Утверждение Результат работы СКД - ячейки отчета(!) - неверно. Это лишь один из вариантов. Точно так же и стандартный ПостроительОтчета может формировать отчет, а может использоваться как источник данных для последующей обработки. Пример кода: X++: = .(, .., ); (, .); //Создадим и инициализируем процессор компоновки = ; = .(, , , ); .(, , , ); ; = .(, .., , , ("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); //Создадим и инициализируем процессор компоновки = ; = .(, , , ); .(, , , ); ; ; // = ; = ; .(); .(); Последний раз редактировалось Сисой; 09.12.2009 в 13:18. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#3 |
Участник
|
Спасибо. А можно ссылки куда-нибудь, где можно посмотреть описания и/или доку других вариантов?
|
|
![]() |
#4 |
Участник
|
Надо смотреть документацию по 1С.
Приведенный выше пример я взял с партнерского форума. Вообще-то 1Сники редко пользуются подобным приемом (привычка парсить запросы вручную велика). И ПостроительОтчета и СКД в режиме получения таблицы-результата чаще всего юзаются из-за интерфейсных возможностей (mini-OLAP). Тут надо честно признаться, что скорость работы СКД все равно будет ниже, чем Query. Т.к. часть обработки результатов запроса выполняется на сервере приложений 1С. Впрочем, здесь есть и плюс. Например, в СКД можно применить к реквизиту выборки произвольную функцию на языке 1С. |
|
![]() |
#5 |
Участник
|
Спасибо!
Цитата:
А почему она не эквивалентна простой конструкции? Код: ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина); А в новых конфах это где-нибудь используется? Может укажешь где, а я посмотрю? Цитата:
![]() Поэтому твой довод услышал. Но пока не сильно доверяю. Хотелось бы проверить и убедиться самостоятельно. И все-таки. Какие значения получаются в результирующей таблице/дереве значений? 1Сники говорят, что ячейки отчета. Можно где-нибудь на код обработки результата глянуть? Цитата:
А как часто в 1С результаты работы СКД обрабатываются на сервере приложений 1С? |
|
![]() |
#6 |
Участник
|
Цитата:
Если параметр пропущен, он заменяется значением по умолчанию, определенным при описании процедуры/функции. Передача Неопределено (в языке 1С это пустое значение неопределенного типа) в качестве параметра отрубает эту подстановку. Цитата:
Цитата:
Тут другая проблема есть - стандартный интерфейс настройки СКД непонятен рядовому юзеру. Он "для программиста". Поэтому многие рисуют свои формы-надстройки. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#7 |
Участник
|
Цитата:
Сообщение от mazzy
![]() Справедливости ради, надо отметить, что если в Query задействованы таблицы с переопределенным методом postLoad, то он также будет выполняться не на SQL'е. Но в Аксапте это сильное исключение из правил. И оно во всех документациях оговаривается. postLoad - устаревший метод, которые используется в последних версиях Аксапты вряд ли больше десятка раз...
![]() Выборка этих таблиц дополнительно обрабатывается AOS'ом. Напомню, что всего в этой версии определено 3220 таблиц. Обычно около 1500 реально используется. Сисой, а на этот вопрос? |
|
![]() |
#8 |
Участник
|
|
|
![]() |
#9 |
Участник
|
Цитата:
В итоге - таблица значений |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
![]() |
#10 |
Участник
|
|
|
![]() |
#11 |
Участник
|
Ну...
Цитата:
При каких условиях в 1С результаты работы СКД обрабатываются на сервере приложений 1С? Если в методичках для отличников рекомендаций нет, то насколько верно предположение, что результаты работы СКД почти всегда обрабатываются на сервере приложений 1С? |
|
Теги |
1c, платформа, сравнение систем |
|
|