16.04.2010, 11:46 | #241 |
Участник
|
Цитата:
= либо включить авторежим, когда аксапта сама подберет список полей, которые используются = либо включить все поля = либо вручную перечислить нужные поля и группировки программно можно пересоздать и/или полностью изменить любой запрос msdn в помощь: http://msdn.microsoft.com/en-us/library/aa606206.aspx http://msdn.microsoft.com/en-us/library/aa856706.aspx и так далее http://msdn.microsoft.com/en-us/libr...=AX.50%29.aspx на форуме можно поискать по именам методов примеры использования. |
|
16.04.2010, 11:46 | #242 |
Участник
|
Цитата:
|
|
16.04.2010, 11:50 | #243 |
Участник
|
Давайте уж до конца доведем сравнение выражений критериев отбора в аксапте и 1С (для будущих читателей, я-то в курсе):
1. В Ax есть возможность сравнения со значениями других реквизитов (реквизит в правой части условия)? 2. В Ax юзер может задавать сложные логические условия отбора, используя скобки, ИЛИ, И? |
|
16.04.2010, 11:52 | #244 |
Участник
|
Цитата:
Сообщение от Сисой
Давайте уж до конца доведем сравнение выражений критериев отбора в аксапте и 1С (для будущих читателей, я-то в курсе):
1. В Ax есть возможность сравнения со значениями других реквизитов (реквизит в правой части условия)? 2. В Ax юзер может задавать сложные логические условия отбора, используя скобки, ИЛИ, И? 2. да http://axapta.mazzy.ru/lib/search/ |
|
16.04.2010, 11:54 | #245 |
Участник
|
И что она мне как пользователю дает? Ну вижу я 20 строк, расцвеченных по статусу - дальше что? А если я - оператор, отвечающий за оформление заказов, а заказов у меня - сотня-другая в день, что мне от расцветки 20 заказов на одном экране? Мне тогда интереснее было бы видеть, сколько заказов мне еще надо обработать, по скольки, к примеру, машина вернулась обратно, потому что документы оказались неправильно оформлены, etc, потому что мой заработок как оператора зависит от этого. А в этом случае куда интересней видеть стопочки документов с указанием их количества и "светофор" с расчетом предварительного размера премии, как в том же ролевом центре, а это уже не просто "условное форматирование", а BI.
|
|
|
За это сообщение автора поблагодарили: mazzy (2). |
16.04.2010, 11:58 | #246 |
Участник
|
|
|
16.04.2010, 12:08 | #247 |
Участник
|
Стопки, кстати, - хорошая идея.
Я у себя в самописках такую штуку делал. В типовых 1С не ипользуется. |
|
16.04.2010, 12:22 | #248 |
Участник
|
gl00mie, мне кажется, что вы передергиваете разговор с возможностей к конкретным реализациям. Реализации - не проблемы платформ. Светофоров может быть масса, они бывают полезны и разработчику не нужно напрягаться ля их реализации - ни единой строки кода, только предопределенные настройки. Код только если нужно заблокировать настройки от изменений.
Стопочки - хорошая, годная плюшка. И поправка, спасибо Сисою - я совершенно забыл о том, что условия отборов в 1С группируются логическими связками "и" либо "или", так что возможность конструкции произвольных выражений есть, но она работает не как скрипты в строке поиска, а как конструктор для работы мышью. |
|
16.04.2010, 13:26 | #249 |
Участник
|
Цитата:
Данный кусок кода прямо в ходе с работы с формой переназначает запрос - источник данных динамического списка на форме.
Все это только текстовыми вставками можно делать, и при этом запрос уже конструктором НЕ ОТКРОЕТСЯ!!! 1С-у нужно сделать более интеллектуальный конструктор для работы с текстовыми вставками, но этого не будет! Последний раз редактировалось ibc; 16.04.2010 в 13:28. Причина: получилось слишком длинно - укоротил |
|
16.04.2010, 16:05 | #250 |
Участник
|
Кстати, можно сделать так в 1С
X++: "ВЫБРАТЬ
| АвансовыйОтчет.Ссылка
|ИЗ
| ИмяИсточника КАК ИмяИсточника
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет КАК АвансовыйОтчет
| ПО ИмяИсточника.ОдноИзПолейИсточника = АвансовыйОтчет.Дата" Такой запрос в конструкторе откроется на ура, хотя ИмяИсточника и ОдноИзПолейИсточника нигде больше не фигурируют, и могут быть определены позднее! Последний раз редактировалось ibc; 16.04.2010 в 16:10. Причина: так просто |
|
09.09.2010, 22:16 | #251 |
Участник
|
УРА! Я дочитал, день прошел не зря! :-)
На сколько я понял, последний предмет обсуждения, что в 1С неудобно парсить длинные тексты запросов, СОГЛАСЕН, ужас как неудобно. Но хочется вставить свои пять копеек: 1. Временные таблицы. Всегда длинный запрос можно разбить на временные таблицы и кстати у SQL будет меньше творчества в оптимизации. 2. Есть объект постороитель отчета, которому можно передать как источник данных и этот запрос и таблицу значений, а дальше программно крутить его как хочется (группировки, итоги, условия) 3. Есть СКД которая позволяет делать тоже самое но с несколькими запросами. Что касается места исполнения кода, то в 8.2 в управляемых формах это всегда сервер, в режиме толстого клиента, кто скажешь, но это никогда не сервер SQL. В принципе производительность разумная, у меня есть внедрение, когда 100000 записей в таблице значений парсятся через построитель отчета поиском по части строки. Так вот сборка 100000 в таблицу происходит дольше, чем парсинг построителем. Кстати, почему никто не упомянул об том, что управляемая форма работает и как консольное приложение и как WEB клиент, функциональность совпадает на 98%. Ведь это реальное преимущество WEB приложение не требует отдельной разработки, отдельного кода и т.д. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
09.09.2010, 22:33 | #252 |
Участник
|
Цитата:
Сообщение от kirillvv
УРА! Я дочитал, день прошел не зря! :-)
... Кстати, почему никто не упомянул об том, что управляемая форма работает и как консольное приложение и как WEB клиент, функциональность совпадает на 98%. Ведь это реальное преимущество WEB приложение не требует отдельной разработки, отдельного кода и т.д. 1C выпустил бету тонкого клиента с Web-доступом и еще: Возможности функционала Dynamics AX и 1С УПП 1С выпустила версию платформы 8.2 Попробую рассказать о принципах оффлайновой работы 1С. Можно "пощупать" интерфейс 1С8.2 (управляемое приложение) (обратите внимание на даты веток) а также http://axforum.info/forums/forumdisplay.php?f=29 http://axforum.info/forums/forumdisplay.php?f=102 |
|
27.12.2010, 00:04 | #253 |
Участник
|
Была поднята очень интересная тема: как правильно хранить запрос. В связи с этим есть несколько вопросов к программистам DAX
1. В 1С есть 2 способа для формирования параметризированных запросов: ПостроительОтчетов и СКД. Каждый из них делит запрос на 2 части: Настройки (Выборка, Отбор, Сортировка) и Запрос, в тексте которого указывается в какие места необходимо применить указанные настройки. То есть для отчета с возможностью расшифровки пишется 1 текст запроса, к которому применяются настройки и получается итоговый текст запроса. Разумеется настройки можно сохранить. Есть ли аналогичный механизм в DAX? 2. После того как настройки применяются к базовому запросу, СКД исключает из запроса соединения и объединения которые не влияют на результат. Есть ли подобных механизм в DAX? 3. В 1С с помощью виртуальной таблицы остатков и оборотов можно описать запрос, который может вывести остатки и обороты с указанной в настройках периодичностью (Год, Месяц, День, Регистратор, Запись). Есть ли подобный механизм в DAX? |
|
28.12.2010, 13:05 | #254 |
Участник
|
Цитата:
Есть ли аналогичный механизм в DAX?
А если чего то и нет, значит это не нужно вовсе! Если, местным гуру будет не лень, то они напишут это ещё раз |
|
28.12.2010, 14:44 | #255 |
Участник
|
Цитата:
Сообщение от svcoder
1. В 1С есть 2 способа для формирования параметризированных запросов: ПостроительОтчетов и СКД. Каждый из них делит запрос на 2 части: Настройки (Выборка, Отбор, Сортировка) и Запрос, в тексте которого указывается в какие места необходимо применить указанные настройки. То есть для отчета с возможностью расшифровки пишется 1 текст запроса, к которому применяются настройки и получается итоговый текст запроса. Разумеется настройки можно сохранить. Есть ли аналогичный механизм в DAX?
если запрос пишется текстом, то подстановки конечно работают X++: strfmt("Hello, %1", "world") == "Hello, world" если запрос пишется в коде, то базовая проверка синтаксиса есть. но изменить такой запрос очень и очень проблематично. хотя и возможно - в Аксапте можно программно менять код. если используется Query, то при помощи методов этого класса можно менять любой акспект запроса. Причем объект хранит не текст, а структуру запроса. Текст запроса появляется как результат работы класса в соответствующем методе. при помощи класса Query очень сложно создать синтактически невалидный текст запроса. именно способ c Query является предпочтительным (хотя и у него есть свои ограничения. например, нельзя сделать relation со знаком >=). скорее всего вы хотели спросить "насколько удобно работать с запросом" ответ: в Аксапте запрос рекомендуется хранить в классе Query. В этом случае работать с запросом на порядок легче и удобнее, нежели с текстом. читайте на форуме по ключевому полю Query. Цитата:
Причем один запрос может выродится в несколько. Аксапта такие случаи постарается корректно обработать (справедливости ради, надо отметить, что большинство смертельных для Аксапты глюков происходит именно в таких случаях). (для Аксаптоведов: я имею в виду временные таблицы в середине запроса, я имею в виду выключенные конфигурационными ключами таблицы, я имею в виду автовыбор полей в запросе) Цитата:
в ядре аксапты нет понятия периодичность. в адре можно сделать группировку по произвольным полям (обычный SQL). "периодичность" в Аксапте - это понятие уровня бизнес-приложения. сгруппировать с точностью до поля в таблице периоды - конечно же можно. добавил: да, и конечно же в Аксапте есть предметные классы, которые работают с остатками/оборотами. в этих классах конечно же есть понятие периодичность, даты. как правило, программисту на этом уровне уже не нужно "строить запросы". на этом уровне он должен обращаться к методам соответствующих классов. пример http://axapta.mazzy.ru/lib/inventsumdate/ другие примеры ищите на форуме. Цитата:
как только видишь слово "все" - жди логической ошибки. Последний раз редактировалось mazzy; 28.12.2010 в 15:02. Причина: добавил про периодичность. |
|
28.12.2010, 15:00 | #256 |
Ищущий знания...
|
Цитата:
не внимательно прочитал, приношу свои извинения!
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем Последний раз редактировалось lev; 28.12.2010 в 16:00. Причина: зачеркнул неверное утверждение |
|
28.12.2010, 15:54 | #257 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: lev (2). |
28.12.2010, 15:57 | #258 |
Ищущий знания...
|
Цитата:
не внимательно прочитала, беру свои слова обратно. спасибо Raven Melancholic за поправочку.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
29.12.2010, 11:44 | #259 |
Участник
|
К сообщению mazzy про запрос следует добавить то, что запрос является не только отдельным объектом, но и в формах, отчетах и т.п. используется именно запрос. С некоторыми тонкостями все средства обработки из языка запросов в форме, отчетах, наследниках RunBase (отдаленный аналог обработки в 1С) одинаковы. Кроме настройки этих запросов из кода можно полностью заменить запрос у той же формы в момент выполнения.
Справедливости ради, стоит сказать, что такие программные манипуляции усложняют восприятие. То есть, чтобы понять почему форма (отчет) ведут себя тем или иным образом, а не так, как ожидаешь, приходится лезть в код, а не смотреть дизайн. Но одно из самых замечательных свойств этой унификации запросов то, что пользователь может задавать в форме, в отчете, в обработке дополнительные связи с другими таблицами способом, который разработчик и не предполагал. Правда, это добавление не позволяет вывести какие-то дополнительные данные, но в качестве фильтрации вполне хорошо себя зарекомендовало. Такие настройки можно сохранять и использовать в дальнейшем. Например, в списке клиентов пользователь таким способом может отфильтровать клиентов каким-нибудь особым способом, под который писать отдельные отчеты или запросы не требуется. Скажем ,пользователь может задать что-то подобное: "Отобразить тех клиентов, у которых у директора день рождения на следующей недели и которые купили у нас в прошлом месяце чего-то на сумму больше миллиона за раз, но долги которых не являются просроченными". |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
29.12.2010, 13:23 | #260 |
Участник
|
Цитата:
Сообщение от Raven Melancholic
Например, в списке клиентов пользователь таким способом может отфильтровать клиентов каким-нибудь особым способом, под который писать отдельные отчеты или запросы не требуется. Скажем ,пользователь может задать что-то подобное: "Отобразить тех клиентов, у которых у директора день рождения на следующей недели и которые купили у нас в прошлом месяце чего-то на сумму больше миллиона за раз, но долги которых не являются просроченными".
|
|
Теги |
1c, платформа, сравнение систем |
|
|