1С VS MS Dynamics Ax. Чем “Мы” хуже?

Публикация № 199267

Методология - Управление проектом

170
Две системы в статье сравниваются в основном с позиции: чего в 1С главным образом не хватает, чтобы ещё потеснить на рынке Аксапту. У Microsoft есть чему поучиться, притом не только разработчикам платформы, но и внедренцам прикладных решений. Статья может быть полезна тем, кто хочет расширить свой кругозор и поискать альтернативные подходы к решению вопросов.

Зачем их сравнивать?

Раздел можно смело пропустить, если этого вопроса не возникает. Почему, на мой взгляд, является важным сравнение 1C с другими (западными) ERP системами/платформами? Очень большая проблема даже для опытных разработчиков – внедренцев заключается в том, что  очень хорошо изучается функционал типовых решений, и часто люди не видят альтернативы. То, что 1С не делает/не предлагает априори невозможно, либо неправильно. У западных систем есть чему поучиться, и не только разработчикам платформы. Многие функциональные особенности доступны и “простому смертному” для использования в своих прикладных решениях. Конечно, подобные “изыскания” полезны только для людей, которые хорошо знают типовые решения 1С. Потому как внедрение какого-то нового подхода требует глубокого понимания его целесообразности и преимуществ над существующим.

В каждом разделе старался выделять курсивом основную мысль, которую, на мой взгляд, можно почерпнуть из сравнения данного функционала. Что можно взять в 1С на вооружение.

Конечно нельзя не упомянуть, что на Инфостарте уже есть публикация на данную тематику: //infostart.ru/public/101933/ . Внимательно перечитал перед тем, как писать. Конечно, ничего общего с ней не получилось:

- Публикация 2008 года, все несколько поменялось. Сейчас уже и 1С 8.2, и Dynamics Nav 2009

- Сравниваем не с Dynamics Nav, а c Dynamics Ax. Кстати, в 2008 году назывались ещё Navision и Axapta, наверное. Axapta всё-таки флагман, ориентированный на средний и крупный бизнес, нужно же равняться на лучших

- Сравниваем не только с позиции разработчика, но и с позиции пользователя и администратора. Потому как 1С это платформа, то прикладное решение возьмём УПП 1.3 (очень бы хотелось ERP 2.0, конечно, но рановато…. как и DAX 2012).

Разработка

Объекты метаданных:

Основа основ, конечно, - дерево объектов метаданных. В Dynamics Ax оно называется репозитарием прикладных объектов

image  image

Сам принцип очень похож – метаданные, объекты у которых есть свойства и т.п. Есть даже много совпадений: Reports (отчеты), Jobs (обработки + фоновые задания), Forms (формы), Enums (перечисления), WorkFlow (бизнес-процессы).

Но корень всех различий кроется в Data Dictionary. В Dynamics Ax табличная структура таблиц выделена отдельно. На мой взгляд, это правильно, и обязательно должно учитываться при проектировании прикладных решений. Это отражает классический подход: “сначала подумать о том, какие данные, где, как и для чего мы храним, а уже затем какая логика должна для них присутствовать”. При проектировании нужно отличать объекты вида “регистр, справочник, документ” от объектов “отчет, обработка”.

 

Редактор кода:

 

imageimage

Вопреки ожиданиям до 1С с “прикрученным” к ней снегопатом аксапте далеко. Нет ни продвинутого IntellySence, ни даже простых подсказок. Ctrl+Пробел, конечно, работает, только кого этим удивишь. Но в аксапте с кодом работать проще по другим причинам. Как видно из рисунка, методы объектов присутствуют в самом дереве объектов.  Это очень удобно. Кроме того, есть отдельная сущность  - классы. О них далее. Кто знаком с ООП, уже сейчас могут позавидовать. Наличие классов вообще позволяет не писать кучу кода в методах объекта. Да, ещё для аксапты тоже есть свой “снегопат”: http://www.axassist.com/

Да, и тут нужно, наверное, сказать про ещё одну особенность – в аксапте нет отдельного приложения для разработки. Имея соответствующие права (и лицензии, кстати) вы можете открыть AOT и исправлять, что заблагорассудится

Контроль версий, поставка и поддержка:

В аксапте есть очень хороший и интересный механизм слоёв. О нём стоит упомянуть. В 1С хоть и есть намёки, но полноценной реализации данного механизма не хватает. Суть в том, что код изначального прикладного решения вы никогда не затираете – вы его “перекрываете”, внося модификации на более высоком слое. Притом перекрываете отдельные методы или отдельный объект. Слоёв, конечно, и не 2, и не 3. Есть системный, который правит только Microsoft, есть специальный слой для решений партнёров (да здравствуют отраслевые), есть слой уже для собственных модификаций – пользовательский. Они обновляются и используются независимо. Естественно, есть возможность сравнивать. В 1С этого, конечно, жутко не хватает, но некоторый намёк на то, как нужно организовывать обновления, можно почерпнуть… конфигурация, которая обновлена без ваших модификаций, у вас всегда должна быть, как и конфигурация до обновления с вашими модификациями. т.е. каждое обновление должно содержать минимум 3 конфигурации. А если отраслевое решение, то хорошо бы и все четыре. Одну из них, конечно, перекрывает “конфигурация поставщика”, но, как показывает практика, лучше сохранить обычным способом.

image

Система слоёв очень удобна. Внесённые вами изменения можно так же “лёгким движением руки” откатить. Но при этом на полноценную систему контроля версий явно не тянет. А полноценной системы контроля версий в Dynamics Ax нет.

Есть некоторые средства взаимодействия со сторонними системами контроля версий:

image

 

В частности, естественно, присутствует интеграция с Visual SoureSafe и Team Foundation Server (ожидаемо, конечно). Но никаких визуальных эффектов при этом и ещё чего-либо вы не заметите. Весь контроль версий осуществляется по сути “в ручном режиме” посредством вызова определенных команд. Главный плюс в данном случае - что на систему контроля версий вы можете повлиять непосредственно из кода Axapta, т.е. как в 1С оно не “зашито в платформу”. Да и сами объекты Dynamics Ax представляют из себя текстовые файлы, хранящиеся в определенном каталоге, т.е. организовать для них систему контроля версий можно и в ручном режиме. Если бы хранилище в 1С работало хотя бы вполовину так же быстро и вызывало только в половину больше проблем, чем Visual SourceSafe, то встроенную и полностью интегрированную систему контроля версий можно было бы считать большим преимуществом 1С.

 

Структура данных

В Dynamics Ax решили не уходить далеко от сущностей СУБД, таким образом, данные хранятся только в объекте одного типа – “таблица”. С одной стороны, это плохо. Начинающему разработчику трудно разобраться, какие таблицы для чего создавать. В 1С всё просто. Документ – фиксация факта, справочник – набор записей для выбора в реквизиты документа, Регистр – сущность, в которую документ записывает свои данные при “проведении”. Но, с другой стороны, опытный разработчик уже понимает, что не всё и не всегда так просто. А если вы, к примеру, хотите на 1С сделать систему учета обращений? Инцидент - это документ или справочник? Или запись регистра сведений? А переписка по нему – справочник или регистр? Да даже в типовых есть “странные” документы вроде ”регламентных операций”, “расчета себестоимости”, “корректировки регистра”, в конце концов. Странные “справочники” вроде ключей аналитик или серий номенклатуры. Для более сложных учетных задач такое методическое разбиение сущностей уже не слишком подходит. Разработчик с некоторым опытом за плечами должен задумываться скорее не о том, на что данная операция похожа по виду: на “Документ” или на “Справочник”, а скорее, какая структура данных ему нужна для хранения информации. А в итоге структура хранения – это всегда таблицы (по крайней мере, в большинстве современных систем. Не берём эксклюзив вроде NoSQL или Объектных СУБД). В 1С таблицы делятся уже заранее на определенные классы, имеющие фиксированные индексы, реквизиты, свойства и методы. В Dynamics Ax у разработчика в этом отношении полный простор фантазии. Но удобство разработки от этого совсем не страдает. Вспоминаем, что в Dynamics Ax есть поддержка ООП. Собственно, это во многом “развязывает руки” в части повторного использования кода.

Конечно всё не так гладко, как можно подумать на первый взгляд. Наследовать таблицу от таблицы нельзя (НО в Dynamis Ax 2012 уже можно, по крайней мере, по описанию новшеств. В данном случае пишу “нельзя”, потому как в статье рассматриваем наиболее популярную на момент её написания версию – DAX 2009)

 

Каждое поле таблицы имеет в DAX достаточно много свойств:

imageimage

 

Очень заметно свойство “ExtendedDataType”, в котором определяется ещё часть свойств для данного элемента. Сразу бросаются в глаза свойства “Visible” и “AllowEdit”. В DAX это свойства таблицы, а не экранной формы, хотя, конечно, программно повлиять и заполнить можно всё что угодно. Несмотря на то, что с появлением управляемых форм ситуация в корне изменилась, 1С всё-таки ещё есть куда расти в плане декларативного пользовательского интерфейса.

Конечно же, стоит упомянуть, что в отличие от 1С Microsoft совсем не стесняются давать возможность разработчикам создавать индексы на таблицы БД:

image

 

Получение остатков

А как же обойтись без регистров? Ведь остатки получаются по регистрам накопления. Там же специальная структура итогов создаётся. А как без них? Проще, наверное, показать на примере:

Открываем в DAX форму “в наличии” для товара и смотрим, какой для неё запрос выполняется:

image

 

Как видно из рисунка, всё предельно просто и лаконично: есть индекс и поле “Closed” в индексе. Поле Closed включается в индексы и означает, что товаров (по данному заказу, на данном складе) нет ни в наличии, ни в резерве, если Closed = “Да”, то записи нет на остатках – т.е. она “исчезла из итоговой таблицы”. Естественно, на уровне MsSQL поле Closed не булево, а очень даже int. С учётом того, что при росте базы, скорее всего, строки, которые есть на остатках (не закрыты), будут составлять малую часть всей таблицы, то индекс будет иметь очень хорошую селективность.

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

 

ООП и БСП

Для тех кто не в теме: ООП – это про аксапту, БСП – это про 1С. Появление БСП очень порадовало разработчиков прикладных решений. Функционал, который характерен для всех прикладных решений 1С, собран, переработан и приведён к формату “библиотеки”. Если вы разрабатывали не только на 1С, то такой подход не новость – вспомним Библиотеку VCL в Borland C++, Библиотеку STL в C++, MFC в Visual C++, в конце концов, сборки C#. Это всё имеет схожее назначение. С одной только разницей - С++ (как и X++ в DAX) язык программирования, поддерживающий ООП. Следовательно, библиотеками вы пользовались просто: создавали свои классы – наследники от базовых классов, определенных в библиотеке, и перекрывали нужные методы, добавляли свои… В 1С, по понятным причинам, такого не получится. Именно поэтому, когда вы хотите “Перекрыть” какой-либо метод БСП, вам нужно раза 3-4 “Нажать F12”, “докопаться до сути” и понять, где внести модификации. Меня, если честно, цепочки вызовов функций вида: МодульКонфигурации.КакаяТоФункция() –> МодульПодсистемыБСП.КакаяТоФункция() –> СтандартныеПодсистемы.КакаяТоФункция() –> СтандартныеПодсистемыПереопределяемый.КакаяТоФункция() жутко раздражают. Со временем, конечно, привыкаешь, но с “изящной простотой” ООП такому подходу не сравнится. Тем не менее, осознание, что такой функционал нужен, у 1С, видимо, уже есть. Наверное, при разработке и использовании БСП уже сформировалось и понимание, что поддержка ООП в языке 1С здесь бы очень не помешала.

А если бы ещё была поддержка “наследования таблиц”, как в DAX 2012, – вообще просто сказка. Представьте: при разработке нового прикладного решения создаёте документ “ОбщийДокумент”, прописываете в нём функционал, который необходим для остальных документов, а остальные просто наследуете от него и добавляете специфичный для вида документа функционал. Несмотря на отсутствие поддержки в 1С ООП, я думаю, стремиться к нему всё-таки нужно. Т.е. документ, в котором существует только базовый функционал, создать всё-таки нужно (назвав его при этом “шаблон”, к примеру), остальные документы копировать с него. С актуализацией, конечно, будет трудновато – но тут могут помочь общие модули (в которые нужно постараться переносить максимум функционала) и “библиотечный подход” при создании общих модулей“. Т.е. создать обычный модуль, стандартный модуль и модуль “переопределяемый”, в которые вставить одну и ту же функцию.

Удобство разработки

1) В DAX нормальная ситуация, когда у вас открыто 2 AOT, и между ними вы “перетаскиваете” объекты.

image

В 1С так можно работать только открыв 2 конфигуратора, подключенных к одному хранилищу. Но удобство такой работы в принципе вызывает сомнения.

2) В DAX все добавленные объекты можно разделить на “Проекты”

image

А ведь то же самое можно делать и в 1С. Просто мы редко об этом задумываемся. В 1С есть объект “Подсистема”, кроме назначения, которое он приобрёл в 8.2, осталось ещё назначение, которое было в 8.1. Для этого достаточно не ставить галку “Включать в командный интерфейс”. При этом все объекты, которые вы добавили или изменили, вы можете включить в эту подсистему, а в дереве метаданных применить “фильтр по подсистемам”. Но многие ли из интеграторов это делают?

3) Ну и, конечно же, в DAX для того, чтобы обновить базу, не нужно монопольного к ней доступа, без проблем обновляется как код, так и структура данных

 

Работа с запросами

А вот тут ничего хорошего не могу сказать про аксапту. Слева объект Query – ближайшее в DAX, что похоже на конструктор запроса 1С. Справа конструктор запроса – уже говорит о многом.

imageimage

 

В DAX при этом вы не увидите текстов запросов SQL подобных. Вы в коде можете увидеть только что-то вида:

image

Есть в таких конструкциях и join, и sort, и group by, а вот с вложенными запросами и временными таблицами уже будет сложновато. Так что любителям простоты и лаконичности SQL остаются только прямые SQL запросы (они здесь разрешены, и названия таблиц в БД нормальные) и вспоминать молодость, т.к. писать их придётся руками.

 

Функционал

Общие интерфейсные механизмы

Прежде всего, открывая MS Dynamics Ax, пользователь видит, что это программный продукт Microsoft:

image

 

А видит он уже “стандарт” интерфейса:

- Боковую панель (как в Outlook)

- Рибон (как везде)

- Навигационную строку и кнопки навигации (как в эксплорере)

- Избранное

- Красивые картинки…

Только уже по этим критериям программный продукт Microsoft получает преимущества удобства интерфейса.

Ко всем элементам DAX может быть прикреплен файл:

image

Естественно, вся функциональность инфраструктуры файлов поддерживается (блокировать, загрузить, создать версию)…

С появлением БСП в 1С данная возможность тоже присутствует для многих объектов, но далеко не для всех. Стоит только вспомнить требование: для каждого объекта, к которому хотите прикреплять файлы, нужно создать отдельный справочник:

image

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

 

Также инфраструктура напоминаний поддерживается неким “общим” образом

image

Инструмент очень удобный. В 1С, по крайней мере в БСП, я видел только напоминания по дате, или системные.

 

 

Отчеты

За этот функционал, по моему мнению, разработчикам DAX должно быть стыдно. Вот так выглядят расширенные настройки отчета в DAX (слева) и в 1С (справа)

imageimage

 

 

А вот так выглядят сами отчеты:

imageimage

Притом то, что вы видите в DAX, -  это “как есть”; эту форму даже в Excel сохранить нельзя. Ну а возможности табличного документа в 1С вы и сами знаете.

Конечно, в DAX не всё так плохо, разработчики не оставили пользователей системы “на произвол судьбы” с такими отчетами. Для того, чтобы получить “полноценный” отчет в DAX, нужно воспользоваться функционалом MS Analysis Services, т.е. сделать собственные OLAP кубы и использовать их в отчетах. В качестве клиента – MS Excel подходит, пожалуй, лучшим образом. Такие отчеты уже можно настраивать, они достаточно быстро работают даже на больших объёмах данных, и вполне удобны. Но данные в них уже попадают не online. чтобы построить отчет нужно заново обновить OLAP куб. Как правило, это делается раз в день. Так что оперативные отчеты таким образом получать очень не удобно.

 

Аудиторский след. Изменение “проведенных”

Изменять “проведенные” (“разнесенные” в терминологии DAX) записи уже нельзя. Информация о “разносках” попадает в “Аудиторский след” (сама таблица, кстати, называется Transaction Log, собственно, и назначение её примерно то же самое). В данной таблице в DAX отсутствуют методы удаления в принципе. Какими бы правами вы ни обладали, средствами DAX данные из этой таблицы удалить невозможно. Исправлять  разнесенные уже записи тоже невозможно под любыми правами.

Зачем это делается? Очень просто – разработчики систем пытаются соблюсти требования “отсутствия ошибок” в транзакционных системах. Одной из этих ошибок является “неповторяемое чтение”, т.е. если вы сегодня в 12 часов дня посмотрели остатки по кассе, то и завтра, посмотрев остатки на 12 часов вчерашнего дня, вы должны увидеть ту же самую сумму.

Собственно, в этом основная проблема использования Dynamics Ax бухгалтерами. Слишком уже привыкли, что свои ошибки всегда можно исправить. На самом деле в Dynamics Ax с исправлением ошибок тоже нет никаких проблем, просто там сначала нужно сторнировать записи (что особых проблем не вызывает), а потом ввести их заново.

Конечно, совсем отказаться от изменения проведенных документов, наверное, было бы неправильно. Но в прикладных решениях 1С, всё-таки, возможно, имеет смысл выделять права “интерактивное изменение проведенных” в отдельный профиль, и включать в него далеко не все группы. Так же, наверное, не всегда правильным действием является кнопка по умолчанию “провести и закрыть”, проведение всё-таки для некоторых документов желательно организовывать отдельным действием. Ещё хорошим решением была бы операция “Сторно”, которую можно было бы лёгким движением выполнить для любого документа (ввод на основании, или даже просто команда). Таким образом можно “подтолкнуть” бухгалтеров к работе в системе текущим числом, при этом оставив возможность работы задним числом, “чтобы не было ломки”.

 

Настройки форм

Как то уже очень похожи настройки форм в Dynamics Ax и в 1C 8.2:

imageSNAGHTML4989b56b

Невооруженным взглядом видно “наследование опыта”. Жаль, что ещё “сохранение настроек форм” и “загрузку настроек форм” 1С пока не так удобно и просто сделали. Но есть надежда, что вскоре исправятся.

 

Web доступ

В Dynamics Ax Web доступ осуществляется посредством интеграции с SharePoint (что не удивительно). Но для Web доступа к функционалу нужно разрабатывать отдельные формы, которые ориентированы именно на работу через Web интерфейс.

Конечно, здесь “1С ушла далеко вперёд”, но вот только в модулях форм Dynamics Ax нет никаких инструкций &НаКлиенте и &НаСервере. А кода в самих формах очень мало.

 

 Бухгалтерский учет

К сожалению, картинки из реальной жизни бухгалтерского баланса в Dynamics AX не могу показать – ни разу не видел, чтобы его формировали из Dynamics Ax. Также не нашел их в тестовых и даже не тестовых системах. В обновлениях они вроде присутствуют – выпускаются патчи для DAX под обновление Российского законодательства. К сожалению, эти обновления выходят гораздо реже, чем хотелось бы.  Как пишут на своих форумах сами разработчики Dynamics Ax, бухгалтерский учет по РСБУ всё-таки удобнее вести в 1С. По крайней мере, налоговую отчетность сдавать точно.

В DAX принята система учета, когда любая хозяйственная операция должна проходить через счета БУ. В отличие от 1С, где часть аналитик и информации мы можем держать в регистрах накопления или даже регистрах сведений, в DAX вся информация по максимуму должна проходить через счета ГК. Но структура хранения информации по “проводкам” достаточно оптимальна, поэтому такой процедуры, как “отложенное проведение”, в DAX, как правило, не используется. Зато есть понятие “системные счета”, на которые может попадать “всякий хлам”.

Да, ещё одна важная деталь – в DAX нет иерархических представлений. (по крайней мере, мне найти не удалось). А это делает работу с планом счетов очень проблемным занятием. Да и вообще удобство пользователей существенно страдает. Это, конечно, снижает нагрузку на SQL Server, но мне лично хотелось бы видеть иерархию в интерфейсе. Слишком уж привычно и удобно.

С печатными формами большие проблемы. Реглаентированных печатных форм я даже в русской локализации не видел. Без доработок из DAX даже платежку не распечатать.

Закрытие периода в DAX – это такой процесс, за который человек в одиночку и в здравом рассудке не возьмётся – по сути всё закрытие счетов – ручное. Это, конечно, обеспечивает некоторую гибкость и отвязывает от национальных стандартов бухгалтерского учета, но для БУ зачем оно нужно? Видел, что есть в локализации вроде даже функционал для формирования регламентированной отчетности, он чем-то напоминает тот, что сделан в 1С:Консолидации – нужно “руками” прописывать все значения в ячейках табличного документа.

А “штатный баланс” выглядит примерно так:

image

 

Из положительного стоит отметить “профили разноски”. DAX позволяет достаточно гибко настраивать подбор счетов и проведение в различных случаях.

Управленческий и международный учет

Сразу стоит отметить, что система не ориентирована на ведение “двойного”, “тройного”, “цветного” учета. План счетов в системе один.

Но у счета в DAX куда больше свойств и настроек, чем в 1С:

imageimage

В DAX, если необходимо разделить бухгалтерский и управленческий учет, или, к примеру, МСФО – вы будете использовать тот же самый план счетов, просто определенные признаки заполнять по-другому и другие коды назначать.

Удобно это или нет – спорный вопрос. Лично мне, конечно, два-три плана счетов нравятся гораздо больше, но это субъективно, возможно, в силу привычки.

А вот то, что количество реквизитов счета можно бы расширить, – это вполне хорошая идея. Сейчас в 1С информация, которая относится непосредственно к счету, разрознена. Можно бы её и дополнить, вплоть до формата вывода в отчеты.

 

Расчет себестоимости. Учет затрат

Тут всё просто – FIFO, LIFO, по средней... Конечно, ожидали увидеть “вездесущий” в 1С РАУЗ, но я лично подобного подхода не встретил, ни решения СЛУ, ни корреспонденции аналитик.

В DAX FIFO отличается от понятия, принятого в 1С:

1) При определении прихода, по которому нужно начислить себестоимость, может не определяться точная партия, а происходит сопоставление прихода с расходом по определенному набору аналитик.

2) Набор аналитик, по которым происходит сопоставление, можно выбрать.

3) Хронологический порядок в данном случае совсем не обязателен.

Но, возможно с учетом всего вышесказанного про аудиторский след не так это всё и плохо. Можно и FIFO при этом использовать.

Но очень хорошо, что логика расчета себестоимости динамически настраивается набором аналитик, это особенно приятно.

 

Производство

Здесь, конечно, УПП ещё далеко до Dynamics Ax. К примеру, в аксапте есть информация по всем этапам производства, можно запланировать потребность во времени, материалах, иных ресурсах на каждый этап, даже посчитать предполагаемую себестоимость товара и дату завершения изготовления партии. Вот, к примеру, маршрут изделия в производстве.

image

 

В целом блок производства выглядит в DAX гораздо более “продвинутым”, чем в УПП.

 

Прочие функциональные возможности

 

1) В DAX намного увереннее выглядит блок закупок. Заказы на закупку проходят целую цепочку (обработанные, отправленные, подтверждённые) в общем, всё на рисунке:

image

Стоит, правда, отметить, что в УТ11 (особенно с появлением статусов и оплат) функционал стал приближаться к реализованному в DAX, но в УПП такого функционала пока что нет

2) То же самое можно сказать и про CRM.

3) В DAX есть целый блок по управлению проектами. В УПП Проект хоть и практически сквозная аналитика, но дополнительный функционал по ним отсутствует. В DAX у проектов есть (что, конечно же, логично) интеграция с MS Project Server.

4) В DAX склад уже полноценный – с адресным хранением. Хотя для полноценного адресного склада и WMS этого маловато, тем не менее, организовать учет позволяет, но, конечно, без “хитрых” алгоритмов размещения и выделения ячейки.

 

Администрирование

Как продукт Microsoft, аксапта приятнее в администрировании уже привычностью подходов и интерфейсов.

Интеграция с инфраструктурой

Конечно, организована интеграция с AD, и пользователи, как правило, добавляются в систему импортом из AD. Даже структура компании берётся из AD в идеале.

Собственно, никто не мешает аналогичную функциональность реализовать и в 1С – для этого существует интерфейс WMI, который позволяет получать из AD практически любую информацию. Собственно, об этом уже написано //infostart.ru/public/165702/

 

Разделение данных

Вся работа пользователя ведётся в рамках одной “компании”, стоит отметить, что данная функциональность больше напоминает разделение данных в 1С, чем RLS.

С этим подходом в DAX полностью согласен – тоже считаю, что “Организация” скорее должна выступать разделителем, чем реквизитом документов, по которому накладывается RLS. Это и работает быстрее, да и правильнее. Мы просто уже привыкли к частой практике, когда для одной компании открывается несколько юр. лиц, с различными целями. В этом случае, мне кажется, нужно либо отделять управленческий учет от бухгалтерского, либо переключаться между этими юридическими лицами как между компаниями, в случае, если они относительно независимы.

Такое разделение также более “надёжно”, чем RLS по организациям, и уже не получится, как в 1С, где бухгалтеры, которые в своё время “насмотрелись” на проблемы с RLS, требуют сделать себе отдельные базы под каждую организацию. Системному администратору (или администратору СУБД) это, соответственно, дополнительная нагрузка.

 

Кластеризация

Сервер DAX кластеризуется, весьма устойчив. Центрального кластера нет. Подсистему балансировки нагрузки и сервер пакетной обработки можно распределять по разным серверам:

image

СУБД поддерживает всего две: MS SQL Server и Oracle Database.

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

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

 

Блокировки.

Режим блокировок в DAX можно настраивать:

image

Собственно, режим говорит о том, блокировать ли данные, которые читаются для последующего изменения, или не блокировать. Для чего это делается, я уже писал в статье //infostart.ru/public/91880/ . Собственно, со мной там не все согласились – есть популярное мнение, что “блокировать нужно всё и всегда”. Но разработчики DAX, видимо, с этим мнением тоже не согласны. Блокировки должны быть осмысленными и только там, где этого требует бизнес-логика приложения.

Также очень интересно, что при работе с MS SQL Server DAX использует уровень изоляции Read Commited Snapshot, о котором я тоже писал: //infostart.ru/public/91879/ , его же вроде как и использует уже 1С 8.3.

Права доступа

В целом подход очень похож на тот, что используется в БСП – создаются группы, к ним привязываются права доступа, группы назначаются пользователям.

image 

Самих прав в DAX существенно меньше. По сути их 3, при этом для всех объектов одинаковые. Ну разве что для некоторых (для отчетов, к примеру) правка и создание недоступны (что логично).

Разграничение прав доступа на уровне записей тоже существует. Но в DAX это отдельная таблица, в которую вносятся все эти ограничения. Для ввода ограничений предусмотрен удобный конструктор.

 

Хранение конфигурации

В DAX, как в 1С, нет единого файла конфигурации, который хранится в СУБД. Соотвтетственно нет и кэша метаданных, и вечных проблем с ним. Все модули хранятся на специально выделенном файловом ресурсе (для него должно быть организовано резервное копирование, и доступ серверов в Ax к нему должен быть быстрый). Также модули хранятся отдельно – в привязке к объектам, для которых они созданы. Т.е. “разрушение” сразу всей конфигурации, как в 1С, крайне маловероятно. Такая структура хранения мне лично более напоминает триггеры в MS SQL, не знаю всех нюансов, но, на мой взгляд, она более предпочтительна, чем один большой и неповоротливый файл конфигурации, который нужно постоянно читать с сервера и записывать на сервер, кэшировать, записывать частями (динамические обновления), потом считывать по частям и собирать (работа после динамического обновления).

 

Заключение

 

Итак, несмотря на достаточно существенный разрыв в технологиях, в архитектуре, разработке, стабильности, который 1С пока не удаётся сократить, функционал в 1С существенно проигрывает, пожалуй, только в блоке производства. А в некоторых вопросах (БУ, Отчетность) 1С явно “лицом к пользователю” в отличие от DAX. Вопросы аудиторского следа, изменения проведённых и т.п. можно долго обсуждать и спорить.

Чего 1С точно не хватает, так это стабильности  работы и ООП для разработчиков. Если уже без ООП смогли создать почти не уступающее по функционалу решение (УПП), то при наличии такового, я думаю, “догнать по функционалу” Ax было бы вопросом нескольких лет, а за это время можно было бы и над стабильностью поработать. Но пока у 1С другие приоритеты – “мобильная платформа”, “красивые кнопочки” (это я про такси) и т.п. Ну, может, это и правильно. Дальше будет видно.

170

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Tahallus 426 29.08.13 22:10 Сейчас в теме
Спасибо, интересно было почитать.
Когда-то 2 года работал программистом Navison, система чем-то похожа на Axapta только хуже ))

Если есть возможности интересно было бы почитать сравнение 1С с Oracle.
3. comol 4073 29.08.13 23:49 Сейчас в теме
(1) Tahallus, c Oracle? Зачем? Oracle EBS стоит как SAP только в SAP платят за "десятки лет истории" а в Oracle за что? По SAP-у напишу наверное... если сама тематика интересная... сейчас сталкиваюсь, есть там о чём написать :). а Oracle я как то воспринимаю как Oracle Database :)
2. hogik 429 29.08.13 23:48 Сейчас в теме
(0)
Олег.
Ставлю "плюс" тут:
+
:-)
4. comol 4073 29.08.13 23:50 Сейчас в теме
(2) hogik, Владимир, ну "+" от Вас это я сразу за 10 считаю :)
31. German 871 31.08.13 15:12 Сейчас в теме
(4) Олег, что за херню ты написал в разделе Хранение конфигурации?
32. comol 4073 31.08.13 20:05 Сейчас в теме
(31) German, ээ... а в каком смысле? Я где-то ошибаюсь по поводу того как 1С использует файл конфигурации, ну поправь тогда в чём? Я же его "по кусочкам не расковыривал" могу где-то ошибиться :(. А если ты про сам подход - готов подискутировать. "Единый cf файл" это по-моему вообще беда 1С. По-моему ни одна нормальная система так свои метаданные не хранит. На недельке, думаю, посмотрю как это в SAP сделали, вряд ли так же мне кажется один cf файл это раритет :(
33. German 871 31.08.13 21:30 Сейчас в теме
(32)в рабочем состоянии на сервере нет единого конфигурационного файла, cf файл это результат экспорта метаданных. Посему данный пункт притянут за уши очень грубо.
34. awk 692 01.09.13 01:03 Сейчас в теме
(33) German, От разбора конфигурации сервером на составные части, разработчику легче не становится. С набором отдельных файлов связанных тем или иным образом работать куда проще. То, каким образом 1С построила свою архитектуру, делает модульное тестирование практически невыполнимой задачей. То есть затраты на построение тестов сравнимы (если не превышают) затраты на разработку. Все что есть в 1С ценного - это готовые прикладные решения. При написании с нуля затраты на проект и пост проектное сопровождение сопоставимы с затратами проектов на VB, C# или JAVA.
kote; comol; +2 2 Ответить
102. bulpi 156 04.09.13 23:12 Сейчас в теме
(34) awk,

Десятки проектов, реализованных мною с нуля и поддерживаемых по несколько лет за суммы от несколько сот до 2 тыс. у.е....
На на VB, C# или JAVA ????
Ты фантаст.
105. awk 692 05.09.13 10:21 Сейчас в теме
(102) bulpi, Попробую тебя понять. Ты разработал, внедрил и поддерживаешь несколько (может много, может мало - не суть) решений для бизнеса на 1С. Бюджет этих решений не превышал 200-2000 убитых енотов?

Ничего, что автоматизация среднего бизнеса на 1С это минимум 50 000$(не берем кустарей и типовые поставил как есть)? Причем, этот бюджет можно освоить даже не открыв конфигуратор 1С.
116. bulpi 156 05.09.13 13:41 Сейчас в теме
(105)
"Ты разработал, внедрил и поддерживаешь несколько (может много, может мало - не суть) решений для бизнеса на 1С. Бюджет этих решений не превышал 200-2000 убитых енотов?"

Ну да (стесняясь и краснея) :)

"Ничего, что автоматизация среднего бизнеса на 1С это минимум 50 000$"
Ну , в такой классификации, я думаю, это был мелкий бизнес. Магазин - группа магазинов - фабрика - оптовый склад... - бухгалтерия... А с типовыми я не работал много лет, только в последние годы, когда стал работать на франча.
117. awk 692 05.09.13 14:15 Сейчас в теме
(116) bulpi, Боюсь бизнес был крупный, а разработка с нуля одним человеком.

Есть два продукта GantProject и MS Project. У этих продуктов схожий функционал, а бюджеты разные.


(115) Evgen.Ponomarenko, А в УТ 11 Как я написал. И подход у них более универсальный....
118. Evgen.Ponomarenko 541 05.09.13 15:42 Сейчас в теме
(117) awk,
А в УТ 11 Как я написал. И подход у них более универсальный....


Я не спорю... я просто забыл комментарий дописать.

Может я не всегда следую технике ООП, но предпочитаю следовать духу ООП.

В данном случае простота примера, должна была указать, что более безопастно
дать команду объекту пересчитать самого себя:

Об.ПересчитатьСуммуВПопугаях();

а не вносить изменения снаружи объекта используя универсальные методы.
Может я не так понял Ваш пример, контекст задачи не был указан.

Стиль УТ11 мне известен. У него один минус... трудности в отладке.

Лично мне больше по душе простые, надежные решения.

Вечером я приведу другой, более универсальный код.
119. Evgen.Ponomarenko 541 06.09.13 09:46 Сейчас в теме
(117) awk,
<QUOTE>
ОбработкаТабличнойЧастиСервер.ОбработатьТЧ</QUOTE>
ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ

Нууууу... блин... поаккуратней то! Чуть мозг не сломал пока домой доехал. Кручу верчу код в голове...
не вижу логики - хоть лопни голова. Вроде awk адекватный, а понять логику не могу.

Нашел похожий код в УТ11... ну так это ж другое дело!!!

Красивый код, и читается хорошо и отлаживается нормально. Мне кажется,
что в конкретно этом случае - лучшее враг хорошего, ООП туда лепить не стоит.

Но если очень хочется... то можно! :)))
"
Мне когда совсем становится тоскливо, я вспоминаю про команду Выполнить(<Строка>)
Там, что хочешь можно получить и полиморфизм и наследование...

Делов-то... Создаешь один справочник "МойМетод", одно поле неограниченной длины, пару реквизитов, что было чего наследовать.
Кидаешь на формуЭлемента ПолеТекстовогоДокумента Расширение=ВстроенныйЯзык и кодишь.

А потом по известной формуле:
СтруктураДействий.Вставить("ПересчитатьСумму", Новый Структура("Объект, Обработчик", ЭтотОбъект,
Справочники.МойМетод.НайтиПоНаименование("Документы.Реализация.ПересчитатьСуммуВПопугаях",истина)));

А если хочется наследования, делаем справочник "МойМетод" иерархическим, создаем функцию "ПолучитьОбработчик"
и вуаля:

СтруктураДействий.Вставить("ПересчитатьСумму", Новый Структура("Объект, ТекстОбработчика", ЭтотОбъект,
ПолучитьОбработчик("Документы.Реализация.ПересчитатьСуммуВПопугаях")));
120. awk 692 06.09.13 10:34 Сейчас в теме
(119) Evgen.Ponomarenko,

Признаю, что пример натянут, но...

Допустим есть N документов где есть табличная часть товары. То есть у всех есть:

- Товары
  - Количество
  - Цена
  - Сумма


Заказ:

- Товары
  - Количество
  - Цена
  - Сумма
  - Скидка


Реализация:

- Товары
  - Количество
  - Цена
  - Сумма
  - НДС


Для пересчета строки мы можем использовать код:

ТабличныеЧасти.ПересчитатьСтроку(Строка, Действия) :
  ПересчитатьСумму(Строка, Действия);
  ПересчитатьСкидку(Строка, Действия);
  ПересчитатьНДС(Строка, Действия);



ТабличныеЧасти.ПересчитатьСкидку(Строка, Действия) :
  Если Действия.Свойство("ПересчитатьСкидку") Тогда
     Строка.Сумма = Строка.Сумма - Строка.Скидка;
  КонецЕсли;



Допустим теперь в документ реализации мы добавили скидку. Но не суммой, а процентом + нам надо проверять, а не больше ли скидка чем сумма.


Вариант №1
После всех вызовов ТабличныеЧасти.ПересчитатьСтроку вставляем расчет скидки

Вариант №2
Изменить модуль таким образом, что бы скидка рассчитывалась в зависимости от условий.


Недостаток первого варианта мест может быть много.

Недостатки второго варианта
1. Внесение изменения в общую функцию (ошибки могут посыпаться в неожиданных местах)
2. А если алгоритмов расчета скидок больше двух? Каждый добавляем в общую функцию и имеем п.1

Вариант №3 (полный, в 1С можно варьировать и сделать нечто подобное, но так красиво не выйдет)

ТабличныеЧасти.ПересчитатьСкидку(Строка, Действия) :
  Если Действия.Свойство("ПересчитатьСкидку") Тогда
     Если ТипЗнч(Действия.ПересчитатьСкидку) = Тип("Процедура") Тогда
        Действия.ПересчитатьСкидку(Строка, Действия);
     Иначе
        Строка.Сумма = Строка.Сумма - Строка.Скидка;
     КонецЕсли;
  КонецЕсли;
Evgen.Ponomarenko; +1 Ответить
121. Evgen.Ponomarenko 541 06.09.13 11:14 Сейчас в теме
(120) awk,
Поддерживаю!

Красота - признак внутренней гармонии... И не правда, что на вкус и цвет товарищей нет.

Если код красив.... то вспоминаются строки:

Дао программирования
п.п. 1.1 Hечто таинственное возникло, родившись из безмолвной пустоты. Одиноко и недвижимо ожидая, оно покоится и все же пребывает в постоянном движении. Это источник всех программ. Я не знаю его имени, поэтому я буду называть его Дао Программирования.
Если Дао хорошее, то операционная система прекрасная. Если операционная система прекрасная, то и компилятор великолепный. Если компилятор великолепный, тогда приложение совершенное. Пользователь доволен и во всем мире проистекает гармония.
122. awk 692 06.09.13 12:17 Сейчас в теме
(121) Evgen.Ponomarenko, Попытался третий вариант реализовать на 1С, вот что получилось:

Процедура Пример(Строка, Действия)
	Если Действия.Свойство("Пример") Тогда
		Если ЭтоФункция(Действия.Пример) Тогда
			Параметры = Новый Массив;
			Параметры.Добавить(Строка);
			Строка.Сумма = ВызовФункции(Действия.Пример, Параметры);
		ИначеЕсли ЭтоПроцедура(Действия.Пример) Тогда
			Параметры = Новый Массив;
			Параметры.Добавить(Строка);
			ВызовПроцедуры(Действия.Пример, Параметры);
		Иначе // Реализация по умолчанию
			Строка.Сумма = 2+2;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

Функция ЭтоПроцедура(Значение)
	Возврат 
		Тип("Структура") = ТипЗнч(Значение)
		И Значение.Свойство("Объект")
		И Значение.Свойство("Имя")
		И Значение.Свойство("КоличествоПараметров");
КонецФункции

Функция ЭтоФункция(Значение)
	Возврат 
		ЭтоПроцедура(Значение) // Функция это процедура возвращающая значение
		И Значение.Свойство("Результат")
КонецФункции

Функция ПолучитьОписаниеФункции(Функ)
	ТекстВызова = "";
	Если Функ.Объект <> Неопределено Тогда
		ТекстВызова = "Функ.Объект.";
	КонецЕсли;
	ТекстВызова = ТекстВызова + Функ.Имя + "(" +
	
	Для ит = 0 По Функ.КоличествоПараметров Цикл
		ТекстВызова = ТекстВызова + "Параметры["+ит+"], ";
	КонецЦикла;
	ТекстВызова = СтроковыеФункцииКлиентСервер.УдалитьПоследнийСимволВСтроке(ТекстВызова, 2) + ")";
	Возврат ТекстВызова;
КонецФункции


Функция ВызовФункции(Функ, Параметры)
	ТекстВызова = ПолучитьОписаниеФункции(Функ);
	Возврат Вычислить(ТекстВызова);
КонецФункции


Функция ВызовПроцедуры(Функ, Параметры)
	ТекстВызова = ПолучитьОписаниеФункции(Функ);
	Выполнить(ТекстВызова + ";");
КонецФункции

Показать
Evgen.Ponomarenko; +1 Ответить
123. comol 4073 06.09.13 12:43 Сейчас в теме
(122) awk, Надо рядом приложить код, который это делает на c++ и отправить скриншот на партнёрский форум, чтобы Сергей Георгиевичу было стыдно :).
125. Evgen.Ponomarenko 541 06.09.13 13:32 Сейчас в теме
(123)
еще рано ;)))) но мысль конечно интересная!
135. awk 692 06.09.13 18:53 Сейчас в теме
(123) Как-то так... Если на си...

typedef int (*sumProcessFunc)(**void, **void);

void sumProcess(void** str, void** param, sumProcessFunc[] funcs) {
   for(int i=0;i<DEFAULT_SIZE;i++) {
      if(sumProcessFunc[i]) {
        sumProcessFunc[i](str, param);
      } else {
        default[i](str, param);
      }
   }
}
Показать
124. Evgen.Ponomarenko 541 06.09.13 13:29 Сейчас в теме
(122) awk,
Зачетно!

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

Процедура Пример(Строка, Действия)
   Если Действия.Свойство("Пример") Тогда
	  Если ЭтоФункция(Действия.Пример) Тогда
         Параметры = Новый Структура(); // Другой вариант
         Параметры.Вставить("Количество",Строка.Количество);
		 Параметры.Вставить("Сумма",Строка.Сумма);
         Строка.Сумма = ВызовФункции(Действия.Пример, Параметры);
      ИначеЕсли ЭтоПроцедура(Действия.Пример) Тогда
         ВызовПроцедуры(Действия.Пример, Строка); // Третий вариант
      Иначе // Реализация по умолчанию
         Строка.Сумма = 2+2;
      КонецЕсли;
   КонецЕсли;
КонецПроцедуры
Показать
126. awk 692 06.09.13 13:48 Сейчас в теме
(124) Evgen.Ponomarenko, Именованные параметры это хорошо, но 1С их не поддерживает. Только позиционные. В вызове функции важен порядок параметров. А структура при переборе не гарантирует, что выведет параметры в порядке вставки. Если же руками реализовывать, то к метаданным функции/процедуры надо добавлять массив с именами и порядком вызова, что не есть хорошо и так метаданные надо самому создавать.

Хотя, Можно определить общий модуль с интерфейсамми типа:

Функция ИнтерфейсКоличественноСуммовой() Экспорт
  Мета = Новый Массив();
  // Свойства
  Мета.Добавить(Новый Структура("Объект, Имя", Неопределено, "Количество"));
  Мета.Добавить(Новый Структура("Объект, Имя", Неопределено, "Цена"));
  Мета.Добавить(Новый Структура("Объект, Имя", Неопределено, "Сумма"));
  // Процедуры
  Мета.Добавить(Новый Структура("Объект, Имя, КоличествоПараметров", Неопределено, "ПересчетПоКоличеству", 0));
  Возврат Мета;
КонецФункции
Показать


а в модуле объекта определить функцию

Функция Интерфейсы()
  Интерфейсы = Новый Структура();

  Интерфейсы.Вставить("ИнтерфейсКоличественноСуммовой",ИнтерфейсыМодулей.ИнтерфейсКоличественноСуммовой());
  ИнтерфейсыМодулей.УстановитьОбъект(ЭтотОбъект, Интерфейсы.ИнтерфейсКоличественноСуммовой);
  Возврат Интерфейсы;
КонецФункции
127. Evgen.Ponomarenko 541 06.09.13 14:11 Сейчас в теме
(126) awk,
нееее... все будет номано!!! у меня в голове уже код сложился... щас занят... вечером отпишусь
это здорово что Вы пошли рыть глубже... может выйти очень технологично.
128. Evgen.Ponomarenko 541 06.09.13 15:38 Сейчас в теме
(126) awk,
Кстати... почему не поддерживает???

Пример реализации процедуры:

Процедура Тестовый пример(лПараметры)
	Сообщить(лПараметры.Количество);
	Сообщить(лПараметры.Сумма);
КонецПроцедуры



Пример вызова:

Параметры = Новый Структура();
Параметры.Вставить("Количество",Строка.Количество);
Параметры.Вставить("Сумма",Строка.Сумма);
ТестовыйПример(Параметры);
129. awk 692 06.09.13 15:42 Сейчас в теме
(128) Evgen.Ponomarenko, Ты готов ограничить callback функции единственным параметром? Или прикажешь в функциях обратного вызова проверять если структура, тогда иначе поп позициям?
130. Evgen.Ponomarenko 541 06.09.13 16:01 Сейчас в теме
(129) awk,
я ж не спорю с вами... просто пытаюсь развивать ваши же идеи.
В данном случае, что бы не делать проверок, я готов callback функции ограничить единственным параметром.
В принципе 1С это не с++, который должен решать задачи на низком аппаратном уровне, на прикладном уровне можно, а иногда и нужно ограничиться структурами.

Учтите, что область применения того, о чем мы сейчас пишем с Вами, может существенно различаться у нас Вами.
131. Evgen.Ponomarenko 541 06.09.13 16:06 Сейчас в теме
(129) awk,
а если уж честно говорить, я уж насмотрелся как в стандартных конфах "спецы" использует функции обратного вызова, как обезьяны гранату... так, что наша песня не про них.
132. Evgen.Ponomarenko 541 06.09.13 16:46 Сейчас в теме
(122) awk,
в Функция ПолучитьОписаниеФункции(Функ)
строка
ТекстВызова = ТекстВызова + Функ.Имя + "(" +
с ошибкой

как должно быть?
136. Evgen.Ponomarenko 541 08.09.13 23:59 Сейчас в теме
(122) awk,
Благодарность: awk за поддержку темы ООП в актуальном состоянии.
Благодарность: comol за гостеприимство на этой ветке.

Действительно, ООП в 1С находится в зачаточном состоянии, не смотря на то,
что многие принципы уже реализованы. Однако, если вспомнить, что существует команда "Выполнить"
и не побрезговать использовать её в своем коде, то 1С приобретает неслыханную гибкость.

Если мы соглашаемся использовать команду "Выполнить", то решение задачи (122) приобретает совершенно новые формы.

Вариант предложенный awk можно считать оптимальным при наличии двух ограничений:
Пункт №1: при вызове процедуры или функции количество параметров может быть более одного.
Пункт №2: техника решения задач должна поддерживать в равной степени вызовы процедур и функций

Честно говоря, в решении предложенном awk, меня насторожило использование выражения "Параметры = Новый Массив;". Меня всегда настораживает использование массивов при решении задач. Лично я стараюсь использовать их в своей практике, чем реже тем лучше. Я ни в коем случае не хочу сказать, что само использование массивов - это плохо, просто в 1С есть много очень удобных объектов для аналогичных целей.

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

По пункту №2. Разделение на функции и процедуры объектов - весьма условно, по большому счету
функция является подмножеством процедуры с возможностью возврата значения.
Преимущество функции перед процедурой заключается в возможности использования в математических, строковых и логических выражениях.
Учитывая, что awk и comol являются приверженцами с++, вполне резонным с их точки зрения будет возвражение,
что мол это "процедуры есть подмножество функций, то есть процедура это функция в возвратом void".
Давайте размышлять беспристрастно, в приведенном примере awk избыточна проверка входящего объекта на принадлежность к функции или процедуре, и по большому счету, не важно оставить ли использование только процедур либо только функций.
Если бы не одно БОЛЬШОЕ НО.

Оператор "Выполнить" не поддерживает команды "Возврат",а оператор "Вычислить"
не поддерживает последовательного выполнения операторов.
Можно долго и нудно материть по этому поводу разработчиков 1С, но имеем, то, что имеем. Если бы оператор
"Выполнить" поддерживал команду "Возврат",то в качестве основной программной единицы
я бы предложил взять функцию, но в нашем случае осмелюсь утверждать, что процедура оптимальней.
А вернуть значение можно и через параметр.

Итак отказ от ограничений №1 и №2 позволяет получить код:

Процедура CreateProcExample()
	Об=Справочники.МоиПроцедуры.СоздатьЭлемент();
	Об.Наименование="ОбработчикСобытия.Пример";
	Об.ТекстПроцедуры="лПараметры.Сумма=лПараметры.Количество*лПараметры.Цена";
	Об.Записать();
КонецПроцедуры


Функция ПолучитьТекстВызова(Проц)
   ТекстВызова = "";
   Найти=Справочники.МоиПроцедуры.НайтиПоНаименованию(Проц.Имя,Истина);
   Если не Найти.Пустая() Тогда
       ТекстВызова=Найти.ТекстПроцедуры;
   КонецЕсли;
   Возврат ТекстВызова;
КонецФункции

Функция ВызовПроцедуры(Проц, лПараметры)
   ТекстВызова = ПолучитьТекстВызова(Проц);
   Выполнить(ТекстВызова);
КонецФункции
Показать


Далее примеры:

Процедура Пример2(Строка, Действия)
	Если Действия.Свойство("Пример") Тогда
		Параметры = Новый Структура;
		Параметры.Вставить("Количество",Строка.Колво);
		Параметры.Вставить("Цена",Строка.Цена);
		ВызовПроцедуры(Действия.Пример, Параметры);
	Иначе // Реализация по умолчанию
		Строка.Сумма = 2+2;
	КонецЕсли;
КонецПроцедуры
Показать


Пример№2 подойдет в случаях, когда в конфигурации одни и те же сущности названы разными именами,
В случае, если конфигурация соответствует принципам концептуальной целостности, то вполне можно обойтись примером №3.

Процедура Пример3(Строка, Действия)
	Если Действия.Свойство("Пример") Тогда
		ВызовПроцедуры(Действия.Пример, Строка);
	Иначе // Реализация по умолчанию
		Строка.Сумма = 2+2;
	КонецЕсли;
КонецПроцедуры


В итоге получился пример по красоте не уступающий (135).
Таким образом не смотря на неполноценность ООП в 1С, закрыв глаза на условности и обработав напильником косяки от 1С можно получить вполне приличный код.
137. awk 692 09.09.13 12:41 Сейчас в теме
(136) Evgen.Ponomarenko,

1. Проблема не в 1С и ООП. Callback и reflection существуют ему параллельно.

Проблема в том, что когда мы доходим до Метаданные.Справочники.Хрень_какая_то.МодульОбъекта мы получаем неопределено, вместо списка содержимого модуля.

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

Java не поддерживает передачу функций как параметров, но там есть интерфейсы, си не поддерживает интерфейсы, но там можно передавать функции. С# и то и то, ну да бог с ним с переношенным. То есть ошибка 1С в отметании всего, что наработано за долгие годы.

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

2. А свойство - это функция без параметров или процедура с одним параметром.
138. Evgen.Ponomarenko 541 09.09.13 13:15 Сейчас в теме
(137) awk,
Согласен. Можно считать, что тема исчерпана.

Как вы смотрите, на то чтобы пройтись катком по РАУЗ?
139. awk 692 09.09.13 13:59 Сейчас в теме
(138) Evgen.Ponomarenko,

А что по нему проходить? Есть два подхода первый сохранять нужную информацию при записи, второй получать нужную информацию при чтении. Первый вариант - сторонников последовательности, второй РАУЗ. Ошибки программирования исключаем как имеющие место быть в любом из вариантов реализации учета. Первый вариант чувствителен к порядку записи второй к ресурсам при чтении. Отсюда вывод:

Последовательность хороша в системах учета, а РАУЗ в системах планирования (функционал "А что если?").

Преимущество рауз трактуемое "Можно задним числом править... Не влияет на последовательность проведения..." Можно считать маркетинговым ходом. Так-как система учета, на то и система учета что бы выдавать на один и тот же момент времени одни и те же данные.
140. Evgen.Ponomarenko 541 09.09.13 14:23 Сейчас в теме
(139) Василий,
Собственно, это я и хотел сказать... не смотря, на то что у меня не было практического опыта применения РАУЗ,
но по косвенным признакам у меня сложилось впечатление, что РАУЗ действительно в большей степени маркетинговый ход, точнее ни чего более. У меня в связи с этим фактом состояние дежавю :"Мне говорят на белое, черное и на оборот". Мне ещё интересно, что думает о РАУЗ Олег...
143. comol 4073 09.09.13 14:35 Сейчас в теме
(140) Evgen.Ponomarenko,Про РАУЗ по-моему всё уже сказали... ИМХО если не рассчитывать на работу задним числом то оно так сложно нафиг не надо. А с awk +100500 согласен (139) что
система учета, на то и система учета что бы выдавать на один и тот же момент времени одни и те же данные
этому ещё в школеинституте учат :)
147. Evgen.Ponomarenko 541 09.09.13 15:43 Сейчас в теме
(143)
система учета, на то и система учета что бы выдавать на один и тот же момент времени одни и те же данные


Так, Кто ж спорит? с этой формулировкой я согласен на все 100% Вопрос в другом, разные методики учета(к примеру LIFO или FIFO), примененные к одним и тем же данным, одной и той же учетной системы, даже по законам математики, дают разный результат.
К тому же я не спорил с Василием на эту тему, а Вы молодой человек, как то совершенно неудачно вклинились
в диалог, пытаетесь провоцировать "драку" в стиле "куча мала" - ай-я-я-яй!
148. awk 692 09.09.13 16:11 Сейчас в теме
(147) Evgen.Ponomarenko,

1. Олег и не писал, про спор.
2.
Кто ж спорит?
У кто задним числом правит и закладывает это в учетные системы? По мне так ответ на вопрос: "А сможем ли мы изменить документ задним числом?" - должен звучать как: "Изменить не сможете - сможете скорректировать."
150. Evgen.Ponomarenko 541 09.09.13 16:20 Сейчас в теме
183. AlexO 127 21.10.13 11:06 Сейчас в теме
(139) awk,
Последовательность хороша в системах учета, а РАУЗ в системах планирования

РАУЗ единствено введен 1С и реализован в наихудшем варианте - чтобы "быстро и что-нибудь" насчитать по себестоимости, иключив 1С-ом же поощряемые проводки задним числом (и многочасовые восстановления всего и вся в последовательностях при партионном учете).
И все.
Вот вам быстро и "без затей" насчитали по себестоимости там что-то среднее и между чем-то проходящее, будьте добры проглотить и не возмущаться (
141. comol 4073 09.09.13 14:31 Сейчас в теме
(137) awk, Эх... есть ещё видимо люди, не забывшие C++ и С#. Я вот как после С c решеточкой пересаживаюсь обратно в конфигуратор... тоже думаю "этого нету" и "это нельзя".... и печально становится :(. Пока снегопат не стал юзать ещё и со средой разработки тяжко было...
144. awk 692 09.09.13 14:47 Сейчас в теме
(141) Весело, я так же думаю про Visual Studio Ultimate Edition пересаживаясь туда из eclipse. И того нету и этого. :)) А конфигураторе от 1С плакать хочется.
145. Evgen.Ponomarenko 541 09.09.13 15:40 Сейчас в теме
(141)
Не знаю, аналог снегопата я себе сам написал еще под досом (94-98 годы).
а к нему два динамических словаря, один под borland pascal другой под foxpro.

Щас смотрю на снегопат - даже не интересно. Я уже как 4 года назад написал свой мета-конфигуратор.
И в обычный конфигуратор захожу только в крайней необходимости, разве, что доработать свой мета-конфигуратор,
да поля в базу добавить.
185. AlexO 127 21.10.13 11:12 Сейчас в теме
(145) Evgen.Ponomarenko,
Я уже как 4 года назад написал свой мета-конфигуратор.

Чего вы, простите, написали?
(145) Evgen.Ponomarenko,
Не знаю, аналог снегопата я себе сам написал еще под досом (94-98 годы).

Для 1С, под ДОС, аналог снегопата, при отсутствии многозадачности?
(146) Evgen.Ponomarenko,
Лично, если бы мне задали вопрос внедрять УПП или использовать "Выполнить"

Ну, т.е. это одно и тоже - внедрять УПП, применять Выполнить в коде?
207. Evgen.Ponomarenko 541 21.10.13 22:21 Сейчас в теме
(185) AlexO,
А кто сказал, что под 1С? Под Foxpro и Borland pascal, в принципе под любой текстовый редактор. Перехватываешь клавиатурное прерывание и дело в шляпе.

Только мне кажется, AlexO, что сегодня вам никакие аргументы не помогут, колитесь - что курите?
142. comol 4073 09.09.13 14:32 Сейчас в теме
(136) Evgen.Ponomarenko,
Если мы соглашаемся использовать команду "Выполнить"
низачот :))). "Выполнить" это для перегрузок, временного кода и т.п. Но не для промышленного использлвания
146. Evgen.Ponomarenko 541 09.09.13 15:42 Сейчас в теме
(142)
низачот :))). "Выполнить" это для перегрузок, временного кода и т.п. Но не для промышленного использлвания


А кто сказал, что "Выполнить" выполняет код написанный человеком?
У меня "Выполнить" используется для выполнения директив конструктора мета-конфигуратора.
Очень даже надежный код получается.

В констукторе проводок я его не использую, пока... еще не определился, мне пока достаточно средств 1С

А вот в пользовательском интерфейсе, для обработки событий, "Выполнить" - самое оно, здесь не нужна производительность, здесь нужна гибкость.

А вообще я Вам так скажу, грамотно сконструированная конфигурация, даст фору и УТП и УПП в плане производительности и надежности.
Я вообще хочу сказать, что УПП можно применять в промышленном масштабе с боооооольшим натягом, за неимением альтернатив так сказать.

Лично, если бы мне задали вопрос внедрять УПП или использовать "Выполнить", я бы даже глазом не моргнул. В виду, того что если выбирать из двух зол меньшее, то "Выполнить" гоооораздо безобиднее.
149. awk 692 09.09.13 16:12 Сейчас в теме
(146) Evgen.Ponomarenko,
внедрять УПП или использовать "Выполнить", я бы
А я бы тупо не понял и спросил что имеется ввиду, что и делаю...
151. Evgen.Ponomarenko 541 09.09.13 16:22 Сейчас в теме
(149) awk,
это я так к слову... конечно сравнение не уместное... я просто хотел сказать, что применение "Выполнить" в промышленных масштабах ни чуть не хуже чем внедрение УПП в промышленых масштабах - возможность накосячить одинаковая
184. AlexO 127 21.10.13 11:10 Сейчас в теме
(142)
"Выполнить" это для перегрузок, временного кода и т.п. Но не для промышленного использлвания

Это почему еще? )
Что-то изменится, если написать код "как надо", или его же - через ВЫПОЛНИТЬ??
187. comol 4073 21.10.13 11:58 Сейчас в теме
(184) AlexO,
да, не, ничего не изменится... сущие мелочи:

1) Перекомпиляция перед выполнением
2) Недоступность для поиска/рефакторинга
3) Не доступность через хранилище
4) Возможны не контролируемые изменения из пользовательского режима

А так вцелом ничего :)
38. comol 4073 01.09.13 15:38 Сейчас в теме
(33) German, Герман, "моя твоя не понимать". На всякий случай сделал пустую базу, запустил... при вотором запуске посмотрел в профайлер. Ещё как обращается он к файлу конфигурации. Притом не один раз. Зачем столько запросов к таблице Config не знаю, но то что BinaryData это вроде и есть сам cf файл (или его часть).

Или ты про сервер 1С писал, а я про SQL?...

P.S. как картинку в текст встроил? У меня что-то теперь ни кнопки цитат ни картинок не работают :(.
Прикрепленные файлы:
54. German 871 02.09.13 11:51 Сейчас в теме
55. comol 4073 02.09.13 12:02 Сейчас в теме
(54) German, Ага... особенно актуально с учетом того что табличка config пустая в пустой базе :). Видимо в этих запросах "скрытый сокральный смысл" заложен :)))
56. German 871 02.09.13 12:07 Сейчас в теме
(55)Я же тебе подарил Ei :) не просто так, неси знания в массы :)
35. Evgen.Ponomarenko 541 01.09.13 01:22 Сейчас в теме
(32)
(31) German, ээ... а в каком смысле? Я где-то ошибаюсь по поводу того как 1С использует файл конфигурации, ну поправь тогда в чём? Я же его "по кусочкам не расковыривал" могу где-то ошибиться :(. А если ты про сам подход - готов подискутировать. "Единый cf файл" это по-моему вообще беда 1С. По-моему ни одна нормальная система так свои метаданные не хранит. На недельке, думаю, посмотрю как это в SAP сделали, вряд ли так же мне кажется один cf файл это раритет :(


А вот с этого момента пожалуйста, по подробнее... Статья - просто улет! Съекономили целую жизнь! но единый cf - это мега достижение... вы батенька со сборками dll и bpl под oracle дела не имели? а я имел! а компилить этот зоопарк под Delphi пробовали? - вряд ли! Когда на одной машине заводишь 3 виртуальных стола под Delphi 4,5,6.
И при этом модули ЗП собираешь, по любому, на компе подчиненного сотрудника. Неееее единый сf - это СИЛА!
39. comol 4073 01.09.13 15:44 Сейчас в теме
(35) Evgen.Ponomarenko, с dll и bpl на delphi прошла вся школьная жизнь :). Тут о другом немного.... дело не в том едином хранении всех программных модулей - это "+" а в формате хранения... не должно быть бинарника, в который всё собрано, который понимает только 1С и никто более... и который надо "разархивировать" ещё чтобы использовать...
40. Evgen.Ponomarenko 541 01.09.13 19:36 Сейчас в теме
(39)
Сейчас 8.3 позволяет выгружать и загружать структуру конфигурации в формате xml(пока в режиме beta). Ваши пожелания касались этой возможности, или у Вас есть какие-то более глобальные идеи?
42. comol 4073 01.09.13 22:38 Сейчас в теме
(40) Evgen.Ponomarenko, Возможность выгрузки в xml это одно, а внутренняя структура хранения это другое.
Вот если бы в форме XML внутри хранились метаданные в специальном наборе таблиц и уже с типом "xml" с которым MS SQL куда быстрее работал... ну или вообще отдельно на сервере 1С... Ну и соответственно с этими табличками и файлами какой-нить отдельный интерфейс работы... Это бы позволило не хранить отдельный хотя бы клиентский кэш метаданных, если к каждой таблице привязан отдельный файл с метаданными то нет проблем их считать при обращении, соответственно нет проблем, к примеру, конфигурацию обновить без монопольной блокировки, не нужно каждый раз кэш разворачивать, проверять на валидность и т.п. можно организовать слои, можно организовать модульность.... много ещё чего можно...
CratosX; awk; +2 Ответить
43. Evgen.Ponomarenko 541 02.09.13 00:37 Сейчас в теме
(39)
<QUOTE>с dll и bpl на delphi прошла вся школьная жизнь</QUOTE>
повезло вам, моя школьная жизнь прошла на рассвете z-80. Машинные коды, asm. Война с админом из универа
за право контролировать root школьного ДВК-3. Хотелось бы заметить, что Delphi и Delphi+Oracle - разный уровень. Ну да ладно... просто навеяло.
41. awk 692 01.09.13 21:46 Сейчас в теме
(35) Evgen.Ponomarenko, [quote]cf - это мега достижение...[/quote] Достижение чего? Достижение невозможности поставки частей кроме как в составе целого? Возьмем БСП. Вроде очень интересная и архиважная вещь. Но попробуйте часть ее объединить с текущей конфигурацией и... И как минимум пойдете на ИТС читать, что надо, а что не надо. Вся идея в разделении сложной архитектуры на простые составляющие ушла в ...
comol; hogik; +2 Ответить
44. Evgen.Ponomarenko 541 02.09.13 02:05 Сейчас в теме
(41) awk, (42) comol
Давно слежу за Вашим творчеством. Уважаю.
Поверьте - мой опыт, где-то соизмерим с Вашим. Просто он другой...в силу естественных на то причин.

Мне кажется, что сейчас Вы путаете достижение платформы и отсутствие системного подхода в разработках стандартных конфигураций. Как по мне БСП - полный отстой, хотя в некотором смысле это и определенный шаг вперед. От хаоса к системному хаосу. Честно говоря не понимаю зачем делать вызовы типа функция1(Функция2(Функция3(Функция4(Функция5(X,Y))))) когда после декомпозиции функций и нормализации их структуры достаточно вызвать Функция1Нормальная(Функция2Нормальная(X),Функция3Нормальная(Y)).

Поверьте мне наслово: Платформа не виновата, что до сих пор нет математически строгой экономической модели предприятия. Её нет ни в Oracle, ни в SAP-R3, ни в Axapte, ни в Галактике (и др.) Адекватной математической модели нет нигде! Я уже 15 лет слежу за рынком в надежде найти достойную альтернативу. Чего мне не хватало - это информации по Axapte. comol Вам большое спасибо за труд.

В своё время меня угораздило внедрять УТП в одной конторе. Причем к тому времени у меня уже был успешный опыт внедрения УТП и УПП. Это был шок. УТП пришлось выбросить на помойку. И написать все с нуля. Мне неслыханно повезло с постановщиком задач - он оказался математиком и экономистом в одном флаконе. Мы за три месяца разработали модель. За год удалось реализовать проект. Как ни странно любая учетная задача решается всего на 7-ми регистрах накопления, практически без программирования. Четыре года ушло на шлифовку конструкторов проводок, модулей и отчетов.

Два года назад начал искать конфигурации, которые отвечают моему виденью и потребностям. Искал среди типовых конфигураций 1С. Ближе всего подошла "Управляющий 2.0".Разбирая на запчасти "Консолидацию" реально валялся под столом, со смеху. Это ж как pricewaterhousecoopers развела на бабки 1с! Просто красавцы, впрочем они многих уделали.

В результате анализа конфигураций 1С, не претендую на объективность, но лучшими я считаю ИТАН: УПРАВЛЕНЧЕСКИЙ БАЛАНС http://www.finprosoft.ru/ub2.shtml и "Скат профессионал" http://infostart.ru/public/199013/
уж не сочтите за рекламу. Но у Итана, есть кейсы в том числе содержащие наиболее адекватную (но не идеальную) экономическую модель. А у Ската, есть мета-конфигуратор, который реализует концепцию неразрушающего конфигурирования. У Ската лучше бухгалтерский и оперативный учет, а у Итана лучше управленческий финансовый и бюджетирование. Итан внедряется в любую конфигурацию

Лично как по мне СКАТ+ИТАН - это Бомба.

comol большое Вам Человеческое Спасибо. Пока писал вам ответ, понял, что СКАТ и ИТАН просто созданы друг для друга.

sacred; vasyak319; aleXoid83; Artem N; +4 Ответить
51. comol 4073 02.09.13 09:53 Сейчас в теме
(44) Evgen.Ponomarenko,

"функция1(Функция2(Функция3(Функция4(Функция5(X,Y)))))" - Это попытка сделать ООП без ООП, я же писал :)

"БСП - полный отстой" -1. БСП это шаг вперёд.. без ООП на уровне платфомы это видимо лучшее что получилось сделать.

"Адекватной математической модели нет нигде" :))). А оно вам надо? :)) К примеру сейчас куча математиков пытаются построить математическую модель нейронной сети, и доказать что она работает. А куча разработчиков её просто используют :)

Что касается ИТАН-а... смотрел, анализировал, но для себя в нём ничего не нашел... не дотягивает до Инталева с БИТ-ом... ИМХО конечно... тут каждому своё.
57. Evgen.Ponomarenko 541 02.09.13 13:12 Сейчас в теме
(51)
<QUOTE>"Адекватной математической модели нет нигде" :))). А оно вам надо? :)) К примеру сейчас куча математиков пытаются построить математическую модель нейронной сети, и доказать что она работает. А куча разработчиков её просто используют :)</QUOTE>

История №1
Жил-был программист. Реальный человек - работал на машиностроительном заводе, в какой бы системе программирования не работал - всегда заканчивал тем, что разрабатывал свой конструктор приложений. Была проблема: Как сделать так, чтобы гусиницы у танков не слетали с катков на полном ходу. Программист был знатным математиков - разработал мат. модель,запрограммировал её. Промоделировал варианты. И выдал оптимальный результат. С тех пор наши танки "Летают", а зарубежные только ползают.

История №2, Развал Советского Союза. Накрывается медным тазом "НИИ Кондиционер". Спустя 10 лет на металлолом идут 2 уникальных, единственных на союз аэродинамических стенда для испытаний промышленных вентиляторов. Их выкупает за свои деньги одна из лабораторий НИИ.
5 лет пытаются восстановить методику испытаний с помощью бывших сотрудников НИИ - тщетно. В итоге уже директору ООО «Вентиляторный завод Укрвентсистемы» пришлось самому сесть и разобраться в методике испытаний. Нас пригласили написать программу по обработке результатов испытаний. В итоге характеристики
испытаний идеально сделанных вентиляторов не соответствует ГОСТ-ам. Формулы - на трех листах А4.
Поди проверь! В итоге, оказалось, что начиная с 70 годов институт только и занимался, что приписками.
Учитывая сложность расчетов академики вписывали поправочные коэффициенты на влажность воздуха, атмосферное давление, температуру воздуха то в начало формулы, то в конец, то в середину в различных комбинациях,защищая докторские. А аэродинамические характеристики уже рисовали по лекалам от руки, как надо.

PS
Методику восстановили. Стенд работает. Фото здесь http://ukrvent.ua/zaschita_potrebiteley.html
Но с тех пор я следую принципу "Хочешь сделать хорошо - сделай сам!". Это хорошо, что пример касался техники. В экономике доказать несостоятельность мат. модели практически не возможно. Можно только лицезреть результаты внедрений.
До сих пор вспоминаю золотые слова зав. кафа экономического факультета: "Запомни студент! Экономика как дышло - куда подуешь, туда и вышло."




61. comol 4073 02.09.13 14:21 Сейчас в теме
(57) Evgen.Ponomarenko, математика хороша вмеру. И мера эта находится очень недалеко. Как часто вы считали интеграл по поверхности, решали дифуры, строили реды, использовали другие распределения кроме нормального? А эти знания только 1 курс вуза :)

А какая математическая модель предприятия, если даже себестоимость посчитать решением СЛУ только недавно задумались и половину людей, кстати, это не устраивает :)))

62. Evgen.Ponomarenko 541 02.09.13 14:33 Сейчас в теме
(51)
<QUOTE>без ООП на уровне платфомы это видимо лучшее что получилось сделать.</QUOTE>
согласен, но наличие ООП не гарантирует системного мышления у программиста, впрочем тот кто мыслит системно, мыслет так и без ООП. Отсутствие ООП делает 1с гибче, в этом есть свой плюс.
67. comol 4073 02.09.13 16:24 Сейчас в теме
(62) Evgen.Ponomarenko, "Отсутствие ООП делает 1с гибче, в этом есть свой плюс.". О_о
"щас будет драка" ©. Сначала вот сюда: http://rutracker.org/forum/viewtopic.php?t=3343958 - качать и от корки до корки. А потом ещё раз обсудим ООП :)))
80. Evgen.Ponomarenko 541 02.09.13 18:04 Сейчас в теме
(67)
<QUOTE>О_о "щас будет драка" © </QUOTE>
Главное успеть пока не прибыли гвардейцы кардинала... Пошел читать...

Большая просьба к awk: "Олега мне оставишь?"
103. Evgen.Ponomarenko 541 05.09.13 09:46 Сейчас в теме
(67)
<QUOTE>(62) Evgen.Ponomarenko, "Отсутствие ООП делает 1с гибче, в этом есть свой плюс.". О_о
"щас будет драка" ©. Сначала вот сюда: http://rutracker.org/forum/viewtopic.php?t=3343958 - качать и от корки до корки. А потом ещё раз обсудим ООП :)))</QUOTE>

Хорошая сборка, буду знать куда посылать неокрепших умом "сертифицированных специалистов" от 1С, набираться ума разума. Только, Олег, давай-те на будущее договоримся не посылать друг друга читать очевидные вещи.

А то вдруг мне захочется послать Вас почитать фирменную документацию к C++, С#, Delphi, Java (какой вам больше по душе) к стандартам IDEF1x, IDEF3 и предложить ERwin в помощь. По крайней мере там коротко и по существу, без лишней воды и пафоса.

В свое время я перешел от Delphi+Oracle на сторону 1С, как только 1С-ка стала поддерживать SQL-92 (1с8.0 beta). Честно говоря мне уже давно стало тесно в жестких рамках контроля ООП с одной стороны и сервера баз данных с другой.
Был повод... Нам поставщик пол года не мог написать себестоимость на жутком гибриде делфей, oracle и экселя. За 8 дней своего личного отпуска я написал под 1С библиотеку связи 1с и Oracle, импортировал в 1с структуру таблиц и правила расчетов. И получил готовое решение. В результате мой начальник приказал снять мою систему с эксплуатации. Но было уже поздно, бухи были в восторге.
В итоге, после тщетных попыток доказать руководству, что 1с рулит. Я уволился. Только спустя 4 года, мой бывший начальник переписал себестоимость по oracle. B во время ))) файловая версия достигла размера 6-гиг и славненько накрылась медным тазом. ИМХО таблица проводок достигла свои 4 гига по паспорту :)

Итак, отсутсвие в 1С средств ООП плюс или минус? Отсутствие ограничений ООП, позволило захватить рынок услуг автоматизации малых предприятий руками программистов довольно низкой квалификации. Со временем они обрели опыт, но отсутствие у них фундаментальных знаний мы разгребаем до сих пор.
будем считать это платой восьмерки за вход на рынок автоматизации средних предприятий.

К стати, нельзя сказать, что бы 1с совсем не поддерживает ООП.

Во времена oracle 8.1.7, корпорация ORACLE только анонсировала объектно-ориентированный подход, а у 1С 8.0 в языке запросов он уже был реализован.

=== Пример №1 Выбрать данные за весь период из расходных накладных. ===

1С: "ВЫБРАТЬ Номер,Количество ИЗ Документ.Расходная.Накладная"

Oracle: "SELECT DOC.NUMBER,DET.CNT FROM DOC_RASHOD DOC,DETAILS_RASHOD WHERE DOC.ID=DET.DOC_ID+"

=== Пример №2 Добавить в выборку наименование номенклатуры ===
1С: "ВЫБРАТЬ Номер,
Номенклатура.Наименование,
Количество
ИЗ Документ.Расходная.Накладная"

Oracle "SELECT
DOC.NUMBER,
SPR.NAME_NOM,
DET.CNT
FROM DOC_RASHOD DOC,DETAILS_RASHOD,SPR_NOM SPR
WHERE DOC.ID=DET.DOC_ID+ AND SPR.ID=DET.NOM_ID

=== Пример №3 Добавить в выборку наименование контрагента ===
1С "ВЫБРАТЬ Номер,
Номенклатура.Наименование,
Контрагент.Наименование,
Количество
ИЗ Документ.Расходная.Накладная"

Oracle "SELECT
DOC.NUMBER,
SPR.NAME_NOM,
CUS.NAME_CUSTOMER,
DET.CNT
FROM DOC_RASHOD DOC,DETAILS_RASHOD,SPR_NOM SPR,SPR_CUSTOMER CUS
WHERE DOC.ID=DET.DOC_ID+ AND SPR.ID=DET.NOM_ID AND DOC.CUS_ID=DOC.CUS_ID

ну и так далее... В принципе такая сложность решалась с помощью
CREATE VIEW MY_VIEW AS SELECT
DOC.NUMBER,
SPR.NAME_NOM,
CUS.NAME_CUSTOMER,
DET.CNT
FROM DOC_RASHOD DOC,DETAILS_RASHOD,SPR_NOM SPR,SPR_CUSTOMER CUS
WHERE DOC.ID=DET.DOC_ID+ AND SPR.ID=DET.NOM_ID AND DOC.CUS_ID=DOC.CUS_ID

и тогда выборка делалась следующим образом:
SELECT NUMBER,NAME_NOM,NAME_CUSTOMER,CNT FROM MY_VIEW

но стоило наложить сюда RLS... И ложился самый крутой сервак.

Так, что беда не в том, что в 1С нет поддержки ООП, А то, что перед сдачей "Специалиста", не требуют сдачи экзамена по ООП. Foxpro 2.6 тоже не имел механизмов ООП, но НИКОГДА не глючил.
А вот infostart.ru, не знаю на чем он писан, но плющит его не по детски. (у меня комменты не редактируются до сих пор)

Вторая беда 1С программистов - слабые знания языка запросов.

Так, что по большому счету, я бы перед сдачей экзаменов по 1С, требовал пройти вступительные экзамены по ООП,SQL,IDEF1x,IDEF3,ERwin(BPwin). Тогда бы количество, имело возможность перейти в качество.
104. comol 4073 05.09.13 10:21 Сейчас в теме
(103) Evgen.Ponomarenko, Нуу фраза "Отсутствие ООП делает 1с гибче" вызвала желание сказать "учите матчасть" :), что я и постарался сделать наиболее политкорректным образом. Совсем промолчать не смог :).
Описание стандартов IDEF я естественно читал. BPWin-ом правда только в универе пользовался :). В сознательном возрасте как то Business Studio, сейчас и им не пользуюсь. Ближе как-то ARIS eEPC наверное потому что событийная модель понятнее :). Ну и документацию по C++/C# все наверное ещё с ВУЗ-а штудировали :). Это я не хвастаюсь, эт я просто говорю что я "полноценный в принципе ИТ-шник" и "учить матчасть" в этой области меня отсылать не нужно :).

А вот когда читаю что-то типа: "Отсутствие ограничений ООП, позволило"
"а у 1С 8.0 в языке запросов он (ООП) уже был реализован"
"Foxpro 2.6 тоже не имел механизмов ООП, но НИКОГДА не глючил"

хочется такую же картинку прицепить, как мне Герман в (31) прислал "печальбеда"... :(
AlexO; awk; +2 Ответить
106. Evgen.Ponomarenko 541 05.09.13 10:42 Сейчас в теме
(104)
Да согласен, вся беда в том, что тяжело оценить уровень, собеседника с двух фраз.

"а у 1С 8.0 в языке запросов он (ООП) уже был реализован"
"Foxpro 2.6 тоже не имел механизмов ООП, но НИКОГДА не глючил"


Та ладно те Вам!
Я не утверждал... я намекал, конечно же. Может уже в ночи не точно сформулировал мысль... Просто реальная драка у меня была с заказчиком. Скорее блиц-криг, но на подготовку ушло много времени и сил.

Вам спасибо за тему... для размышлений. Лично свое ООП расширение 1С я реализовал уже давно. Четыре года лежит у меня загашнике недописанная статья "Полиморфные управляющие структуры". Не дописана по причине того, что не хватает общепринятых терминов описания того, что у мне уже служит верой и правдой 4 года.

Лично мне от 1С нужно одно - подписка на события формы. А то хлопотно это все.
107. awk 692 05.09.13 11:00 Сейчас в теме
(106) Evgen.Ponomarenko, А передача функций как параметров? А список процедур и функций модуля программно?
108. Evgen.Ponomarenko 541 05.09.13 11:17 Сейчас в теме
(107) awk,
Тема меня задела ..., точнее много тем... я потихоньку сюда буду выкладывать свои тезисы... если Олег не против, а может забацаем отдельную ветку форума. Вечерком отпишусь.
111. Evgen.Ponomarenko 541 05.09.13 11:33 Сейчас в теме
(107) awk,
у меня "модуль" не текст программы, у меня "модуль" - это объект содержащий:
1) текст основного запроса,
2) детализирующих запросов,
3) список колонок, с том числе ссылку на описание колонки, который в принципе позволяет генерить документацию по модулю на лету.
4) список параметров
5) обработчики событий
..
всего 18 закладок в составе около 300 полей различного назначения

Модуль иуеет сам себя отображать и взаимодействовать с пользователем.

Перемещается между конфигурациями с помощью xml файла. К стати, если любопытно - могу выслать пример файла.
114. awk 692 05.09.13 12:03 Сейчас в теме
(111) Evgen.Ponomarenko, А я про старый добрый callback и reflection. Первый было бы удобно применять:

СтруктураДействий= Новый Структура;

СтруктураДействий.Вставить("ПересчитатьСумму", Новый Структура("Объект, Обработчик", ЭтотОбъект, Документы.Реализация.ПересчитатьСуммуВПопугаях));

ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(СтрокаТовары ,СтруктураДействий, КэшированныеЗначения);

А второй вместо:

Попытка
Результат = МенеджерОбъекта.СоздатьОбъект();
Исключение КонецПопытки;

использовать человеческий:

Если МенеджерОбъекта.Метаданные().Процедуры.Найти("Функция", "СоздатьОбъект", 0) Тогда
Результат = МенеджерОбъекта.СоздатьОбъект();
КонецЕсли;
115. Evgen.Ponomarenko 541 05.09.13 12:19 Сейчас в теме
(114) awk,
Первый

Я обычно так делаю:
Запрос=Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Документы.Реализация ГДЕ Проведен=истина");
Результат=Запрос.Выбрать().Выгрузить();
Для каждого эл из Результат Цикл
   Об=эл.Ссылка.ПолучитьОбъект();
   Об.ПересчитатьСуммуВПопугаях();
   Об.Записать();
КонецЦикла;

Обработку ошибок мы пропускаем...
182. AlexO 127 21.10.13 10:57 Сейчас в теме
(114) awk,
МенеджерОбъекта.Метаданные().Процедуры.Найти("Функция", "СоздатьОбъект", 0)

Вы хотите, чтобы 1С все переписала, и, наконец, сделала ООП у себя? Забудьте ))
153. help1Ckr 08.10.13 11:42 Сейчас в теме
(111)Evgen.Ponomarenko, а мне можете прислать на help1ckr@gmail.com?
172. Evgen.Ponomarenko 541 16.10.13 21:32 Сейчас в теме
(153) help1Ckr,
Надеюсь выложить её в свободном доступе, но чуть позже. Боюсь без хорошей сопроводительной документации она не будет представлять интереса. Уж слишком не привычна концепция. Честно говоря, я на ИС пришел только с одной целью - сменить технологию разработки приложений 1С на корню.
109. comol 4073 05.09.13 11:24 Сейчас в теме
(106) Evgen.Ponomarenko, "Лично мне от 1С нужно одно - подписка на события формы. А то хлопотно это все."
И вообще мы 1С-ники "не сторонники чистого искусства" (с) :))))))
110. comol 4073 05.09.13 11:24 Сейчас в теме
(106) Evgen.Ponomarenko, P.S. лучше расскажи как цитаты вставлять умудряешься :)))
112. Evgen.Ponomarenko 541 05.09.13 11:37 Сейчас в теме
(110)
:))))) боевые рефлексы HTML верстки: <_Q_U_O_T_E> цитата </_Q_U_O_T_E>

только чур меня сегодня не дубасить!!!
113. Evgen.Ponomarenko 541 05.09.13 11:38 Сейчас в теме
(110)
да... и вставку цитат только, что починили :)))))))))
181. AlexO 127 21.10.13 10:52 Сейчас в теме
(103) Evgen.Ponomarenko,
но стоило наложить сюда RLS... И ложился самый крутой сервак.
Так, что беда не в том, что в 1С нет поддержки ООП, А то, что перед сдачей "Специалиста", не требуют сдачи экзамена по ООП

Что-то у вас совсем нереальные представления об RLS, ООП и 1С в частности.
Одно то, что в 1С нет ООП, и никогда не было - вызывает сомнение во всех ваших остальных выкладках.
(106) Evgen.Ponomarenko,
Лично свое ООП расширение 1С я реализовал уже давно.

Ну, понятно теперь все ))
213. AlexO 127 23.10.13 09:36 Сейчас в теме
(103) Evgen.Ponomarenko,
Нам поставщик пол года не мог написать себестоимость на жутком гибриде делфей, oracle и экселя

Не может такого быть. Либо поставщик-"одноэсник" пытался что-то писать на Дельфи.
(103) Evgen.Ponomarenko,
Отсутствие ограничений ООП

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

НЕ непомерная ли плата - деградация в обмен на "вход на рынок"??
(103) Evgen.Ponomarenko,
К стати, нельзя сказать, что бы 1с совсем не поддерживает ООП.

Можно. Не поддерживает, не поддерживала, и не будет поддерживать совсем.
Во времена oracle 8.1.7, корпорация ORACLE только анонсировала объектно-ориентированный подход, а у 1С 8.0 в языке запросов он уже был реализован.

Причем тут СУБД и 1С?? Вы требуете от СУБД сразу еще и "универсального" ЯП?? Вот если бы 1С написала хоть что-то отдаленно напоминающее Оракл - тогда бы и можно было сравнивать.
225. Evgen.Ponomarenko 541 23.10.13 23:02 Сейчас в теме
(213) AlexO,
Причем тут СУБД и 1С?? Вы требуете от СУБД сразу еще и "универсального" ЯП?? Вот если бы 1С написала хоть что-то отдаленно напоминающее Оракл - тогда бы и можно было сравнивать.

Как можно сравнивать теплое с мягким? DBMS Oracle это промежуточный слой для 1С. Средство хранения и обработки данных.
А вот Oracle Application мы в 2006 году уделали на Харьковской "Мивине" бюджетом в 3 раза меньшим. После того как крутые спецы из Голландии сказали, что они умывают лапки.
229. AlexO 127 24.10.13 09:25 Сейчас в теме
(225) Evgen.Ponomarenko,
А вот Oracle Application мы в 2006 году уделали на Харьковской "Мивине" бюджетом в 3 раза меньшим. После того как крутые спецы из Голландии сказали, что они умывают лапки.

Ну так и 1С "уделывает" всех своим заднесписочным проведением :)
Только потом порождает такую кучу проблем, что Оракл и не снилось. Но 1С об этом "забывает" предупредить, и продолжает поощрять проведение "задним числом".
231. Evgen.Ponomarenko 541 24.10.13 14:17 Сейчас в теме
(229) AlexO,
Ну так и 1С "уделывает" всех своим заднесписочным проведением :)
Только потом порождает такую кучу проблем, что Оракл и не снилось.
Но 1С об этом "забывает" предупредить, и продолжает поощрять проведение "задним числом".

Оракл ломает предприятие под себя, УПП после сборки обрабатывается напильником ))
Но в остальном вы правы, по этому у меня партионный учет от начала до конца свой.
70. awk 692 02.09.13 16:47 Сейчас в теме
(62) Evgen.Ponomarenko, (67) Драку заказывали? ООП - это круто, но бездумное наследование ведет к росту классов в геометрической прогрессии. Что негативно сказывается на архитектуре приложения в целом. Так что если быть фирме 1С последовательной (платформа на которой может писать и дебил начинающий), то не надо там наследования. А какое без него ООП?
71. comol 4073 02.09.13 16:59 Сейчас в теме
(70) awk, Ну тогда не жалуйтесь на конструкции вида функция1(Функция2(Функция3(Функция4(Функция5(X,Y))))) в БСП и на 3000 строк кода в РСВ. Я уж не знаю что должен покурить "начинающий" чтобы в этом разобраться :). Индусы были бы рады программировать на 1С :). А то им ООП портит жизнь и снижает з/п :)
72. awk 692 02.09.13 17:14 Сейчас в теме
(71) А как вам такая конструкция?

Класс_1 <|-- Класс_2 <|-- Класс_3 <|-- Класс_4 <|-- Класс_5 <|-- Класс_6

Класс_1 : Функция_1
Класс_2 : Функция_1
Класс_3 : Функция_1
Класс_6 : Функция_1

Как пойдет вызов функций? Если "<|--" наследование, а ":" определение.
74. mrvisualfox 02.09.13 17:34 Сейчас в теме
(72) awk, Согласен, если у разработчика в голове каша, ему никакое ООП не поможет.
И, сообственно, почему в 1С нет ООП? Есть оно, только нам разрешают наследование в один уровень :)
75. awk 692 02.09.13 17:46 Сейчас в теме
(74) mrvisualfox, Там прототипирование в один уровень, а не наследование. Что кстати во многих случаях (а особенно в языках с динамической типизацией) более выгодно нежеле наследование.
77. comol 4073 02.09.13 17:59 Сейчас в теме
(74) mrvisualfox, Да ну... вот начинаем разработку "с 0". Понимаем как должен выглядеть документ, какие кнопки должны быть - доп реквизиты, доп печатные формы, нумерация и т.д. и т.п. - рисуем шаблон документа, подгоняем его под принятые на проекте методики. Далее разрабатываем "по образу и подобию" - копируя код все остальные документы... а потом.... а потом вспоминаем что кое-что забыли... и что вы будете делать? Правильно - прописывать в каждом документе код... Да даже когда не с 0.. сколько раз вы встраивали себе в конфигурации разные "фичи" - переходили на "управляемые блокировки", на "новую методику проведения" и т.п. и каждый раз это переписывание всей конфы... просто мы уже привыкли... сделали кучу шаблонов http://infostart.ru/public/89310/, используем парсеры http://infostart.ru/public/193387/, быстрее пишем код со снегопатом http://infostart.ru/public/102065/ и всё ждём ждём... пока разработчики платформы перестанут страдать фигнёй вроде интерфейса такси http://infostart.ru/public/190174/ или мобильной платформы http://v8.1c.ru/overview/Term_000000818.htm :), и озаботится о технологической части внутренностей платформы...
vasyak319; AlexO; +2 Ответить
81. awk 692 02.09.13 18:06 Сейчас в теме
(77) В приведенном примере не требуется наследование. Можно обойтись старым добрым:

include МодульУниверсальногоДокумента;
84. comol 4073 02.09.13 20:39 Сейчас в теме
(81) awk, Ага... помню я чем это в 7.7 заканчивалось :)... Можно ещё написать Что-то типа: ВнешняяОбработка.Создать().ВыполнитьМетод().... и расстрелять потом такого разработчика :))
86. awk 692 03.09.13 08:28 Сейчас в теме
(84) Тогда можно подумать надо всех проектирующих xml в джаве расстреливать надо.

SAXParserFactory factory = SAXParserFactory.newInstance(); 
SAXParser parser = factory.newSAXParser(); 
SAXPars saxp = new SAXPars(); 
 
parser.parse(new File("..."), saxp); 


За патерн фабрика.

(85) У DAX все впереди. M$ обещал ее к VS прикрутить.

MFC. Как много в этом звуке, для си плюс плюсника слилось, Как много в нем отозвалось.

Эту библиотеку многие приводят как пример отсутствия ООП. На С++ уже лет семь не пишу и помню плохо. Но C#, Джава - да много раз сидел в отладчике.
87. comol 4073 03.09.13 10:32 Сейчас в теме
(86) awk, ну MFC я не как "показательное ООП" говорил... все помнят это жуткое BEGIN_MESSAGE_MAP ))) а про то что отладчиком там повесишься ковыряться, да и смысла в этом... проще уже переопределить самому методы.

Ну в примере они же не исполняемый код в XML-ки запихивают :), а только объект помещают, насколько я понял.

не знаю как в java, но в C# там уже готовые сборки, там базовые классы особо не поотлаживаешь.

Можно долго спорить, но и в C++ и в C# и в java полноценный ООП :), поэтому фраза что "оно нафиг не нужно нам" это как то странно звучит :)
88. awk 692 03.09.13 10:50 Сейчас в теме
(87) Не, не, не... Нужен. Вопрос нужно ли из процедурного языка делать ОО?

MFC было давно, так что не помню. А вот базовые классы коллекций в джаве смотрел. Есть там и чему поучиться, и что покритиковать.

Кто сказал, что нельзя запихать код в XML, а потом его выполнить? Более того в джаве есть технология которая таким образом сериализует и востанавливает классы UI.
89. comol 4073 03.09.13 11:04 Сейчас в теме
(88) awk, "Не, не, не... Нужен".. ну вот "драки не получилось" :).
176. AlexO 127 21.10.13 10:43 Сейчас в теме
(88) awk,
MFC было давно, так что не помню.

MFC это были обычные наборы базовых классов, объединенных в библиотеки. Можно сказать, фабрики классов.
В общем, к чему пришли - давно уже ясно.
Оставьте свое сообщение

См. также

Как внедрить 1С:Документооборот в условиях хаоса 35

Статья no Нет файла v8 ДО УУ Документооборот и делопроизводство Бесплатно (free) Управление проектом

Не всегда проекты можно внедрить по заранее спланированному алгоритму. Скорее, даже никогда проекты не удается выполнить по универсальному плану: в каждой конкретной ситуации есть свои сложности и свои проблемы. Опытом внедрения 1C:Документооборот в отсутствии описанных процессов и утвержденной структуры предприятия на конференции поделилась руководитель отдела автоматизации торговой сети РЕМИ Марина Лимонтова (г. Владивосток).

21.08.2019    4846    limm28    10       

Внедрение конфигурации 1С:Государственные и муниципальные закупки 8 по технологии контрольного примера 3

Статья no Нет файла v8 1cv8.cf Государственные, бюджетные структуры Россия Бесплатно (free) Управление проектом

Внедрение конфигурации 1С:Государственные и муниципальные закупки 8 с помощью технологии контрольного примера. Коротко рассмотрен состав работ и целесообразность использования этой технологии в конкретном случае: ФЗ-223 и неполное использование функционала 1С:ГиМЗ.

22.05.2019    1664    2ncom    6       

Корпоративный мозг на 1С и Python 120

Статья Программист Руководитель проекта Нет файла v8 1cv8.cf Windows Бесплатно (free) Управление проектом

Перед вами краткая инструкция, как можно быстро начать digital-трансформацию компании с помощью нейронных сетей на 1С, а также с использованием, в качестве дополнения, ресурсов Python.

17.05.2019    16100    user995065    70       

Где теряется эффективность? 14

Статья no Нет файла v8 1cv8.cf Бесплатно (free) Управление проектом Личная эффективность

Общее понятие об эффективности командной работы. Где она теряется, где ее ищут, и почему ничего не получается.

03.05.2019    3568    1c-intelligence    13       

Особенности реального внедрения 1С:ТОИР 5

Статья no Нет файла v8 1cv8.cf Машиностроение и приборостроение Россия Бесплатно (free) Управление проектом Бухгалтерский учет

Часть 1. Учет объектов ремонта. Интеграция ТОИР с учетной системой. Планирование ремонтов.

29.03.2019    3755    Апрель-С    3       

Git + 1С. Часть 2. Реализация Git workflow в 1С-разработке по шагам 128

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Инструментарий разработчика Управление проектом

В этой части мы рассмотрим наиболее распространённую схему workflow при групповой разработке с использованием Git. Как приступить к доработке по поставленной задаче; исправить ошибку, обнаруженную на этапе тестирования; отправить свой код на слияние в предстоящий релиз; и т.д. Постараемся охватить большинство задач, составляющих основной цикл разработки

28.01.2019    9660    stas_ganiev    18       

Как запустить 1С:ERP 2 на тысячу пользователей и не написать ни одной страницы ТЗ? 115

Статья Руководитель проекта Нет файла v8 ERP2 Бесплатно (free) Управление проектом

Глеб Стальной делится опытом построения полного цикла процесса DevOps на проектах 1С с помощью использования современных инженерных практик – разработки через поведение, автоматизации ночных сборок, непрерывного анализа качества кода и т.д. В статье много внимания уделяется работе с инструментами (Slack, Zoom, Jira, Confluence, Jira Service Desk, Bitbucket, Vanessa Behavior, БИТ.Адаптер, Jenkins, SonarQube 1C (BSL) Plugin, Allure и т.п.)

17.01.2019    15969    glebushka    59       

Выбор программы 1С 4

Статья Пользователь Нет файла v8 1cv8.cf Россия Бесплатно (free) Пользователю системы Интеграция Управление проектом

Данная статья является своеобразной точкой отсчета для тек, кто размышляет на тему автоматизации бизнес-процессов своей компании. Для тех, кто только начинает свое знакомство с линейкой программных продуктов фирмы 1С. Мы рассмотрим упрощенный процесс выбора программного продукта применительно к тому или иному направлению учета.

16.01.2019    4131    itworks    21       

Как правильно выбрать поставщика услуг 1С 4

Статья no Нет файла v8 Россия Бесплатно (free) Управление проектом

Для того, чтобы внедрение нового программного продукта (либо сопровождение уже имеющегося) прошло гладко и безболезненно для компании, необходим достойный поставщик услуг 1С. Официальные партнеры 1С, фрилансеры, специалисты 1С в штате собственной организации - рассмотрим все варианты через призму специфики различных сегментов бизнеса.

14.01.2019    2973    itworks    14       

Код по цене пачки пельменей и сорок бочек скрама 80

Статья Программист Руководитель проекта Нет файла v8 Бесплатно (free) Практика программирования Управление проектом

Быстрый код по цене пачки пельменей и сорок бочек скрама пятому столику.

10.01.2019    7960    Alex_Japanese_Student    143       

Вы как хотите, а я сделал 53

Статья no Нет файла v8::Бизнес-процессы 1cv8.cf Бесплатно (free) Управление проектом

Хвастаюсь системой управления задачами

28.12.2018    8436    1c-intelligence    18       

Как получить сервер разработки под 1С в Azure на 80% дешевле 7

Статья Системный администратор Программист Нет файла v8 Россия Бесплатно (free) Управление проектом

Разговоров про облака в ИТ-индустрии очень много в последнее время. Часто споры сводятся к тому, как правильно считать стоимость владения.

05.12.2018    3104    zhogov    15       

Мой опыт: Внедрение ERP системы 14

Статья no Нет файла v8 1cv8.cf Бесплатно (free) Управление проектом

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

03.12.2018    4558    dinopopyys    21       

Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git 265

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Инструментарий разработчика Управление проектом

Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою "копию" проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).

18.10.2018    33128    stas_ganiev    72       

Как проектировать отчетность 12

Статья Программист Бизнес-аналитик Пользователь Руководитель проекта Нет файла v8 УУ Бесплатно (free) Техническое задание Управление проектом Управленческие

Эта статья написана по итогам мастер-класса для руководителей проектов и аналитиков, в рамках перехода на продуктовый подход к разработке. В ней мы постарались ответить на вопрос: "Как снизить риск потери доверия к данным информационной системы со стороны топ-менеджмента, грамотно выстроив процесс проектирования и разработки отчетности?"

16.10.2018    5194    weissfeuer    2       

"Гнем" Waterfall 17

Статья Пользователь Руководитель проекта Нет файла v8 ERP2 Бесплатно (free) Управление проектом

В прошлой статье (https://infostart.ru/public/898904/) мы поговорили о проблематике разных методик управления проектами – традиционный Waterfall и ныне модный Scrum. Но каких-то конкретных рекомендаций пока не дали. В рамках этой статьи поговорим о том, как же синтезировать эти подходы в то, что можно использовать в работе. Статья построена на примерах из практик ВЦ «Раздолье». Автор статьи директор по развитию ВЦ «Раздолье» Андрей Мироненко.

04.10.2018    5055    1СERP    9       

Проектирование архитектуры и модификация программных продуктов как технология в сложных проектах системной интеграции и автоматизации на базе 1С: СППР 52

Статья no Нет файла v8 1С:Франчайзи, автоматизация бизнеса Бесплатно (free) Управление проектом Интеграция СППР

Как сделать проектирование функциональной архитектуры ПО технологией. Цель - устранить ряд типовых проблем на сложных проектах. Как использовать для решения этих задач 1С система проектирования прикладных решений (СППР). Статья полезна для директоров франчайзи, системных интеграторов, руководителей проектов, архитекторов и консультантов.

03.10.2018    9126    roman72    19       

Место гибких методов управления (Agile) в практике 1С 20

Статья no Нет файла v8 ERP2 УХ Бесплатно (free) Управление проектом

Всякое описание тех или иных методик управления проектами является достаточно малоценным, если мы ведем речь об абстрактных проектах. Одно дело – проект строительства дома, другое проект автоматизации. Но даже этого недостаточно – автоматизация бывает весьма разной – делаем ли мы систему «с нуля» или адаптируем готовое решение под конкретного заказчика, сколько заказчиков у данной системы – один или множество и пр., пр., пр.. В итоге даются некие универсальные принципы, которые на практике бывают мало применимы и даже вводят людей в заблуждение. Попробуем поговорить о конкретике - но сразу предупреждаем что это субъективный взгляд на проблему от лица ВЦ "Раздолье". Автор статьи директор по развитию ВЦ "Раздолье" Андрей Мироненко.

05.09.2018    7367    1СERP    3       

Управление отделом разработки с помощью "1С:СППР" 51

Статья Программист Нет файла v8 Бесплатно (free) Управление проектом СППР

У многих компаний возникают сложности с выбором системы управления задачами. Андрей Пашков на примере своей компании рассказывает о возможностях решения 1С:СППР. Также в статье рассмотрены проблемы, возникающие при разработке программного обеспечения, и описаны пути их решения с помощью 1С:СППР.

20.08.2018    10050    pau74    9       

CI/CD для 1С - миф или реальность? 77

Статья Программист Нет файла v8 Бесплатно (free) Управление проектом

Разберём плюсы и минусы применения практик CI/CD с учетом ограничения технологической платформы 1С:Предприятие.

02.07.2018    16928    comol    54       

А стоит ли затевать? Или каких результатов можно достигнуть, автоматизировав производство? 7

Статья no Нет файла v8 ERP2 1С:Франчайзи, автоматизация бизнеса Россия УУ Производство готовой продукции (работ, услуг) Бесплатно (free) Управление проектом

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

29.06.2018    5382    Апрель-С    1       

Управление проектами внедрения 1С:ERP 77

Статья no Нет файла v8 ERP2 Бесплатно (free) Управление проектом

Тема статьи - «Управление проектами автоматизации 1С:ERP». В этой фразе хотелось бы поставить ударение на 1С:ERP. Почему? - Потому что 1С:ERP – это достаточно сложный комплексный продукт. - Проекты, которые мы делаем, зачастую охватывают все отделы и службы предприятия. - Здесь, в отличие от того же УПП, требования немного меняются – речь идет уже не об учете, а о планировании, об управлении ресурсами, что само по себе является более сложной темой. Об этом я и постараюсь рассказать.

21.06.2018    12826    andironenko    16       

История одного проекта ERP 9

Статья Программист Бизнес-аналитик Пользователь Нет файла v8 ERP2 Бесплатно (free) Управление проектом

Любопытная история одного проекта ERP, успешного - с одной стороны, провального - с другой.

02.05.2018    6935    papche    32       

Как правильно купить 1С 13

Статья no Нет файла v8 1cv8.cf Бесплатно (free) Управление проектом

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

23.03.2018    11746    raiml    27       

Автоматизация торговой деятельности как путь к лидерству на рынке 5

Статья Программист Бизнес-аналитик Бухгалтер Нет файла v8 ERP2 Оптовая торговля, дистрибуция, логистика Россия Бесплатно (free) Управление проектом

В настоящей статье мы поделимся опытом автоматизации торговой деятельности и постараемся показать, как с помощью автоматизации повысить эффективность компании.

27.12.2017    7874    Апрель-С    0       

Внедрение 1С: ERP. Подготовка к внедрению. Внимание к человеческим ресурсам 13

Статья Пользователь Руководитель проекта Нет файла v8 ERP2 Бесплатно (free) Управление проектом

«1С:ERP Управление предприятием 2» – современное программное решение для построения автоматизированных систем управления деятельностью предприятий, компаний. Невысокая стоимость владения и возможность получения существенного экономического эффекта стимулирует предприятия на её использование. Но необходимость внедрения автоматизированных систем управления иногда вызывает у руководства компаний тревогу. Хорошо, если в компании есть опытные специалисты, которые уже внедряли ERP на своих прошлых местах работы или имеют опыт его использования. Но таких на рынке труда пока немного. Поэтому руководители, которые решают проблемы повышения эффективности деятельности компании и интересы которых непосредственно затрагивает автоматизация систем управления, задаются вопросами: как подступиться к реализации и как разобраться в сложной «компьютерной игрушке»?

04.09.2017    13896    user742600    5       

Разбор полетов, или как на Партнерском форуме ругали 1С:Управление холдингом и что из этого вышло 64

Статья Пользователь Руководитель проекта Нет файла v8 УХ Россия Бесплатно (free) Управление проектом

На партнерском форуме 1С один из партнеров разместил пост, в котором подверг критике реализацию продукта 1С:Управление холдингом в целом и команду разработки в частности.

02.08.2017    22557    WanGoff    73       

Экспериментальный проект «первая международная типовая» 85

Статья Программист Нет файла v8 Бесплатно (free) Управление проектом

Большинство пользователей, разработчиков и партнеров привыкли видеть продукты на Платформе "1С:Предприятие" только на русском языке. Но для зарубежных рынков они не подходят. С какими проблемами сталкиваются специалисты по автоматизации предприятий за пределами русскоязычных стран, и как их удается решить, в своем докладе на Infostart Event 2016 рассказал исполнительный директор дочернего предприятия Фирмы "1С" в Бухаресте Алексей Снитковский.

16.07.2017    18838    Snitkovski    105       

Внедрение автоматизированной системы управления работами в сервисной компании 15

Статья Пользователь Нет файла v8 ERP2 1С:Франчайзи, автоматизация бизнеса Россия УУ Производство готовой продукции (работ, услуг) Бесплатно (free) Управление бизнес-процессами (BPM) Управление проектом

В статье рассматривается пример того, как мы создавали автоматизированную систему управления работами в сервисной компании. В начале мы провели анализ бизнес-процессов заказчика, которые существовали только в головах его ключевых исполнителей. Единый документооборот в сервисной компании отсутствовал, каждый руководитель подразделения вел свои данные в отдельных Excel файлах, на границах подразделений возникала потеря информации и документов, процедура управления работами превращалась в постоянный кошмар для руководителей. Для успешного решения задачи необходимо было провести предварительную серьёзную подготовку. В результате этой работы мы разработали методику, в которой подробно описали бизнес-процессы, определили оптимальный порядок действий, установили порядок передачи ответственности от исполнителя к исполнителю и порядок контроля выполнения работ. После этого внедрение автоматизированной системы стало обычным «делом техники».

29.06.2017    9930    Soliton    2       

Особенности внедрения 1С: WMS логистика. Управление складом 8

Статья no Нет файла v8 1cv8.cf УУ Учет ТМЦ Бесплатно (free) Управление проектом

«1С: Предприятие 8. WMS Логистика. Управление складом» является одной из востребованных программ, применяемых для автоматизации системы управления складами. Вместе с тем, wms логистику Управление складом нельзя рассматривать как панацею от всех проблем на складе. Без такой автоматизации вполне могут обойтись предприятия, у которых площадь складов не достигает 1000 м2, которые имеют относительно небольшой товарный перечень (до 100 SKU) или это товар, который имеет сравнительно невысокую скорость оборачиваемости.

27.04.2017    10439    user742600    6       

Такие разные франчайзи. Часть вторая: Особенности реализации крупных проектов, Глава 2. Проектная технология при внедрении «1С:ERP» 77

Статья Пользователь Руководитель проекта Нет файла v8 ERP2 Бесплатно (free) Управление проектом

Очередная статья о бизнесе франчайзи 1С. Здесь мы постараемся рассказать о том, какой подход используется при относительно крупных проектах, в частности, при внедрении «1С:ERP», дадим описание этапов проекта, укажем, какие риски имеет каждый этап работ, расскажем, уместны ли при внедрении «1С:ERP» такие модные методики, как Agile, автоматизированное тестирование и пр. Автор статьи Андрей Мироненко.

24.04.2017    26504    1СERP    85       

Автоматизация предприятий с проектным позаказным производством на 1С:ERP 8

Статья Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта Нет файла v8 ERP2 УУ Производство готовой продукции (работ, услуг) Бесплатно (free) Бухгалтерский учет Управление проектом

Внедренческий Центр "Раздолье" продолжает цикл статьей по автоматизации разных видов бизнеса. Очередная статья посвящена управлению предприятием, которое выполняет проектные/позаказные работы. Автор статьи Мироненко Андрей, руководитель проектов компании.

03.03.2017    15160    1СERP    4       

Концепция автоматизации многопрофильного Холдинга в системе АУБ на платформе 1С 8

Статья Программист Бизнес-аналитик Пользователь Нет файла v8 Россия УУ Финансовый учет и бюджетирование (FRP) Управление холдингом (CPM) Учетная политика Бесплатно (free) Техническое задание Управление проектом Управленческий учет (прочее) Бухгалтерский учет

Это схема и обоснование концепции системы АУБ (Автоматизация Управления Бизнесом, авторская разработка) для автоматизации многопрофильного холдинга на платформе 1С. Система изначально проектировалась для многопрофильного холдинга, что определило особенность ее концепции - три уровня автоматизации. Система АУБ не является готовым решением, это определенная концепция (видение, подход) к автоматизации управленческого учета и расширяемый базис наработок реализованных в этой концепции. В конкретном проекте автоматизации, с учетом специфики управления предприятием, делается индивидуальная «функциональная сборка» с использованием готовых, существенно модифицируемых и заново разрабатываемых подсистем. Таким образом, концепция и расширяемый базис наработок системы АУБ, представляют своего рода конструктор, из которого компонуется решение в конкретном проекте, при этом заново разрабатывается лишь функционал, отражающий новую специфику. На практике концепция использовалась, например, в отраслевом решении для производства ЖБИ и добычи нерудных материалов.

02.03.2017    14694    aaw    3       

Проектное внедрение прав доступа в системах 1С 18

Статья Системный администратор Нет файла v8::Права 1cv8.cf Бесплатно (free) Техническое задание Управление бизнес-процессами (BPM) Управление проектом

Для крупных предприятий я рекомендую разрабатывать "Техническое задание на права доступа в системе 1С Предприятие 8". Данная работа сопровождается комплексным подходом по аналогии проектного внедрения. Рассмотрим порядок работы, переход от исследования к ТЗ и критерии упрощения документации.

17.01.2017    14785    Gavrik    4       

Технология внедрения ERP. Ключевая роль этапа «Моделирование» 15

Статья Пользователь Нет файла v8 ERP2 Бесплатно (free) Управление проектом

Большинство внедрений 1С:ERP (Управление торговлей 11, Документооборота) эффективно работают при организации проектирования от возможностей типовой конфигурации. В статье описаны сутьи особенности такого подхода

08.09.2016    10556    FFelix    1       

Автоматизация фирмы франчайзи 1С 76

Статья Пользователь Нет файла v8 1С:Франчайзи, автоматизация бизнеса Бесплатно (free) Управление проектом

Может, будет кому полезна история автоматизации нашей фирмы франчайзи 1С. Постараюсь также коротко изложить требования к системе на сегодняшний день.

12.08.2016    17307    zhyhallo    19       

WMS (Управление торговлей 11.1, УТ 11.1) практика одного внедрения 74

Статья Бизнес-аналитик Нет файла v8 УТ10 Россия БУ НУ УУ Windows Учет ТМЦ Бесплатно (free) Управление проектом

Речь пойдет о внедрения WMS системы на базе типового функционала Управление торговлей 11.1 для автоматизации склада готовой продукции. Цель данной статьи - рассказать эволюцию принятия решения, предпроектного обследования. Описать аргументы именно той реализации, которая была выбрана в итоге. И, конечно, результаты внедрения. Кому интересно, прошу под кат …

08.06.2016    21329    Ulus    64       

10 шагов для создания стартапа на основе 1С: Предприятие и Asp.Net MVC 49

Статья Системный администратор Программист Пользователь Нет файла v8 Windows Бесплатно (free) Управление проектом

Публикация является отголоском проекта Доминикана, начавшегося 3 года назад в Таиланде. Выход этого материала примерно совпал с годовщиной, когда организаторы только объявили о своих намерениях. Пользуясь случаем, передаю привет всей команде «Доминиканы», с которой провели одни из лучших, ярких и запоминающихся месяцев в жизни. Делили между собой работу, крышу над головой и пищу, проводили вместе досуг. При работе в Таиланде мы столкнулись с ограничениями 1С по визуализации нестандартных объектов и пытались устранить эти ограничения Html-вставками. Html-скрипты работали внутри управляемых форм 1С и требовали множества усилий. Именно в тот момент мне захотелось сделать инструмент, снимающий описанные ограничения с наименьшими трудозатратами и максимальным эффектом. Несколько лет ушло на обдумывание гипотезы и ее проверку на реальных проектах. Появилось руководство, которым делюсь с вами.

19.04.2016    16676    Elisy    26       

Подготовка к управлению проектами в 1С:Документооборот 15

Статья Пользователь Нет файла v8 ДО УУ Windows Документооборот и делопроизводство Бесплатно (free) Управление проектом

В рамках подготовки доклада "Использование 1С:Документооборот для управления проектом" для конференции 2015 подготовил базу 1С:Документооборот для демонстрации на живом примере.

22.12.2015    15466    vlush78    2       

Опыт успешного внедрения УТ 11 в небольшом подразделении большой компании 24

Статья Программист Бизнес-аналитик Пользователь Нет файла v8 УТ10 Розничная и сетевая торговля (FMCG) Россия УУ Розничная торговля Бесплатно (free) Управление проектом Бухгалтерский учет

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

14.12.2015    19452    ivanov660    16       

Реализация единой учетной системы холдинга (или "Как мы спасали мир") 24

Статья no Нет файла v8 1cv8.cf 1С:Франчайзи, автоматизация бизнеса Россия БУ УУ Windows Бесплатно (free) Управление проектом

Проект по переходу с одной учетной системы на другую даже для небольших организаций - достаточно серьезное событие. А как реализовать такой проект для холдинга (50+ юр. лиц)? Про наш опыт проведения именно такого проекта мы и попытаемся Вам рассказать. Детально описать в подобной статье всю реализацию проекта невозможно. Углубляться в технические дебри тоже не хочется, поэтому приводится общее описание проекта "в прозе". Главное, что есть чем поделиться с теми, кто хотел бы узнать общую логику реализации подобного проекта.

19.10.2015    12366    Lars Ulrich    23       

Внедрение электронного документооборота в большой компании 49

Статья no Нет файла v8 ДО Россия Windows Документооборот и делопроизводство Бесплатно (free) Управление проектом

Речь пойдет о тех методах, которые помогли мне успешно внедрить электронный документооборот в нескольких компаниях. Я постараюсь представить их в усредненном виде, чтобы вы могли пользоваться ими не только в электронном документообороте, но и также при внедрении любых других проектов. Все, что я расскажу – это всего лишь рекомендации. Потому что в каждой компании свой «огород», свои руководители.

05.06.2015    11096    alexbourne    12       

Хроники внедрения ERP. Часть1 27

Статья Программист Нет файла v8 ERP2 Бесплатно (free) Управление проектом

Это далеко не первый внедренный мной проект, и, надеюсь, не последний. Интересен он тем, что внедрения ERP для многих обладают пока еще тайнами новизны. На многочисленных семинарах ставится упор на планировании производства, бюджетировании и прочих вещах, опуская многие, более первичные подсистемы, с которыми внедренец столкнется гораздо раньше. Хочу поделиться впечатлениями и немного облегчить тропу вслед идущим.

05.04.2015    24648    milkers    40       

Организация эффективной техподдержки 1С внутри компании 68

Статья no Нет файла v8 1cv8.cf Windows Бесплатно (free) Управление проектом

Как сделать общение с пользователями эффективным, правильно организовать работу программистов 1С и перестать быть "шестируким Шивой"

10.03.2015    34307    adapter    36       

Git-flow в 1С (Система контроля версий) 207

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Управление проектом

Статья является переосмыслением и дополнением к предыдущим трудам "Как мы управляем версиями (GIT+1C)" и "Как мы управляем версиями и тестированием 1C 8.3 (часть 2)". Как оказалось, многие не понимают, зачем такие сложности и почему? Попытаюсь ответить на эти вопросы и описать подход git-flow.

03.11.2014    52342    pbazeliuk    88