AXForum  
Вернуться   AXForum > Рынок > Сравнение ERP-систем
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.12.2009, 13:19   #1  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
Да. Но компоновка данных работает только в отчетах.
В модулях проведения, в периодических заданиях и в остальных местах программист доступа к СКД не имеет.
Нет, не так.
Вывод из СКД доступен и на сервере.
И есть класс ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.
Можно настроить СКД и вывести с ее помощью результат в таблицу или дерево значений.
Старый 07.12.2009, 13:32   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Сисой Посмотреть сообщение
Нет, не так.
Вывод из СКД доступен и на сервере.
И есть класс ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.
Можно настроить СКД и вывести с ее помощью результат в таблицу или дерево значений.
О! Спасибо. Круто. В последних версиях 1С появился аналог тривиального Query Аксапты 2.0.
И черт с ним, что в последних версиях Аксапты появились композитные Query, dataSet и специализированные Query для веба...
Что ж, пусть приближается. Вручную править текст запроса - это редкостный отстой. Ура, товариащи!


Можно только уточнить? объект называется "...В коллекцию значений", а ты говоришь в "таблицу". Давай уточним для Аксаптоведов, которые не знают разницы - ты говоришь о таблице значений? которая хранится на клиенте? (по Аксаптовски - recordSortedList, map, но не временной таблице) или ты говоришь о настоящей таблице?
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 07.12.2009 в 14:02. Причина: Ура, товарищи!
Старый 07.12.2009, 14:21   #3  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
Можно только уточнить? объект называется "...В коллекцию значений", а ты говоришь в "таблицу". Давай уточним для Аксаптоведов, которые не знают разницы - ты говоришь о таблице значений? которая хранится на клиенте? (по Аксаптовски - recordSortedList, map, но не временной таблице) или ты говоришь о настоящей таблице?
Да, это таблица (дерево) значений на клиенте или сервере приложений.
Ее можно проиндексировать, выгрузить в temptable, но это не таблица СУБД. В 1С вообще нет аналогов SQL Update и SQL Insert. Это большой минус, но реализовать их в рамках объектной идеологии 1С:Предприятия (когда запись объекта на самом деле формирует транзакционную запись в десятки таблиц) невозможно.
Единственное исключение - работа с регистрами 1С. Там поддерживается техника группового манипулирования записями по ключу (НаборЗаписей).
Старый 07.12.2009, 14:33   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Сисой Посмотреть сообщение
Да, это таблица (дерево) значений на клиенте или сервере приложений.
Ок. Спасибо.
Тогда прямой аналог ListView, TreeView. Но эти объекты в Аксапте связаны с системными контролами и сильно утяжелены функциональностью для визуального отображения.

Для понимания, в Аксапте лучше думать о RecordSortedList или о map...
...со свеми вытекающими последствиями для производительности, памяти и использования системного свопа.
__________________
полезное на axForum, github, vk, coub.
Старый 09.12.2009, 12:59   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Сисой Посмотреть сообщение
Нет, не так.
Вывод из СКД доступен и на сервере.
И есть класс ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.
Можно настроить СКД и вывести с ее помощью результат в таблицу или дерево значений.
Погоди...
Я сейчас похож на Кота Базилио, а наш разговор на разговор Лисы Алисы с Котом Базилио на поле чудес...
Лиса Алиса: 5 золотых на 2 не делится.
Лиса Алиса: Попробуем разделить на 5.
Лиса Алиса: Получай свой золотой.
Кот Базилио: ?!?!
Погоди, погоди.

СКД - это построитель отчетов. Результат работы СКД - ячейки отчета(!) со свеми заголовками, промежуточными и окончательными итогами. Результат работы СКД практически невозможно использовать для работы с полученными записями... С результатами вообще непонятно что делать программисту.
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("Запрос");
       Запрос.Текст=ТекстЗапроса;
       Выборка=Запрос.Выполнить().Выбрать();
       Пока Выборка.Следующий() Цикл
          НовСтр=ВнешниеДанные.Добавить();
          ЗаполнитьЗначенияСвойств(НовСтр,Выборка);
       КонецЦикла;
    Исключение
       Сообщить(ОписаниеОшибки(),СтатусСообщения.Внимание);
    КонецПопытки;
    База=Неопределено;
 КонецПроцедуры
См. также http://kb.mista.ru/article.php?id=41
__________________
полезное на axForum, github, vk, coub.
Старый 09.12.2009, 13:06   #6  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
СКД - это построитель отчетов. Результат работы СКД - ячейки отчета(!) со свеми заголовками, промежуточными и окончательными итогами. Результат работы СКД практически невозможно использовать для работы с полученными записями... С результатами вообще непонятно что делать программисту.
Нет, не так.
СКД - это система, позволяющая на входе описать
а) Запросы
б) Таблицы значений
в) Внешние источники данных
,
применить к ним настройки компоновки, которые могут заранее формироваться визуально или программно и выгрузить полученный результат в макет отчета или структуру данных.
Утверждение Результат работы СКД - ячейки отчета(!) - неверно. Это лишь один из вариантов.
Точно так же и стандартный ПостроительОтчета может формировать отчет, а может использоваться как источник данных для последующей обработки.

Пример кода:
X++:
   = .(, .., );
  (, .);
  //Создадим и инициализируем процессор компоновки
   =  ;
    =  
   .(, , , );
  
   .(, , , );
  ;
 
  = .(, .., , , ("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

//Создадим и инициализируем процессор компоновки
   =  ;
    =  
   .(, , , );
  
   .(, , , );
  ;
 ;
 
 //
 =  ;
  =  ;
 .();
 .();

Последний раз редактировалось Сисой; 09.12.2009 в 13:18.
За это сообщение автора поблагодарили: mazzy (2).
Старый 09.12.2009, 13:09   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Сисой Посмотреть сообщение
Нет, не так.
...
Утверждение Результат работы СКД - ячейки отчета(!) - неверно. Это лишь один из вариантов.
Спасибо. А можно ссылки куда-нибудь, где можно посмотреть описания и/или доку других вариантов?
__________________
полезное на axForum, github, vk, coub.
Старый 09.12.2009, 13:28   #8  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
Надо смотреть документацию по 1С.
Приведенный выше пример я взял с партнерского форума.
Вообще-то 1Сники редко пользуются подобным приемом (привычка парсить запросы вручную велика). И ПостроительОтчета и СКД в режиме получения таблицы-результата чаще всего юзаются из-за интерфейсных возможностей (mini-OLAP).
Тут надо честно признаться, что скорость работы СКД все равно будет ниже, чем Query. Т.к. часть обработки результатов запроса выполняется на сервере приложений 1С. Впрочем, здесь есть и плюс. Например, в СКД можно применить к реквизиту выборки произвольную функцию на языке 1С.
Старый 09.12.2009, 14:08   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Спасибо!

Цитата:
Сообщение от Сисой Посмотреть сообщение
Пример кода:
Код:
  Если ВнешниеНаборыДанных = Неопределено Тогда
   ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
  Иначе
   ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);
  КонецЕсли;
Офигеть конструкция!
А почему она не эквивалентна простой конструкции?
Код:
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);
Пропущенный параметр и параметр со значением Неопределено - это не одно и то же?


Цитата:
Сообщение от Сисой Посмотреть сообщение
Надо смотреть документацию по 1С.
А в новых конфах это где-нибудь используется? Может укажешь где, а я посмотрю?

Цитата:
Сообщение от Сисой Посмотреть сообщение
Вообще-то 1Сники редко пользуются подобным приемом (привычка парсить запросы вручную велика).
Если честно, то пока я находился в ступоре (как Кот Базилио), я говорил с несколькими 1Сниками. Кроме мата по поводу СКД - пока ничего не слышал. Но может быть, это были "неправильные" 1Сники, которые дают "неправильный мед".

Поэтому твой довод услышал. Но пока не сильно доверяю.
Хотелось бы проверить и убедиться самостоятельно.

И все-таки. Какие значения получаются в результирующей таблице/дереве значений? 1Сники говорят, что ячейки отчета. Можно где-нибудь на код обработки результата глянуть?

Цитата:
Сообщение от Сисой Посмотреть сообщение
Тут надо честно признаться, что скорость работы СКД все равно будет ниже, чем Query. Т.к. часть обработки результатов запроса выполняется на сервере приложений 1С. Впрочем, здесь есть и плюс. Например, в СКД можно применить к реквизиту выборки произвольную функцию на языке 1С.
Справедливости ради, надо отметить, что если в Query задействованы таблицы с переопределенным методом postLoad, то он также будет выполняться не на SQL'е. Но в Аксапте это сильное исключение из правил. И оно во всех документациях оговаривается. postLoad - устаревший метод, которые используется в последних версиях Аксапты вряд ли больше десятка раз...

А как часто в 1С результаты работы СКД обрабатываются на сервере приложений 1С?
__________________
полезное на axForum, github, vk, coub.
Старый 09.12.2009, 14:27   #10  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
Пропущенный параметр и параметр со значением Неопределено - это не одно и то же?
Не одно и то же.
Если параметр пропущен, он заменяется значением по умолчанию, определенным при описании процедуры/функции. Передача Неопределено (в языке 1С это пустое значение неопределенного типа) в качестве параметра отрубает эту подстановку.

Цитата:
Сообщение от mazzy Посмотреть сообщение
А в новых конфах это где-нибудь используется? Может укажешь где, а я посмотрю?
Времени нет смотреть во всех конфах. В Бухгалтерии 8.1 нет. В 1С:Документооборот 8.2 (бета) есть.

Цитата:
Сообщение от mazzy Посмотреть сообщение
Если честно, то пока я находился в ступоре (как Кот Базилио), я говорил с несколькими 1Сниками. Кроме мата по поводу СКД - пока ничего не слышал. Но может быть, это были "неправильные" 1Сники, которые дают "неправильный мед".
Не знаю. У меня в подчинении отдел 5 человек, все нормально пользуются СКД. Надо просто курсы соответствующие пройти.
Тут другая проблема есть - стандартный интерфейс настройки СКД непонятен рядовому юзеру. Он "для программиста". Поэтому многие рисуют свои формы-надстройки.
За это сообщение автора поблагодарили: mazzy (2).
Старый 09.12.2009, 14:43   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от mazzy Посмотреть сообщение
Справедливости ради, надо отметить, что если в Query задействованы таблицы с переопределенным методом postLoad, то он также будет выполняться не на SQL'е. Но в Аксапте это сильное исключение из правил. И оно во всех документациях оговаривается. postLoad - устаревший метод, которые используется в последних версиях Аксапты вряд ли больше десятка раз...
при помощи перекрестных ссылок в русской ax2009 посчитал - получилось 9 раз
Выборка этих таблиц дополнительно обрабатывается AOS'ом.
Напомню, что всего в этой версии определено 3220 таблиц. Обычно около 1500 реально используется.
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 569
Размер:	39.1 Кб
ID:	5432

Цитата:
Сообщение от mazzy Посмотреть сообщение
А как часто в 1С результаты работы СКД обрабатываются на сервере приложений 1С?
Сисой, а на этот вопрос?
__________________
полезное на axForum, github, vk, coub.
Старый 09.12.2009, 14:47   #12  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
И все-таки. Какие значения получаются в результирующей таблице/дереве значений? 1Сники говорят, что ячейки отчета. Можно где-нибудь на код обработки результата глянуть?
Лови пример. Запрос по справочнику валют. В СКД отбор Код="810"
В итоге - таблица значений
Вложения
Тип файла: rar ОтчетДляMazzy.rar (4.4 Кб, 60 просмотров)
За это сообщение автора поблагодарили: mazzy (5).
Старый 09.12.2009, 14:51   #13  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
И все-таки. ... 1Сники говорят, что ячейки отчета.
Это троечники, а не 1Сники.
Старый 09.12.2009, 16:43   #14  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Ну...

Цитата:
Сообщение от mazzy Посмотреть сообщение
А как часто в 1С результаты работы СКД обрабатываются на сервере приложений 1С?
Хорошо. Тогда перефорумлирую:
При каких условиях в 1С результаты работы СКД обрабатываются на сервере приложений 1С?

Если в методичках для отличников рекомендаций нет, то насколько верно предположение, что результаты работы СКД почти всегда обрабатываются на сервере приложений 1С?
__________________
полезное на axForum, github, vk, coub.
Теги
1c, платформа, сравнение систем

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
1С: Франчайзи - есть ли будущее? miklenew Другие системы на рынке 13 03.10.2009 12:22
Изменения ассортимента, цен, условий поставки и сопровождения ряда продуктов «1С:Предприятия 7.7» mazzy Другие системы на рынке 40 30.04.2008 23:31
Обсуждение документа "Сравнение 1С и AX" Кузнецов Александр Сравнение ERP-систем 44 20.02.2008 13:56
Платформа «1С:Предприятие» как средство разработки бизнес-приложений Morpheus Другие системы на рынке 1 26.12.2006 13:10
1С ищет стратегического инвестора Роман Кошелев Другие системы на рынке 1 16.04.2003 23:02

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:24.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.