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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.11.2009, 17:45   #1  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
В принципе, по технологическим возможностям платформа 1С сильно приблизилась к Аксапте
****** Выделено отсюда AXAPTA, адью! *******
***** Внимание! Автором задана тема этой ветки - технологические возможности ПЛАТФОРМЫ. *******
***** возможности функционала в соседней ветке *******


Был я там на собеседовании. В принципе, все ничего, но смутило предложение оформить договор подряда вместо трудового договора.
Наколько я понял, они считают 1С более удобным и дешевым решением.
В принципе, по технологическим возможностям платформа 1С сильно приблизилась к Аксапте (навскидку нет слоев и наследования классов, многое остальное уже есть). Проблема, как обычно, в функционале. Его либо нет, либо он никак не использует последние возможности последних версий платформы.
Следует понимать, что рынок "вкусных" вакансий (от 2000 EUR) по 1С весьма ограничен (т.к. крупных проектов тоже немного). Хотя довольно много вакансий за 1000-1200 EUR - банальная поддержка многочисленных бухгалтерий. С голоду не помрете.
За это сообщение автора поблагодарили: mazzy (-17), ibc (1), miklenew (11).
Старый 26.11.2009, 23:02   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Сисой Посмотреть сообщение
В принципе, по технологическим возможностям платформа 1С сильно приблизилась к Аксапте (навскидку нет слоев и наследования классов, многое остальное уже есть).
Блин, опять мозги промываешь?
Прекрати, пожалуйста, а?

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

Нет, конечно. До Аксапты им как до Китая раком.
Mazzy, это твой форум, но зачем же стулья ломать?
Я, к сожалению, не копенгаген в Ax2009, но к "четверке" 1С 8.2 приблизилась очень сильно (повторюсь - не по функционалу, а по идеологии организации работы системы). Более того - процентов 40 нововведений версии 8.2 откровенно слямжено у Ax (вышла замечательная книжка Радченко на этот счет). Разница есть, но она сокращается очень быстро.
Что касается функциональности, то 1С удалось-таки совершить маркетинговый прорыв. Я с удивлением обнаружил обширный сегмент заказчиков, верящих в то, что 1С:УПП - это ERP-решение уровня Аксапты. И мне даже приходится переубеждать их, объясняя, что эти системы если и похожи чем-то, так это суммами бюджета внедрения. Просто в одной системе нужно слегка корячить уже написанное, а в другой - придумывать и нагромождать отсутствующее.
Старый 30.11.2009, 13:14   #4  
FE is offline
FE
Участник
 
224 / 58 (2) ++++
Регистрация: 28.07.2005
Адрес: Петербург
Чуть-чуть опоздал, создавая свою тему...
Старый 30.11.2009, 13:27   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от FE Посмотреть сообщение
Чуть-чуть опоздал, создавая свою тему...
Все правильно сделал.

Хотел бы только обратить внимание Аксаптоведов на типичный выверт 1Сников: вы, Аксаптоведы, по-умолчанию говорите и спрашиваете о функционале. 1Сники по-умолчанию говорят и спрашивают о ПЛАТФОРМЕ! И это огромная разница.

Сейчас получилось правильно - отдельная ветка по платформе и отдельная ветка по функционалу.

Модератоский-оффтопик-ON.
Цитата:
Сообщение от Сисой Посмотреть сообщение
Mazzy, это твой форум, но зачем же стулья ломать?
Вроде вменяемый человек был.
А теперь стал "евангелистом", который в каждой ветке по делу и не по делу несет свою веру.

Можешь ведь. Сейчас очень четко отделил сообщение по своей вере в Платформу и сообщение по теме исходной ветки. Что позволило безболезненно разделить твои сообщения по темам.

Пожалуйста, хочешь нести свою веру - неси, флаг тебе в руки.
Только не надо замешивать рекламу своей веры во все ветки направо и налево.
Пока не научишься буду стулья ломать. Не проймет - буду просто удалять как это было с рекламой.
Не смешивай! И не оффтопь! И не вынуждай модераторов оффтопить. И ничего с твоими сообщениями не сделается.

Щас напишу ответ по теме.
Модератоский-оффтопик-OFF.
__________________
полезное на axForum, github, vk, coub.
Старый 30.11.2009, 13:31   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Сисой Посмотреть сообщение
Я, к сожалению, не копенгаген в Ax2009, но к "четверке" 1С 8.2 приблизилась очень сильно (повторюсь - не по функционалу, а по идеологии организации работы системы). Более того - процентов 40 нововведений версии 8.2 откровенно слямжено у Ax (вышла замечательная книжка Радченко на этот счет). Разница есть, но она сокращается очень быстро.
Книжку видел и поглядел.

Повторюсь: Нет, не приближается даже к версии ax3.0.
1с только-только ввела трехуровневость и болеет теми же детскими болезнями бешенного трафика между клиентом и сервером, которыми болела ax2.1 и ax2.5.

Пакетной обработки в платформе 1С до сих пор нет.

По прежнему платформа 1С является однопоточной. С потоками нельзя работать даже на клиенте.

Насколько я помню, даже обычного Progress Bar'а и то нет в этой платформе.

Да, переписывают.
НО: нет, до последних версий Аксапты им еще как до Китая раком.

Это моя точка зрения в противовес твоей.

Теперь, раз уж ты начал, начинай перечислять эти технологические возможности, по которым ПЛАТФОРМА приближается к Аксапте. Будем обсуждать предметно.
__________________
полезное на axForum, github, vk, coub.
Старый 30.11.2009, 14:09   #7  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
Cool
Цитата:
Сообщение от mazzy Посмотреть сообщение
Насколько я помню, даже обычного Progress Bar'а и то нет.
Код:
Индикатор (ProgressBar)
Свойства:
Доступность (Enabled)
МаксимальноеЗначение (MaxValue)
МинимальноеЗначение (MinValue)
Ориентация (Orientation)
ОтображатьПроценты (ShowPercent)
Подсказка (ToolTip)
Рамка (Border)
СтильОтображения (ShowStyle)
ЦветРамки (BorderColor)
ЦветФона (BackColor)
Шаг (Step)
Шрифт (Font)

Описание:
Индикатор предназначен для представления текущего состояния некоторого 
изменяющегося числового значения. Например, может применяться для наглядного 
представления выполнения процесса перебора строк таблицы значений или 
элементов массива. Для индикатора не предусмотрено формирование каких-либо 
событий, он также не может изменять связанные с ним данные.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего 
соединения.
Это из 8.1... в 8.0 не помню было ли...Правда в 8.2 только на толстом клиенте это работает, но на управляемых формах можно подключить какой-нибудь ActivX... почему нет :-)
За это сообщение автора поблагодарили: mazzy (2).
Старый 30.11.2009, 14:17   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Dolter Посмотреть сообщение
Это из 8.1... в 8.0 не помню было ли...Правда в 8.2 только на толстом клиенте это работает, но на управляемых формах можно подключить какой-нибудь ActivX... почему нет :-)
Спасибо. Круто.
1. Значит я ошибался
2. Теперь в платформе 1С есть ProgressBar. Ура! Мы нашли где они приблизились
Давайте еще

(В сторону) что есть в Аксаптовском туториале:
Миниатюры
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 537
Размер:	22.8 Кб
ID:	5392   Нажмите на изображение для увеличения
Название: 2.PNG
Просмотров: 506
Размер:	30.6 Кб
ID:	5393  

Нажмите на изображение для увеличения
Название: 3.PNG
Просмотров: 486
Размер:	26.4 Кб
ID:	5394   Нажмите на изображение для увеличения
Название: 4.PNG
Просмотров: 475
Размер:	34.6 Кб
ID:	5395  

Изображения
 
__________________
полезное на axForum, github, vk, coub.
Старый 30.11.2009, 14:28   #9  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
1с только-только ввела трехуровневость и болеет теми же детскими болезнями бешенного трафика между клиентом и сервером, которыми болела ax2.1 и ax2.5.
Согласен. Пройдет минимум два-три года, прежде чем детские болезни исчезнут.

Цитата:
Сообщение от mazzy Посмотреть сообщение
Пакетной обработки в платформе 1С до сих пор нет.
Ты уверен, что это вопрос по платформе? По-моему, по функционалу. По крайней мере, в моей кастомизации УПП пакетный режим реализован (в оффлайне). Во всяком случае, платформа позволяет эмулировать пакетный запуск за счет фоновых и регламентных заданий.

Цитата:
Сообщение от mazzy Посмотреть сообщение
По прежнему платформа 1С является однопоточной. С потоками нельзя работать даже на клиенте.
Принято. Кстати, сервер 1С умеет работать с потоками. Поэтому можно эмулировать асинхронные процессы примерно так:
http://net-to-you.ru/programm/1cprog.../159-test.html


Цитата:
Сообщение от mazzy Посмотреть сообщение
Насколько я помню, даже обычного Progress Bar'а и то нет в этой платформе.
Есть начиная с самой первой версии 8.0.
Старый 30.11.2009, 14:32   #10  
Alexx7 is offline
Alexx7
Сам.AX
Аватар для Alexx7
Самостоятельные клиенты AX
1C
 
305 / 28 (1) +++
Регистрация: 22.07.2009
Цитата:
Сообщение от Сисой Посмотреть сообщение
....
Есть начиная с самой первой версии 8.0.
В 7.7 мы его рисовали в строке состояния как [|||||||______] 42%
И это было круто.
__________________
Возьми свет!
Старый 30.11.2009, 14:39   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Сисой Посмотреть сообщение
Ты уверен, что это вопрос по платформе? По-моему, по функционалу.
Ок. Куда бы ты ни отнес, у нас есть ветка, где можно громко заявить о...
Про функционал - сюда Возможности функционала Dynamics AX и 1С УПП

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

Цитата:
Сообщение от Сисой Посмотреть сообщение
Принято. Кстати, сервер 1С умеет работать с потоками. Поэтому можно эмулировать асинхронные процессы примерно так:
http://net-to-you.ru/programm/1cprog.../159-test.html
О!!! Цитирую: "Но из любой ситуации есть выход. Система 1С 8.1 имеет механизм позволяющий получить если и не многопоточную систему, то хотя бы её имитацию."
Имитация - это уже хорошо. Искренне поздравляю.

А тупой таймер, который был еще в версии ax2.5, реализовать этой иммитацией можно? Или хотя бы автообновление формы по таймеру?
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 435
Размер:	72.5 Кб
ID:	5397

Цитата:
Сообщение от Сисой Посмотреть сообщение
Есть начиная с самой первой версии 8.0.
Да, да. 1Сники - извините.

просто меня здорово смутили разработки, которые выкладывают на инфостарте
например, http://infostart.ru/public/16021/

ПрогрессБар есть. Правда с ограничениями, но есть. Ура, в этом наконец-то приблизилась к ax2.1

Давайте еще.
__________________
полезное на axForum, github, vk, coub.
Старый 07.12.2009, 12:25   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Похоже больше нет тем.

Тогда попробую начать обосновывать свое мнение. Цитирую:
Цитата:
Сообщение от mazzy Посмотреть сообщение
Нет, конечно. До Аксапты им как до Китая раком.
Тогда еще некоторые темы для обсуждения.
Пока кратко, без обоснования и ссылок (в надежде, что большинство понимает о чем идет речь):

1. Query
В платформе 1С нет объекта, который позволяет ПРОГРАММИСТУ строить query программно. Аксаповеды, вы не поверите, но программисты 1С до сих пор парсят и правят тексты строк запросов.

Т.е. если пользователь хочет добавить условия и фильтры, то программист должен позаботиться об этом и вставить куски кода с этими условиями в текствоый запрос. Для этого программисту нужно парсить строку запроса и вставлять туда условия со скобками, кавырками и прочей чешуей...

Да, в 1С есть Построитель запросов - это некий конструктор, который позволяет мышкой создать и вставить текст запроса в код. Но с этим Построителем запросов нельзя работать программно в run-time. Только в design-time.

Да, в 1С есть возможность задавать запросы в отчетах. И такие запросы пользователь может менять. Но в такие запросы нельзя влезть программно. И кроме того, такая возможность существует только в отчетах.

Очень много Бла-бла-бла... на эту тему. Но надеюсь, что большинство участников, понимает о чем идет речь.

2. Кэширование таблиц
В Аксапте очень большое значение уделяется кэшированию таблиц. См. книжку Dynamics Inside.

Кэширование конечно же не поможет при работе с большими таблицами типа InventTrans, InventSettlement и прочее. Но кэширование заметно помогает при работе с настроечными таблицами (профили разноски, параметры компании, параметры валют, вевозможные группы, статусы и другие настройки)

В результате треть запросов (и больше) Аксапта просто не отправляется на SQL-сервер.

На кэшировании таблиц в Аксапте завязано очень многое. Так код может выполняться быстрее
X++:
while select custtrans
where ...
{
    custtable = custtable::find(custtrans.accountnum)
}
чем код
X++:
while select custtrans
where ...
join custtable
where custtable.accountnum == custtrans.accountnum
{
...
}
а код
X++:
while select custgroup
where custgroup.CustGroup == 'myGroup'
{
  if( custgroup.paymtermid == 'myTerm' )
  {
  ...
  }
}
может выполняться быстрее, чем
X++:
while select custgroup
where custgroup.CustGroup == 'myGroup'
&& custgroup.paymtermid == 'myTerm'
{
  ...
}
Это просто пронизывает Аксапту.

Те, кто говорят о том, что Аксапта не поддерживает T-SQL в полном объеме, просто не понимают о чем идет речь. Аксапта очень большое число "правильно написанных" запросов просто не посылает на SQL-сервер. И для разработчиков самой Аксапты, и для разработчиков приложений на этой самой Аксапты предельно важно, чтобы макисмально распределить нагрузку между AOS и SQL.

Принцип простой - в многопользовательской среде - несколько простых и кэшируемых запросов намного лучше (с точки зрения производительности), нежели один сложный запрос. Выражаясь языком поговорок - лучше сорок раз по разу, чем один раз, но сорок раз.

3. Listerals vs Placeholders
http://axapta.mazzy.ru/lib/literals_vs_placeholders/
В 1С просто нет такой штуки. Разработчики платформы 1С об этом не думали.
Они вообще не думали, как SQL будет выполнять такие запросы.

Они похоже не думали, что MS SQL прекращает всякую оптимизацию запроса, если в нем присутствует больше 8 таблиц. См. также разыменование.
Комментарий: ниже Alexius и Vezunchik настойчиво попросили меня подтвердить мое высказывание про прекращение оптимизации. Я покопался и не смог найти подтверждение. О чем написал здесь. Поэтому свое высказывание про оптимизацию зачеркиваю. Спасибо вам за настойчивость. Однако, на мой взгляд это никак не влияет на исходный тезис, поскольку 1С с легкостью генерирует complex SELECT statements, для которых оптимизатор выбирает не самый оптимальный план. Мое мнение осталось прежним - разработчики платформы 1С не думали как будут выполняться такие сложные запросы.
Ну и так далее.

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

Платформа еще не скоро приблизится
Если и приближается, то к старым версиям Аксапты 2.1, 2.5, которые существовали лет 8-10 назад.
Чтобы там ни провозглашали 1Сники. И как бы не пытались промыть мозги маркетингом.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 13.12.2009 в 21:41. Причина: про прекращение оптимизации запроса с 8ю таблицами.
За это сообщение автора поблагодарили: sukhanchik (4), FE (1), alex55 (1).
Старый 07.12.2009, 12:48   #13  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
1. Query
В платформе 1С нет объекта, который позволяет ПРОГРАММИСТУ строить query программно. Аксаповеды, вы не поверите, но программисты 1С до сих пор парсят и правят тексты строк запросов.
А я считаю, что это в Аксапте наоборот неудобный механизм запросов. Потому что пришел в 1С с PL/SQL и не понимаю, почему я не могу набрать SQL-код и моментально его исполнить. Вопрос вкуса.
По существу. В 1С есть Система компоновки данных (что-то типа Построитель отчета v.2). В ней можно описать базовый запрос, а затем программно или мануально добавлять/удалять любые уточняющие конструкции (отборы, группировки, сортировки и т.п.). В 8.2 практически все отчеты базируются на СКД.

Цитата:
Сообщение от mazzy Посмотреть сообщение
2. Кэширование таблиц
В Аксапте очень большое значение уделяется кэшированию таблиц. См. книжку Dynamics Inside.
В результате треть запросов (и больше) Аксапта просто не отправляется на SQL-сервер.
И что, Аксапта умеет строить планы запросов по своим временным таблицам эффективнее SQL-сервера?
Впрочем, механизм, безусловно, полезный (если он управляем разработчиком).
Кстати, 1С умеет кэшировать объекты (для работы форм и объектного доступа "через точку"). Но конструкции класса Запрос всегда транслируются в SQL-команды СУБД, насколько мне известно.

Ничего не сказано об объектной технике 1С. Мне гораздо приятнее работать с Документом, нежели россыпью таблиц. Ничего не сказано о том, что Аксапта застряла в своей идеологии на полпути - многие известные мне конструкторы учетных систем с поддержкой ООП умеют наследовать таблицы в составе контейнеров классов, описывающих объект предметной области. Да, признаю - DAX позволяет программисту строить куда более масштабируемые системы, нежели 1С:Предприятие (и все равно не на порядок, отличие по моим оценкам в 3-4 раза).
Старый 07.12.2009, 13:05   #14  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Сисой Посмотреть сообщение
А я считаю, что это в Аксапте наоборот неудобный механизм запросов. Потому что пришел в 1С с PL/SQL и не понимаю, почему я не могу набрать SQL-код и моментально его исполнить. Вопрос вкуса.
Проверочный вопрос: а кому неудобно?
Пользователю? Пользователь не наберет SQL запрос. Особенно если в конфигурации есть несколько тысяч объектов (сотни справочников, сотни документов, сотни регистров).

Программисту? программисту нужен удобный механизм модификации запроса на основании галочек, которые выставил пользователь. А как раз такого механизма то и нет.

Поэтому конечно же это не вопрос вкуса
А вопрос - на кого ориентирована платформа.
1С предоставляет возможность ПРОГРАММИСТУ набрать запрос вручную.
Но 1С не предоставляет пользователю никаких инструментов на пользовательском уровне (просто я кучу бла-бла-бла пропустил вокруг query). А программисту не предоставляет возможность удобно взаимодействовать с пользователем и удобно выполнять хотелки пользователей.

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

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

Тут я вынужден, либо снова бла-бла-бла теорию... Либо отослать к книжке Inside Dynamics.


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

Как один из глобальных следствий того, что 1С не кэширует данные - это почти полное отсутствие настроечных таблиц, таблиц с правилами разноски на счета и т.п.

Просто постоянные запросы к этим таблицам приведут к ступору SQL.
Убедится в этом можно отключив кэширование в таблицах Аксапты (у меня были такие клиенты, которые жаловались на то, что "Аксапта неправильно работает с SQL". А потом выяснилось, что какие-то "деятели" переключили во всех таблицах режим кэширования с EntireTable и Found на NotInTTS)...

Цитата:
Сообщение от Сисой Посмотреть сообщение
Ничего не сказано об объектной технике 1С. Мне гораздо приятнее работать с Документом, нежели россыпью таблиц.
Работай с классами. Зачем тебе россыпть таблиц?
Пример того, как получать данные http://axapta.mazzy.ru/lib/inventsumdate/
Такие же примеры есть и для ввода данных http://axapta.mazzy.ru/lib/journaltrans_insert/

Просто у 1С нет выбора на каком уровне работать

Цитата:
Сообщение от Сисой Посмотреть сообщение
Ничего не сказано о том, что Аксапта застряла в своей идеологии на полпути - многие известные мне конструкторы учетных систем с поддержкой ООП умеют наследовать таблицы в составе контейнеров классов, описывающих объект предметной области. Да, признаю - DAX позволяет программисту строить куда более масштабируемые системы, нежели 1С:Предприятие (и все равно не на порядок, отличие по моим оценкам в 3-4 раза).
Да, но и 1С не приблизилась... Застряв даже не "на полпути", а гораздо ближе к началу
В Аксапте хотя бы пытались приблизиться при помощи map...
__________________
полезное на axForum, github, vk, coub.
Старый 07.12.2009, 13:19   #15  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
Да. Но компоновка данных работает только в отчетах.
В модулях проведения, в периодических заданиях и в остальных местах программист доступа к СКД не имеет.
Нет, не так.
Вывод из СКД доступен и на сервере.
И есть класс ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.
Можно настроить СКД и вывести с ее помощью результат в таблицу или дерево значений.
Старый 07.12.2009, 13:09   #16  
Сисой is offline
Сисой
Участник
Аватар для Сисой
Злыдни
1C
 
938 / 339 (13) ++++++
Регистрация: 05.02.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
3. Listerals vs Placeholders
http://axapta.mazzy.ru/lib/literals_vs_placeholders/
В 1С просто нет такой штуки. Разработчики платформы 1С об этом не думали.
Они вообще не думали, как SQL будет выполнять такие запросы.
В ряде случаев (отбор по критерию "равно") 1С просто решает эту проблему по другому. В языке запросов 1С есть оператор В (IN), который умеет принимать в качестве операнда список объектных значений. Такой запрос автоматически транслируется 1С в объединение кучи одинаковых подзапросов с UNION ALL и подстановкой разных значений в условия сравнения. План запроса один и тот же.
За запросы в цикле на экзамене 1С:Специалист сразу дают по шапке. Я по пальцам руки могу пересчитать случаи, когда реально результат отбора данных на шаге цикла зависит от предыдущих итераций. Гораздо чаще можно отобрать необходимые данные в temptable (которая кэшируется на сервере 1С) и в цикле брать значения из нее.
Старый 07.12.2009, 13:28   #17  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Сисой Посмотреть сообщение
В ряде случаев (отбор по критерию "равно") 1С просто решает эту проблему по другому. В языке запросов 1С есть оператор В (IN), который умеет принимать в качестве операнда список объектных значений. Такой запрос автоматически транслируется 1С в объединение кучи одинаковых подзапросов с UNION ALL и подстановкой разных значений в условия сравнения. План запроса один и тот же.
Если честно, то похоже ты вообще не понял о чем речь.
Если кто-то может дать ссылки или объяснить в двух словах (проще, чем в статье), пожалуйста, сделайте это.

Цитата:
Сообщение от Сисой Посмотреть сообщение
За запросы в цикле на экзамене 1С:Специалист сразу дают по шапке.
Хнык-хнык-хнык... Опять начали что ли? Опять попытка смазать разницу между "уже есть" и "можно сделать"?

Да какая разница кто кому на каких курсах говорит?
В типовых запросы в цикле есть? Есть. Надо исправлять? Надо.
При чем здесь экзамен 1С:СПециалист?

Кроме того, мы говорим о платформе.
В том, то и дело, что в Аксапте иногда запрос в цикле выполняется быстрее и удобнее, нежели один сложный запрос. За счет кэширования.

Например,
Для каждого клиента/группы, для каждой номенклатуры/группы, для каждого рабочего центра и т.п... могут быть настроены свои правила разноски по счетам. Правила достаточно сложные. Объектов, для которых могут быть указаны правила разноски мжет быть до нескольких десятков.

Неужели создавать один суперсложный запрос для таких вещей?
Нет, отвечает Аксапта.
Сделайте правильный запрос для выборки объектов.
А правила разноски запрашивайте внутри. Поскольку правила скорее всего полностью попадут в кэш, то внутренние запросы выполнятся очень быстро.

Что кардинально упрощает программирование и взаимодействие объектов.
Псевдокод:
X++:
while select , , , , , , ...
where...
{
     = ();
     = ();
     = ();
    ...
    (, , ...);
}
И это будет гарантировано быстрым. Поскольку лишних запросов на SQL не будет.

Хочу обратить внимание, что код внутри цикла может быть распределен по другим методам, другим классам. Но он все равно будет быстрым из-за кэширования.

Хочу также обратить внимание, что правила могут быть любыми - не только счета. Но и правила расчета себестоимости, правила резервирвоания, правила работы со складскими аналитиками, куча настроек в производстве, офигенная куча настроек лдя сводного планирования... и т.п.

Понятно, что механизм кэширования тоже надо уметь настраивать.
Понятно, что механизм кэширования не спасет в случае больших таблиц.
У этого механизма есть своя область применения, где он работает очень хорошо.

В 1Се этого просто нет. Поэтому разработчики конфигураций вынуждены правила просто зашивать в код. Чтобы избежать ddos-атак на SQL. Или вручную кэшировать.

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

Цитата:
Сообщение от Сисой Посмотреть сообщение
Гораздо чаще можно отобрать необходимые данные в temptable (которая кэшируется на сервере 1С) и в цикле брать значения из нее.
Вот-вот
Отобрать и брать - это отдельный код, который тоже надо программировать.
за размером temptableтоже надо следить вручную
__________________
полезное на axForum, github, vk, coub.
Старый 07.12.2009, 14:05   #18  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,305 / 3538 (124) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Сисой Посмотреть сообщение
В ряде случаев (отбор по критерию "равно") 1С просто решает эту проблему по другому. В языке запросов 1С есть оператор В (IN), который умеет принимать в качестве операнда список объектных значений. Такой запрос автоматически транслируется 1С в объединение кучи одинаковых подзапросов с UNION ALL и подстановкой разных значений в условия сравнения. План запроса один и тот же.
Цитата:
Сообщение от mazzy Посмотреть сообщение
Если честно, то похоже ты вообще не понял о чем речь.
Если кто-то может дать ссылки или объяснить в двух словах (проще, чем в статье), пожалуйста, сделайте это.
Давайте определимся - о чем говорим.
Сисой (как я понимаю) - говорит о том, что если нужно выбрать дискретные данные из таблицы (допустим выбрать 10 клиентов поименно), то 1С поддерживает оператор T-SQL IN и запрос, отсылаемый на сервер принимает вид:

SELECT * FROM CUSTTABLE WHERE ACCOUNTNUM IN ('Клиент1', 'Клиент2', 'Клиент3', ..., 'Клиент 10')

Т.е. вместо того, чтобы слать 10 запросов вида SELECT * FROM CUSTTABLE WHERE ACCOUNTNUM = 'Клиент1' шлется одна вышеприведенная инструкция (это к слову о том, что 1С считает что лучше один большой запрос, чем 10 маленьких).

Но вот мне кажется, что если в коде в 1С последовательно написать строчки:
SELECT * FROM CUSTTABLE WHERE ACCOUNTNUM = 'Клиент1' и
SELECT * FROM CUSTTABLE WHERE ACCOUNTNUM = 'Клиент2'

То в БД уйдет 2 запроса и для каждого запроса будет строиться план.

При этом mazzy говорит о том, что AX (если в коде будут написаны 2 такие же строчки) отправит в БД тоже 2 запроса:
SELECT * FROM CUSTTABLE WHERE ACCOUNTNUM = :p1 и
SELECT * FROM CUSTTABLE WHERE ACCOUNTNUM = :p1

А уже вместо переменной p1 ПОСЛЕ построения плана запроса будет подставлено конкретное значение.
Разница между АХ и 1С тут будет в том, что план запроса в АХ будет строиться только 1 раз, а время, затрачиваемое БД на построение плана запроса и подстановку значения переменной несоизмеримо на больших объемах данных.

Цитата:
Сообщение от mazzy Посмотреть сообщение
за размером temptableтоже надо следить вручную :)
А вот тут кстати - есть "хорошая новость" любителям временных таблиц (это относится к любым системам).
Переливая данные во временную таблицу - мы теряем производительность на больших объемах данных, т.к.
1) Выборки из постоянных таблиц м.б. неполными (например формы в АХ тянут не все записи из таблицы, а только видимые + небольшой хвостик). А переливка во временную таблицу м.б. гораздо большего кол-ва записей, чем отображаемые. Но это больше к АХ относится как мне кажется
2) Помимо размера временной таблицы - никто не говорит про индексы. Переливая из постоянной таблицы данные во временную - мы фактически отказываемся от использования индексов - что естественно отражается на произовдительности на больших объемах данных.

Подчеркну - если во временной таблице - небольшое кол-во данных - то указанные мною ограничения отсутствуют. Но как только во временную таблицу будут переливаться тысячи записей - то ограничения почуствуются
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 07.12.2009 в 14:08.
За это сообщение автора поблагодарили: mazzy (2).
Старый 10.12.2009, 16:39   #19  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Цитата:
Сообщение от mazzy Посмотреть сообщение
Они похоже не думали, что MS SQL прекращает всякую оптимизацию запроса, если в нем присутствует больше 8 таблиц.
А можно поподробнее про это ограничение MS SQL ?
Старый 10.12.2009, 17:35   #20  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ок. я понял, что вопрос задел за живое.

Цитата:
Сообщение от Alexius Посмотреть сообщение
А можно поподробнее про это ограничение MS SQL ?
хм... помню, что Vadik давал ссылку на msdn.
а вот здесь я говорил о 16 таблицах...

еще нарыл
SQL в Аксапте

ищу дальше.
__________________
полезное на 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, время: 19:47.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.