Перед тем как начать
Разработчики 1С проделали огромную работу и прошли долгий путь. На сегодня мы имеем широкий набор средств, для достаточно быстрой реализации разнообразных решений под разные операционные системы. Масса готовых разработок зачастую является лучшим выбором для малого и среднего бизнеса. Данный продукт тестируется, сопровождается и широко документирован. Читаешь руководство разработчика и диву даёшься – насколько добротно всё продумано.
Как и в любом огромном проекте, никуда не денешься от здоровенной инерции, да и бывают неудачные решения или обделённые вниманием вещи.
Мои пять копеек про «тормоза 1С-ки»
Я стою перед доской (аджайл), и мой взгляд цепляет пять задач с разными формулировками, но одинаковой причиной. Вот одна из этих задачек, наиболее примечательная:
В обработке загрузок прайсов, остатков и новинок — выдается ошибка — Конфликт блокировок… и не могу загрузить новинки…
Так получилось, что я редко сталкивался с «чистыми» конфигурациями. В основном это переработанные или сильно переработанные конфигурации. С одной стороны, можно конечно ставить крест на организациях-владельцах таких конфигураций, и просто с ними не работать. С другой стороны в таких компаниях, как правило, больше «движухи» и работать бывает интереснее.
В общем, вы увидели уже эти два слова, да? Интересно, у кого какие ощущения были, когда вы столкнулись с этим в свой первый раз? Что вы тогда ответили, когда у вас спросили необходимое количество времени на эту задачу?
Печаль не в том, что есть такое явление, а в том, что когда я, например, первый раз с этим столкнулся, я вообще не знал с чего начать – в 1С-ке нет штатного средства для борьбы с этим недугом. Хотя явление довольно частое. Я думаю, многие со мной согласятся, что в меню конфигуратора должен быть пункт, посвящённый этой проблеме.
На сегодня мы имеем средство, но оно где-то в недрах «Центра управления производительностью», который входит в состав «Корпоративного инструментального пакета», который стоит, в общем-то недёшево. Кроме того, документация на него доступна только по подписке ИТС (Техно достаточно). Есть, конечно, сторонние средства, например вот это.
Мне известно, что в крупных растущих компаниях разработчики 1С прикладывают массу усилий, чтобы могли комфортно работать сотни пользователей. Даже там, где в отделе 1С каждый второй сертифицированный специалист, показатели суммарного времени на обычных блокировках достигают устрашающих значений. Я сам работал в подобной организации, общался с коллегами, которые приходили из других крупных компаний. Не претендую, что везде так, но мне представляется следующая картина: масса пользователей переваливает за некий порог, после которого уже ничего не помогает, даже корпоративный инструментальный пакет. Дальше два варианта.
Вариант 1. Часть разработчиков 1С заменяют на разработчиков SQL. Из конфигурации выдирается всё, что связано с БД. Пишется новая БД, где содержится вся логика. А формы общаются с новой БД только посредством вызова хранимых процедур. Обмен с другими БД налаживается через тот же Service Broker. В результате это всё работает очень быстро. Остаётся одна неприятная мелочь — из 1С-ки нельзя передать в хранимую процедуру таблицу значений. Вместо этого передают XML или JSON.
Здесь есть продолжение. Когда приходит время покупать очередной пакет лицензий на 300 рабочих мест, возникает понимание, что и разработчики 1С стоят недёшево. В результате возникает идея заменить «морду» 1С на PHP или C#.
Вариант 2. Компания пытается внедрить SAP.
А всё почему? Потому что я стою перед доской, пью чаёчек, и думаю, было бы неплохо решить между делом пару задачек по блокировкам. Но неизвестно сколько это времени займёт, а у меня других задач полно.
Обмен данными и конфигурации
Модульность лучше, чем монолит. Так? Хорошо, когда получается при разработке разбить целое на части. Когда в 1С работает 20+ пользователей, уже было бы неплохо развести всех по разным углам. Сделать так, чтобы у каждого направления была своя конфигурация. Например, у склада своя, у контента своя, у курьеров своя и у бухгалтерии, понятно, тоже. Так и блокировок меньше. Много маленьких конфигураций лучше, чем одна здоровенная. Развивать проще и т. п.
Я уверен, в будущем так и будет, заходишь в магазин, видишь разработки разных компаний, набираешь себе маленькие конфигурации, какие требуются под бизнес, соединяешь в систему и пользуешься.
Так, что мне понадобится? Заказ клиента, кассы онлайн, банк-клиент Тинькофф, банк-клиент Сбер, возвратная тара… нет, возвратная тара не нужна…
У меня реально уходит дофига времени, чтобы состыковать конфигурации, даже которые крутятся на одной версии платформы. Я не говорю про состыковку типовых конфигураций, в которых уже написан обмен. Хотя и здесь есть порой чему удивиться. Например, если бухгалтер загружает документы к себе в базу раз в квартал (вот так бывает удобней человеку), то время выгрузки и загрузки измеряется часами. Из одной типовой в другую типовую. Я как-то раз посматривал за обменом, который длился более десяти часов. А представляете, если бы возникла какая-то ошибка? Это ты устранил, поставил снова загрузку… бац! Опять.
Такое бывает. Например, ставлю чисто ради статьи выгрузку из типовой УТ11.3 через универсальный формат с настройками по умолчанию (Другая программа…). Спустя три часа:
Во время отправки данных возникли ошибки(см. журнал регистрации).
Путь к менеджеру обмена не указан (пусто, значит используется менеджер по умолчанию). Смотрим журнал:
Событие: Отправка.
Объект: Статья движения денежных средств, Убыток от курсовых разниц (e1cib/data/Справочник.СтатьиДвиженияДенежныхСредств?ref=ae8500259075533411e7205499471b7a).
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(4605)}:
Не найдено ПОД для объекта метаданных.
Объект метаданных:.
ВызватьИсключение ТекстОшибки;
Что это? Почему? За что? Допустим, что ПОД – это правила обмена данными…
Ничего не хочу говорить про обмен с интернет-магазином. Просто дам пару советов, для тех, у кого дофига номенклатуры и/или свойств, вдруг кто не знает: чтобы он не «молотил» часами, первым делом нужно отключить передачу картинок. Картинки нужно закачивать отдельно на ресурс сайта (например, FTP-сервер картинок). Для этого делается регламент, в нём отслеживаем изменения в картинках (например, по версии данных) и передаём. В разных компаниях я видел разные реализации, но суть такая.
Итак, состыковка прикладных решений. Существует специальная конфигурация «Конвертация данных 3.0». Однако, чтобы всё получилось, необходимо указать такую мелочь, как файл с текстом модуля «МенеджерОбменаЧерезУниверсальныйФормат» (для УТ11.3 модуль содержит 46+ тыс. строк кода). Где запрятан генератор этого модуля? А если у тебя новая пустая конфигурация?
Вы скажете — используй XML-сериализацию, кто мешает? А я думаю, вот было бы здорово: сделал в обеих конфигурациях одинаковые объекты, ткнул правой мышкой на каждом прямо в дереве конфигурации и выбрал в какую конфигурацию нужно передавать данные. А в модуле объекта пару событий на эту тему (Перед передачей данных, перед получением данных). И чтобы быстро передавалось. Правда, это всё где-то на грани фантастики. Это как полёт человека на Марс.
Тогда так. Вот было бы здорово, если бы функция «ПланыОбмена.ВыбратьИзменения» принимала максимальный размер выбираемой пачки. Не сразу всё, что там накопилось, а например пачку в 100 штук. На следующей итерации – ещё 100 штук. И так далее. Она и отрабатывать будет быстрее, если изменений много образовалось. И блокировать будет недолго.
Совместимо с 1С
Изобретать велосипед плохо. Особенно если не собирался этого делать. Вместо того, чтобы вкладываться в разработку собственного продукта, выгоднее купить готовое тиражное решение. Это может быть анализ продаж, подсистема логистики, там маршруты, адреса, курьерское приложение, да что угодно. Вот здесь описаны правила на возможность получить значок «Совместимо с 1С». Часто готовые решения предлагаются на базе отличных от 1С платформ. В правилах о таких решениях сказано немного:
К сертификации принимаются следующие группы программных продуктов:
...
8. программы, поддерживающие обмен данных с 1С: Предприятием на уровне файлов;
9. программы, имеющие другие способы взаимодействия с 1С: Предприятием (рассматривается индивидуально).
Общие требования
1. Программный продукт должен быть предназначен для тиражного распространения, и не иметь ориентации на конкретное внедрение.
2. Продукт должен иметь руководство в печатном виде.
3. В руководстве должно быть в явном виде описано взаимодействие продукта с 1С: Предприятием.
...
5. Все продукты, ориентированные на конечного пользователя, должны иметь средства установки.
6. При внесении исправлений или изменений в сертифицированный продукт разработчик обеспечивает соответствие измененного продукта требованиям, предъявляемым при сертификации. В случае внесения изменений, нарушающих требования сертификации, фирма «1С» имеет право приостановить действие сертификата.
Требования к продуктам, интегрированным на основе обмена файлами.
Программные продукты, интегрированные с системой “1С: Предприятие” на базе обмена файлами (загрузки / выгрузки) должны со стороны 1С: Предприятия использовать штатные средства 1С: Предприятия, предназначенные для работы с файлами формата TXT и DBF.
И всё. Разработчик решения получает значок. Ваш заказчик читает материалы стороннего продукта, видит что есть интеграция с 1С, покупает, а потом начинается «внедрение». Не редко за это нужно доплатить. Некоторые продукты содержат действительно простой способ интеграции, например внешнюю обработку или расширение конфигурации.
Есть же EnterpriseData? Это как раз тот инструмент, который и нужно применять для сопряжения с не 1С-ными решениями. Там уже учтено всё, что нужно. Если не учтено — как раз добавится в новую версию формата. Не надо никаких обработок для сопряжения с API, и тем более доработок конфигурации.
Если в стороннем решении и в конфигурации используется одна сущность, всегда возникают проблемы, связанные с объектной блокировкой. Встречал систему, в рамках даже её одной предлагалось пользователю со специальными правами решать, какие изменения сохранять, а какие нет. Я уж молчу про взаимодействие с 1С-иной.
А в другом решении чуваки решили не заморачиваться и просто выдают ошибку при попытке передать отредактированные данные.
Объектную блокировку требуется прям отдельно и подробно упомянуть в правилах. Иногда складывается впечатление, что не все разработчики мега-решений в курсе, что это вообще такое.
Но самое неприятное, когда лейбла «Совместимо с 1С» нет. А написано что-то вроде:
Есть типовая интеграция для 1С:
— Управление торговлей 10.3 и 11.3
— Комплексная автоматизация 2.0
— Управление производственным предприятием
— ERP
Я однажды получил такой ответ от техподдержки подобной компании, когда их обработка стала регулярно выдавать ошибку:
Компания X предоставляет типовую обработку для обмена данными между 1С: УТ и X на бесплатной основе…
Вот и весь разговор. Построже нужно с такими ребятами. Гайки бы подзакрутить. Интересно узнать у юристов — могут ли у себя на сайте кто попало писать, что у него есть «интеграция с 1С»?
Управляемые формы
Насколько классный конструктор по созданию управляемых форм! Есть недочёты (например штатную строку поиска нельзя использовать для всех табличек, или при отображении бывает всякое), но в целом создавать формочки очень удобно. Разгул творчества максимально ограничен. Разработчик защищён от ошибок проектирования интерфейса (можно только сделать слишком перегруженную форму). Они у разных разработчиков получаются одинаковые. Формочки получаются красивые. За это хочется сказать спасибо всем, кто это придумал. Ребята – это классно, так и должно быть.
Возможность это всё опубликовать и открывать в браузере – открывает широкие возможности и вообще, просто здорово. Есть некоторые недочёты, но со временем они уйдут.
То, что касается кода – так уж получилось, что архитектура управляемых форм замедлила разработку. У меня есть кое-какая статистика, в зависимости от разработчика и от назначения формы, если не учитывать простые, где нужно просто реквизиты на форму накидать – то замедление составляет где-то в 2-4 раза. Это касается только самих форм + асинхронность. Но с этим видимо ничего не поделаешь.
Иногда заказчика не устраивает, как это выглядит, допустим на мобильном устройстве. Тогда приходится отдавать изготовленные отдельно странички через HTTP-сервисы.
Из основного вроде бы всё
Я уверен, что ребята из 1С сами обо всём этом знают. Но, как я уже говорил в начале, большая инерционность продукта и сложность проблем не позволяет «это сделать прям щас».
До встречи в комментах!
Комментарии (149)
Neikist
11.01.2018 12:59+1Тогда так. Вот было бы здорово, если бы функция «ПланыОбмена.ВыбратьИзменения» принимала максимальный размер выбираемой пачки. Не сразу всё, что там накопилось, а например пачичку в 100 штук. На следующей итерации – ещё 100 штук. И так далее. Она и отрабатывать будет быстрее, если изменений много образовалось. И блокировать будет недолго.
Мы у себя реализовывали подобный механизм для обмена с мобилкой (тоже на 1с через планы обмена). Методу ВыбратьИзменения можно передать массив содержащий только часть данных, а массив можно получить из таблиц изменений. Выглядит в результате это так себе, но работает.pfihr
11.01.2018 20:20а запрос по изменениям с "первые н" не получается?
vis_inet
11.01.2018 20:28А как потом выбрать с N+1?
erwins22
11.01.2018 20:31Снять с регистрации.
vis_inet
11.01.2018 20:40Снять с регистрации
— возможна проблема, если выгрузка прервётся, а вся регистрация уже снята…erwins22
11.01.2018 20:45Снятие надо делать после выгрузки файла.
vis_inet
11.01.2018 20:52Да, поэтому вариант
а запрос по изменениям с «первые н»
не подходитerwins22
11.01.2018 21:00Почему?
Я выгружаю в ТЗ «первые н».
Выгружаю это все в файл.
После закрытия прохожу и удалитьрегистрациюизменений.vis_inet
11.01.2018 21:07При таком подходе встаёт вопрос — будет ли корректно воспринята такая частичная загрузка в целевую систему
Neikist
11.01.2018 21:12Ну ок, выгрузили в файл (впрочем с мобилкой файлы использовать очень странно, логично когда обмен напрямую через http), а файл кто то повредил или удалил. И что делать с потерянными данными?
vis_inet
11.01.2018 21:15Верно. Для надёжности регистрацию надо снимать только после получения от второй стороны подтверждения о загрузке выгруженных данных.
Neikist
11.01.2018 21:19Вот мы и вернулись к тому что все равно где то нужно фиксировать какие данные мы выгрузили и как то получать информацию что загрузка прошла успешно. И тут можно прикрутить что то свое, но лучше для упрощения все же платформенные методы использовать.
pfihr
11.01.2018 20:34удалитьрегистрациюизменений по обработанным в предыдущей пачке
Neikist
11.01.2018 21:14Для этого нужно получить подтверждение от мобилки что предыдущая пачка загружена, к тому же это может произойти не скоро, нужно хранить где то (либо ключи с мобилки возвращать) какие данные с регистрации снять. Да еще и убедиться что с прошлой выгрузки эти данные снова не менялись… В общем механизм тех же планов обмена с нумерацией сообщений и т.п. переизобретать. Зачем?
alexey-lustin
11.01.2018 14:01Читаю и удивляюсь очередной раз
Про тормоза
на доске 5 одинаковых карточек — ага походу канбан, так как был бы SCRUM — владелец продукта обязан бы взять PBI и FEATURE в работу на спринт, связав их с 5 тасками. вижу у вас в публикации TFS, значит вы знаете что такое PBI.
конфликт блокировок говорите — ну да, вне зависимости от языка программирования вам придется думать о блокировках и дедлоках, в пустой платформе без прикладного кода — блокировок то нету. написали прикладной код — конфликты блокировок появились… хм причина скорее всего в прикладном коде. Или опять виноваты абстрактные платформы — наверное плохой MSSQL и PostgreSQL
чистые решения без доработок — если система живет более 3-ёх месяцев и пользователи её используют, давно пора привыкнуть что дорабатывать придется, плагинами, патчами, расширениями ( на СиДиез, на PHP и на 1C — неважно). Чистая система бывает только в вакууме.
ServiceBroker как средство интеграции и хранимые процедуры — архитектурное решение из зоны 2000-2008: работать работает, но дорого и неподдерживаемо. Мне интересно как вы автотестирование будете на таком решении делать.
SAP — это для капитализации, а не для пользователей. Его покупают не чтобы внедрить, а чтобы капитализировать компанию.
- ERP на PHP мы уже видели, есть даже на Python — проблемы теже и и чаще еще хуже.
Все тормоза 1С связаны только с одной вещью — дефектами прикладного кода допускаемыми программистами. НУ и еще с неумением проектировать "нормальные" метаданные.
Делюсь цифрой — блокировки можно разрулить за 40 чавов в первый раз, второй раз за 24, третий раз за 16, финальный раз за 8. После 4 разруливаний следующие разруливания идут всегда за 8 часов включая тестирование через ТестКлиент и накат на продуктив.
Про обмен данными
Кто вам сказал что модульность это лучше чем монолит. Слово лучше опасное. Модульность просто другая. Живет по другим законам и в другой концепции.
Есть примеры компаний в которых 90+ конфигураций 1С, под каждое ЦФО — оно не лучше и не хуже, оно другое. Там много маленьких серваков 1С в горизонте, а не один большой сервер. И отдельное решение для интеграции и трансформации и это не КонвертацияДанных
И вообще неважно будет это монолит на PHP и микросервисы на PHP, или на С# — архитектура и проблематика будет одинаковая
Ну и вообще — не надо грузить обмены данных за квартал: снижается гранулярность до минут и секунд. А формат можно и EDI.
Кстати порционность изменений в ПланахОбмена — это насколько я помню уже имеющаяся давно функциональность, вплоть до "одного изменения". Главное транспорт данных выбрать не файлы и FTP, а использовать штатный сервис SOAP:GetMessages и т.д.
Про 1С совместимо
там есть отдельный пункт — не менее 20 продаж, то есть продукт должен иметь реальных пользователей
плюс продукт при сертификации проходит статический анализ кода
при выборе продукта 1С Совместимо стоит смотреть на поддержку последних версий платформы и linux. ну и сам сертификат проверять надо: он же может в 1997 году выдан был.
но на самом деле все эти маркетиновые заявления "МЫ интегрируемся с AmoCRM" — они как бы для любой технологии применительны: пока пилот не построишь не поймешь реально ли вообще это работает или нет. Mailchimp например — все указывают что умеют с ним интегрироваться, однако там же может быть 30-50 разных API объектов, и вот сколько из этих объектов задействовано неизвестно.
Про управляемый интерфейс в браузере
уже появились режимы полноэкранника и режим киоска, но в целом если заказчик озабочен эргономичным инерефейсом под одну или две операции, обычно на любой платформе делается SingleApp конструкция которая выполняет то что ему нужно и автоматический интерфейс убирается.
В порядке финала — все что вы описали — не имеет отношения к 1С как к платформе, а имеет отношения только к компетенциям людей её использующих. При переходе на C#, PHP, SAP вы поимеете теже проблемы что и сейчас.
Повышайте компетенцию людей которые стоят с вами перед доской ;-).
1div0 Автор
11.01.2018 14:38Что сказать. В основном с Вами согласен. Единственно только, там где я говорю о блокировках, обратите внимание — нигде не сообщаю что это как-то зависит от 1С. Наверное много текста в статье.
В данный момент моему заказчику блокировки не мешают и он не готов на это потратить даже 8 часов, не говоря уже про 40.
Вы для анализа блокировок чем пользуетесь?EvilBeaver
12.01.2018 00:41Как правило, головой и жизненным опытом. Косяки, вызывающие избыточные блокировки, в-основном типичные и вызваны одним и тем же набором причин. Набив на них руку, вы уже беглым взглядом на код можете их выискивать.
1div0 Автор
12.01.2018 09:10Да Вы гений. Наверное проверка синиаксиса тоже не нужна.
Вот прибегает к Вам человек, мол вот такая ошибка появляется при записи документа.
И на что Вы собрались беглый взгляд бросать? Обработчики записи формы документа? Модуля объекта? А если и там всё "чисто"?
1div0 Автор
11.01.2018 14:47не надо грузить обмены данных за квартал: снижается гранулярность до минут и секунд
Было бы неплохо. А ещё было бы неплохо, если бы обмен работал побыстрее.Gamm
11.01.2018 18:37А что не так с обменом, точнее где проблема которую нельзя решить?
Выборка изменений тормозит — выбирайте изменения по таблицам изменений.
С записью изменений проблем не видел.
С транспортом проблема? Есть отдельные системы для обеспечения гарантированного транспорта.1div0 Автор
12.01.2018 09:12Так речь шла из одной типовой в другую. Это как бы уже готовое решение. Почему пользователь должен ещё что-то решать?
vis_inet
12.01.2018 09:14При обмене между типовыми через XML за большой период времени объём выгружаемых данных действительно получается достаточно большой.
Тут можно только чаще делать обмен…
1div0 Автор
12.01.2018 10:11С обменом полный порядок. Но можно улучшить. Даже если ничего особенного не менять, можно повысить скорость обмена в n-раз. Просто разбив на n потоков.
Попробуйте написать такой код, используя менеджер регистрации изменений. Получилось?
Теперь покажите пожалуйста всего одну строку — где удаляется регистрация изменений и чему у Вас равен номер сообщения?Gamm
12.01.2018 10:58Тому номеру который требуется исходя из логики конкретного решения.
Также удаление регистрации изменений можно выполнять не только по номерам сообщений, но и по массиву данных, по которым требуется удалить регистрацию. И, с учетом корректно сформированного массива, для этого также потребуется всего одна строчка кода. Таблицы изменений, номера сообщений, регистрация изменений это абстракция платформы которая упрощает работу с механизмом, но если эта реализация вас не устраивает всегда можно реализовать свой механизм обмена, не используя типовые механизмы или используя их частично.
Также, для высоконагруженных систем или если производительность работы объектов платформы недостаточна для нужного процесса, всегда можно спуститься до уровня базы данных и решить задачу прямой записью в СУБД — это позволяет решить все возникающие проблемы с производительностью обмена.
Для меня, средств программного комплекса 1С-SQL, достаточно для решения любых вопросов с обменом.vis_inet
12.01.2018 11:12всегда можно спуститься до уровня базы
правда лицензионное соглашение прямо запрещает этоGamm
12.01.2018 17:17Спорное ограничение, которое противоречит действующему законодательству. Также есть коммерческие инструменты которые используют в своей основе прямой доступ к базе 1С ( 1С QlikView connector например), если у фирмы 1С не возникает к ним вопросов, то про остальных и речи нет.
1div0 Автор
12.01.2018 11:42Тому номеру который требуется исходя из логики конкретного решения
Это Вы в уме прикинули. Как нибудь, всё-таки попробуйте написать код параллельной передачи данных.
Если хотите, можно здесь в комментах попробовать.
Я за конструктив. Вполне может быть, что я где-то ошибаюсь. Пока нового ничего не услышал. А было бы здорово получить какое-то новое понимание того, как правильно делать.Gamm
12.01.2018 17:11У меня есть реализованный обмен где выгрузка была распаралелена через выполнение фоновых заданий. Алгоритм в кратце:
Разбиваем обмен по сущностям — xml строка по выгрузке каждого объекта метаданных формируется отдельно.
Выборку изменений используем только для присвоения номера сообщений текущим записям в таблицах изменений.
Выгрузку проводим по каждому объекту метаданных запуском отдельного фонового задания с указанием номера сообщений для выборки.
Возвращенные строки XML склеиваем в результирующий файл обмена.
1div0 Автор
12.01.2018 22:07Хорошо работает?
Смотрите: вот в поток 1 выбрал 100 изменений. Им допустим был присвоен номер сообщения 51.
Вот поток 2 выбрал ещё 100 изменений. Им бы присвоен номер сообщения… какой? 52?
Ок. Допустим 52. Поток 2 закончил работу. Вызвана функция УдалитьИзменения(52), которая благополучно удалит и изменения с номером 51.
Поэтому я и спросил ранее про номер сообщения.Gamm
12.01.2018 22:17И первый и второй поток выбирают изменения для сообщения 51 — в моем случае распаралеливалась выборка данных. Удаление регистрации в данном случае никаких конфликтов не вызывало.
1div0 Автор
14.01.2018 11:43Так а в чём плюс такого подхода? Почти всё время передачи занимает непосредственно формирование сообщения и его чтение. Это и нужно параллелить.
1div0 Автор
14.01.2018 11:57Я понял. Вы получаете выборку, запускаете потоки на формирование нескольких сообщений, потом ждёте окончания завершения каждого, потом склеиваете и передаёте на ту сторону. А там наверное снова делите на части, запускаете потоки на чтение частей сообщения, ждёте окончания и так далее.
Я делаю проще: каждый поток на передачу делает выборку и формирует сообщение. Просто в теле сообщения есть информация по своей нумерации.vis_inet
14.01.2018 12:24Получается, что у вас загрузка полученного файла нестандартная?
1div0 Автор
14.01.2018 12:35А что поделать? Загрузка процентов 65-70 времени занимает от всей передачи.
Но это только там, где стояла задача по скорости. В основном стараюсь классические схемы применять, строго по букве руководства, второй том.
1div0 Автор
11.01.2018 14:48Просто поставлю две цитаты рядом:
порционность изменений в ПланахОбмена — это насколько я помню уже имеющаяся давно функциональность
Мы у себя реализовывали подобный механизм для обмена с мобилкой (тоже на 1с через планы обмена). Методу ВыбратьИзменения можно передать массив содержащий только часть данных, а массив можно получить из таблиц изменений. Выглядит в результате это так себе, но работает.
1div0 Автор
11.01.2018 15:26все что вы описали — не имеет отношения к 1С как к платформе
Мне кажется Вы не очень внимательно прочитали просто.laughman
11.01.2018 17:30Просто он дилер 1С.
А еще, для меня фразы типа «Все тормоза 1С связаны только с одной вещью — дефектами прикладного кода допускаемыми программистами. НУ и еще с неумением проектировать „нормальные“ метаданные.» пахнут маркетингом. 2й свежести.alexey-lustin
12.01.2018 09:59Фу как не культурно. Лично персонально Я дилером 1С не являюсь. Своим комментарием я в очередной раз предлагаю убрать слово 1С оставив остальные тезисы критики. И все тезисы критики будут подходить для любого фреймворка и любой технологии.
1div0 Автор
11.01.2018 16:36И отдельное решение для интеграции и трансформации и это не КонвертацияДанных
Про это было бы интересно по подробнее. Что за решение?alexey-lustin
12.01.2018 10:02На выбор — WSO2, IBM BlueMix, Axelot Data Integration… есть примеры использования Shutle.ESB, BizTalk, а также облачных Microsoft Flow и Zapier
Есть даже ZatoESB интеграция для 1C
Про RabbitMQ говорить не буду — он просто транспорт, а трансформацией не занимается.
Segate
11.01.2018 14:55С точки зрения блокировок: Есть системы с ~5000 одновременных пользователей(25к в целом)
и они работают и проблем с блокировками не испытывают. но там каждый запрос, и каждая процедура проходит ревью на предмет избыточных блокировок.
Так что я пришел к выводу, что в большинстве случаев «специалисты 1с» не особо заморачиваются и дергают данные довольно бездумно, а это порождает те самые пресловутые «Блокировки».1div0 Автор
11.01.2018 15:07В 1С запросы бывают только на чтение. Запросы на запись изолированы от разработчика.
каждый запрос, и каждая процедура проходит ревью
«специалисты 1с» не особо заморачиваются и дергают данные довольно бездумно
Я бы так не сказал. Давайте напишем:
ДокументОбъект.Записать();
Теперь проведите ревью этого кода. Ничего страшного не видно?
Давайте выполним с записью запросов к базе. Похоже мы дёрнули бездумно много данных.
Я же пишу про то, что инструмент нужен, простой и доступный, для поиска и анализа блокировок.alexey-lustin
11.01.2018 15:27Автоматическая проверка конфигураций он называется — если из бесплатных.
1div0 Автор
11.01.2018 16:10нужен, простой и доступный, для поиска и анализа блокировок
ek159ea
11.01.2018 16:38Как Вы себе представляете работу такого инструмента, как в Вашем скрине?
В простом случае, например, у меня есть блокировки, а у Вас на тех же данных нет, что даст такой инструмент? Что он покажет?1div0 Автор
11.01.2018 16:49Есть вот замер производительности. Он пишет происходящее в отлаживаемом сеансе. Просто нажал, поработал, отпустил, изучаешь результат.
Есть технологический журнал — он пишет то, что происходит во всех сеансах.
Собственно, ничего нового я не ожидаю. Должно показать, что Вы или кто-то ещё ожидали там-то на блокировке столько-то, в другом месте — столько то. Может быть также — нажал, подождал, отпустил, изучаешь. Тыкаешь в строку и видишь причину (или список причин), из-за которого происходило удержание на блокировке.
Что-то такое.ek159ea
11.01.2018 16:57ИМХО, анализ блокировок не является функцией среды разработки.
Скорее относится к СУБД и сильно от этого зависит.1div0 Автор
11.01.2018 19:17Вы большой молодец. Еслиб мог поделиться шоколадкой, угостил бы. Поставлю плюсик тогда.
Вот вам инструмент БД показал, что запрос, что-нибудь вроде "INSERT INTO ##T436(_Fld0298, _Fld0292)… и так далее блокируется такого же вида запросом. Я знаю MS SQL вам даже визуальную схему нарисует. И чего дальше?
А управляемые блокировки?
Да и почему не иметь всё в одном месте? Особенно если взаимодействие с кодом не помешает.
Dementor
13.01.2018 22:13Конфигуратор — это комплексный продукт, который предназначен не только для разработки, но и для отладки (это в 7.7 были разные программы). Я тоже не вижу особых проблем с настройкой технологического журнала напрямую из конфигуратора с последующим анализом накопленной информации. Обеими руками за такую фичу!
VSOP_juDGe
11.01.2018 17:49А от Гилева сервис чем плох?
1div0 Автор
11.01.2018 18:54Этот сервис хорош. Поэтому и привёл его как пример стороннего решения на эту тему.
Но в нём результаты не сразу отображаются. Иногда на следующий день только можно что-то увидеть. Плюс установка двух конфигураций. Плюс их настройка.
Хотелось бы типа такого же прямо в среде разработки. И чтоб взаимодействовало с кодом в модулях и с объектами.
Если даже стажёр начнёт находить источники блокировок, я уверен, выиграют от этого многие.VSOP_juDGe
12.01.2018 09:40Но эта проблема не стоит у подавляющего большинства клиентов 1с, у которых до нескольких десятков человек в базе.
Я согласен, что инструмент был бы полезен, но надо понимать, что у 1с другие приоритеты.
alexey-lustin
12.01.2018 10:10Я же сознательно указал статический анализатор… Не ради троллинга, а ради того чтобы поделиться подходом — их два
* для начала включается статический анализатор чтобы исключить гарантированные ошибки в части работы с объектными блокировками и избыточным чтением в запросах
* затем включается любой из существующих эмуляторов многопользовательской нагрузки: мы используем Vanessa Behavior для этого, чтобы еще и тестами покрыть
в итоге точка контроля подобного будет лежать в стороне
* APDEX — там в БСП встроен штатный отчет
* журнал регистрации — даже на двух пользователях вы сразу словите Exception
* ну и СУБД конечно — для MSSQL BrentOzar сразу покажет где вы ошибаетесь в коде
То есть — суть в том, что инструмент анализа блокировок в ПРОДУКТИВЕ, это инструмент пост-реакции на аварии, а тот подход который пропагандируем мы — в продуктив должна уходить проверенная система, и в продуктиве ничего анализировать не надо: только мониторинг и алертинг.1div0 Автор
12.01.2018 11:55Спасибо за конкретику. Про инструменты «Vanessa Behavior» и «BrentOzar» не знал.
За ваш (кто это мы?) подход голосую двумя руками.
dmagin
13.01.2018 01:16Алексей, судя по количеству и длине твоих комментариев тебе (вам?) пора запланировать цикл статей на хабре о зарекомендовавших себя практиках применительно к разработкам на 1С. Давай делитесь тем, что накопили ).
А на автора зря вы тут набросились. Одна из немногих статей по 1С-ной тематике на хорошем языке от адекватного автора. Я прочитал с интересом.
Segate
12.01.2018 15:41ДокументОбъект.Записать()
как минимум тянет за собой все процедуры и подписки которые срабатывают при записи этого документа… и если там все нормально, и написано не криво, то все будет проходить довольно быстро просто и даже таблица документов не будет блокироваться исключительно… так что тут никаких проблем не будет, блокировкам взяться неоткуда.(еще раз, это при условии что при записи документа ничего не происходит.)pfihr
12.01.2018 21:46+1Если там все быстро и ничего не происходит, значит у Вас точно не флагманское решение 1С и Вы точно накостылили ненужный пустой документ. Верх профессионализма для элитных решений нынче считается копировать типовые документы вместе со всеми сопутствующими регистрами сведений, дублирующими итоги в регистрах накопления, а так же подписки к ним. Копировать потому, что написать это с нуля уже никто не в силах.
1div0 Автор
12.01.2018 22:31)) если…
Если заниматься разработкой нофой конфы с нуля, есть такая роскошная возможность, как проведение ревью с самого начала. Я так и понял, что Вы под таким углом зрения проблему рассматриваете, когда написали про "окинуть взглядом".
А представьте, что конфа уже написана и такая, какая есть.
Нет автотестов. Нет никакой уверенности, что там всё хорошо.
Вот на такой случай было бы неплохо иметь простенький инструмент по поиску источника блокировок, если они таки случились.
А можно и без, обходились без него всё это время, и дальше обойдёмся.
pfihr
11.01.2018 20:28попробуйте создать и записать большой набор записи в регистр сведений без вообще каких либо индексов и посмотрите в скуль аналайзер. и для хохмы замерьте время исполнения пустого цикла от 1 до 100000000. дефекты внутри платформы — есть, и каким бы ни был семи пядей во лбу 1сник, ничего он с этим не сделает. а на 5000 пользователей системы разбиты на базы и с помощью сторонних технологий.
vis_inet
11.01.2018 20:37для хохмы замерьте время исполнения пустого цикла от 1 до 100000000
— а в чём смысл этого?
1С это не универсальный ЯП, а предметно-ориентированный.pfihr
11.01.2018 22:05а смысл, что в даже самых примитивных интерпретаторах примитивных языков типа бейсика это было поправлено еще в 90-е, но программистам ядра 1с этот опыт не пригодился
EvilBeaver
12.01.2018 00:35Потому что в 1С кода, который бы вращал циклы от 1 до 1000000000, практически не бывает в реальной жизни. А жечь человеко-часы, чтобы ускорить синтетические тесты… Ну я бы, например, не стал, будь я 1С.
vis_inet
12.01.2018 06:09Для прикола засёк — у меня такой цикл выполнялся 22 сек.
Но, действительно, в практике я ни разу не встречал потребности крутить такие циклы.
Как я уже писал, 1С это не универсальный ЯП, а предметно-ориентированный.
Работа ведётся большей частью с бизнес-объектами.pfihr
12.01.2018 21:35Да любая примитивная расчетная задача от этого страдает. Пустой цикл — это лишь один пример. Все конструкции языка такие. А все потому, что внутри используются COM-объекты. А на клиенте еще и 32 бита! Потому и клиент до сих пор 32-битный (Карл!). Тут половина комментариев на тему, что «мы особенные — предметный язык». Прекрасно распиаренная идея самой фирмой 1С в головы программеров и внедренцев, лишь бы не исправлять ядро. И никому не пришло в голову, что у 1сников отбили желание и возможность кодить на языке именно потому, что интерпретатор неэффективен, и кроме как запросами (на чтение) к СУБД дело не исправить. Но это не заслуга «предметного» языка, это беда интерпретатора. Python, Javascript и Lua — такие же предметно-ориентированные скриптовые языки (python реализует это, а js и lua непосредственно работают со своими объектами, как и 1С).
erwins22
12.01.2018 23:29Клиент давно 64 битный.
А сом объекты давно не используются. В качестве доказательства клиент под линукс.
vis_inet
13.01.2018 11:17Многолетний опыт показывает, что куда более существенное время тратится именно на работу с данными.
Скорость выполнения именно операторов языка при этом роли не играет.
Neikist
12.01.2018 07:37Был как то случай, из ком объекта массив байтов получали в кривой кодировке, так что в цикле их крутили, немного меняли значения. Бывало цикл со сложением внутри выполнялся несколько часов на 20-30кк операций.
FyvaOldj
12.01.2018 10:44Был как то случай, из ком объекта массив байтов получали в кривой кодировке, так что в цикле их крутили, немного меняли значения. Бывало цикл со сложением внутри выполнялся несколько часов на 20-30кк операций.
Я бы просто написал бы мааааааленькую утилитку конвертации на C/Go/Rust/Python/по вкусу. А будучи скомпилированной с безконсольными ключиками она даже на экране не мелькает.
Или 1С не умеет вызывать внешние процессы?
Neikist
12.01.2018 12:34Сейчас я бы тоже так сделал, или ВК написал бы, а скорее всего изначально бы упорнее пинал тех кто за шину отвечает, что они неправы когда говорят про присылают utf-8. Но когда ты джун который и года не проработал и тебе дают готовое решение генподрядчика которое у них где то уже работает — меньше всего будешь заниматься такими вещами.
znsoft
12.01.2018 03:43А вы запишите этот цикл от 1 до 100000000 в одну строчку.
ПС. В режиме отладки платформа 1С выполняет много всего на каждый перевод строки.
alexey-lustin
12.01.2018 10:22Дефектами прикладного кода допускаемыми программистами. НУ и еще с неумением проектировать «нормальные» метаданные.
Ну вот зачем вы так — цикл от 1 до 100000000: если я покажу такой цикл скажем питонисту, он на меня посмотрим как на дурака и спросит: «А зачем ты делаешь такие переборы, почему не через базу данных? Почему не многопоточно ?» И что мы ему ответим — я 1С-ник, я по другому не умею и ли что-то про синтетический тест.
РегистрСведений же — тупой прикладной объект для хранения сведений, причем реализованный достаточно грамотно для доступа к сведениям согласно концепции регистров правил (Ключ-Детерминант) описанный в книге Фаулера «Архитектура корпоративных приложений».
НО: Я знаю что бывают дефекты платформы — они были, есть сейчас и будут я думаю. Один из фееречиных я запомнил на всю жизнь — когда объект АнализДанных математически неправильно считал дисперсию, вот это была подстава.
domix32
11.01.2018 15:31Вот куда б блокчейна капнуть
vis_inet
11.01.2018 15:33Куда именно???
domix32
12.01.2018 02:07Да хоть те же неблокирующие выгрузки. Теоретически этим же можно решать проблемы передачи объектов в разные конфигурации. Но это сильно абстрактные прикидки.
vis_inet
12.01.2018 06:10Можно поподробнее пояснить, чем именно это могло бы помочь?
domix32
12.01.2018 20:52Снижение нагрузки, резервирование, увеличение количества пользователей после которых 1С начинает поскрипывать, уменьшение/избавление от блокировок благодаря консенсусам. Правда неисследованных нюансов огромное количество. Та же сложность развертывания новых конфигураций или взаимодействие ролей.
alexey-lustin
12.01.2018 10:27Есть уже пробники у участников сообщества на эту тематику — практические концепты. Получается прикольно — можно действительно выстроить настоящие распределнные базы данных. Но исследований там вагон — как минимум с аутентификацией.
Для концептов использовались blockstack.org
mgis
11.01.2018 17:40Из собственного опыта.
1С хороша тогда, когда используются проверенные временем типовые конфы вроде УТ10, БП2, БП3, УПП1.3 и т.д. То есть когда, надо вести бизнес и не париться — все хорошо. Но настает момент когда компания «вырастает». И тут начинается самое интересное.
Если стоит задача идти в ногу со временем, BigData, ИИ, HighLoad и прочее, то тут начинаются проблемы, и проблемы настолько серьезные, что проше написать с нуля на привычном для вас языке (Java, Python, C#).
Возможно у меня руки кривые, но всегда когда дело имел с переработанными конфигурациями, то все «хотелки» заказчика, только запутывали «паутину» все хуже. И латание одной дыры непременно создавала одну, а то и две новые.
В таком случае приходится держать штат собственных квалифированных программистов, а что если их нет?
В общем не так все просто с 1с, хотя и стоит признать, что ситуация налаживается. Платформа 8.3 так это вообще глоток свежего воздуха, для любителя «нативных» интеграций.EvilBeaver
12.01.2018 00:34Ну это вообще характерно для кровавого энтырпрайза. Тут не в 1С дело, а вообще, специфика жизни.
FyvaOldj
12.01.2018 10:511С хороша тогда, когда используются проверенные временем типовые конфы вроде УТ10, БП2, БП3, УПП1.3 и т.д. То есть когда, надо вести бизнес и не париться — все хорошо. Но настает момент когда компания «вырастает». И тут начинается самое интересное.
Это проблема квалификации. Только и всего.
Обновлятор типовой конфигурации на следующую типовую вообще не программист. Это и бухгалтера умеют делать.
Если стоит задача идти в ногу со временем, BigData, ИИ, HighLoad и прочее, то тут начинаются проблемы, и проблемы настолько серьезные, что проше написать с нуля на привычном для вас языке (Java, Python, C#)
А при чем здесь вообще язык?
BigData — это проблема не в языке а в архитектуре.
И, минуточку, как это так у вас в мгновение ока случился переход с типовой конфы на БигДату, что вы не успели даже понять что тут нужны совсем другой специализации ИТшники?
mgis
12.01.2018 13:55+1Это проблема квалификации. Только и всего.
Обновлятор типовой конфигурации на следующую типовую вообще не программист. Это и бухгалтера умеют делать.
Собственно я о том же.
BigData — это проблема не в языке а в архитектуре.
А она у 1с идеальная?
И, минуточку, как это так у вас в мгновение ока случился переход с типовой конфы на БигДату, что вы не успели даже понять что тут нужны совсем другой специализации ИТшники?
Я разве говорил, что у нас случился переход с типовой конфы на БигДату? Хотя думаю, таких компаний хватает.
Это проблема квалификации. Только и всего
Кстати это какой квалификацией надо обладать чтоб правильно готовить 1с?
Я на пальцах могу пересчитать из своего окружения ребят, которые правильно «готовят» 1с. Не бегут править типовые модули, и добавлять свои реквизиты в регистры, а используют это в крайних случаях, а в большинстве своем используют либо внешние обработки, расширения, либо подстраиваются под типовой бизнес процесс.
Это я к тому, что если все сводится к наличию хороших прогеров, то все тоже самое сделать практически на любом стеке, благо хороших программистов c#, python, java не развелось, только еще не надо будет платить за 1с. В общем баян…
Fragster
11.01.2018 17:50масса пользователей переваливает за некий порог, после которого уже ничего не помогает, даже корпоративный инструментальный пакет
дальше правильный путь — Центр поддержки крупных внедрений. Да и вообще без него видел внедрения на 700-1000 онлайн пользователей. А то, что написано в варианте 1 и 2 — дорого и без гарантированного результата. Да еще и с резким удорожанием поддержки.
А без ЦПКВ можно часто сделать базу распределенной (причем на платформе 1с это сделано очень хорошо) и получить вместо одной большой базы на одного килопользователя 4 базы по 250 пользователей на разных серверах с актуальностью данных от «фуллонлайн» для части данных до 10-15 минут для данных, к которым нет таких требований. Делить можно как функционально (склад отдельно, финансы отдельно), так и территориально (питер отдельно, москва отдельно).
1div0 Автор
11.01.2018 19:06Плюсую. Единственно, по двум вариантам я имел ввиду, что это пример свершившегося выбора в разных компаниях. Насчёт попытки применения ЦПКВ в них ничего не знаю. Может быть и не пытались.
erwins22
11.01.2018 20:03Асинхронность в 1с это боль и кошмар.
В той же Рознице в обработке РМК только для того, что бы избавиться от модальности сделали кучу «ассинхронных» вызовов (например это вызов который совершается после закрытия формы когда никаких других действий не осуществляется) после каждого происходит блокировка интерфейса.
Спрашивается зачем?
Ассинхронность при работе с ККМ или ПК это вообще идиотизм порождающий периодически глюки.
Но в целом 1с — Хороша. Без кавычек. Хотелобы конечно создавать массив вот так
a=[1,2,5,4]
а не так
а= новый Массив; а.Добавить(1); а.Добавить(2); а.Добавить(5); а.Добавить(4);
Хотелось бы в запросах делать накопительные поля
Выбрать Т.Измерение, НакопительнаяСумма(Т.ресурс) из Справочник как Т Упорядочить по Т.Измерение
И
Выбрать Т.Измерение, НакопительнаяСумма(1) как ТутПорядокНомеровПоВозростанию из Справочник как Т Упорядочить по Т.Измерение
vis_inet
11.01.2018 20:13Асинхронность в 1с это боль и кошмар
— совершенно верно.
Мне кажется не по верному пути 1С пошлаEgorZanuda
12.01.2018 11:58Не нужно путать открыть страничку сайта или получить алгоритм с изменениями данных в документах.
EvilBeaver
11.01.2018 22:47то проше написать с нуля на привычном для вас языке (Java, Python, C#)
О да, вы серьезно? Прямо вот все-все взять и переписать? И UI и Reporting и ORM… Ну т.е. надо конечно взять все готовое из опенсорса, а потом долго все это сопрягать. И постойте… бизнес-логику с 1С тоже надо портировать. И все сущности базы, и алгоритмы… Это точно «проще», чем отпрофилировать тормозные запросы, починить и все же оставить 1С?
dgr
11.01.2018 23:07Все кто надо уже в комментах, накину еще своего мнения:
— тормозной интерпретатор, ну правда и не говорите что это не важно. Кроме прочитать — вставить в 1С еще куча вычислений, переборов и прочего и порой эти тормоза очень даже заметны;
— отсутствие кастомных индексовю Нет я конечно могу поставить «индексировать» на атрибут, но а если мне надо сразу по двум полям или сделать inсlude? Легко вводится дополнительным метаданным к документам и справочникам;
— ну и стабильности
Dessloch
12.01.2018 06:33Некоторое время назад администрировал 7.7, жутко тормозила. В целях сомообразования установил ODBC+Firebird и нарисовал простейший интерфейс для работы с БД sql-запросами. После этого всё стало понятно.
FyvaOldj
12.01.2018 11:10Разумеется любой программист средней руки может написать УЗКОспециализированное решение которое даже летать будет.
Но так делают не часто. Наверное это просто не выгодно по сравнению с типовыми универсальными пусть и не быстрыми решениями от 1С?
Иначе бы балом правила не 1С а множество программистов с очень шустрыми наколенными УЗКОспециализированными решениями.
arperam
12.01.2018 10:00Предыдущая статья — ворчание привыкшего к обычному приложению специалиста. 7 лет работаю исключительно с управляемым — прелесть, а не концепция. Асинхронность тоже хороша, если её осознать, а не пытаться использовать со старой меркой...
Fragster
12.01.2018 11:01А лепить свои кнопки вместо платформенных, если хотим задать вопрос перед записью, это нормально?
nclockworker
12.01.2018 10:00Прочитал обе статьи и понял, что у меня просто не хватит желания тратить кучу времени на расписывание проблем 1С, которые не были озвучены в этих публикациях.
Переписывать все нужно с нуля, причем с открытым исходным кодом и без всякого русского языка в синтаксисе, а на общедоступных скриптовых языках. Это я говорю как программист 1С с 5 летним стажем знающим ассемблер, С++, C#, JavaScript.FyvaOldj
12.01.2018 10:58Переписывать все нужно с нуля, причем с открытым исходным кодом и без всякого русского языка в синтаксисе, а на общедоступных скриптовых языках. Это я говорю как программист 1С с 5 летним стажем знающим ассемблер, С++, C#, JavaScript.
То есть вы не знаете что у языка 1С есть английский синтаксис уже больше 20 лет?
bonv
13.01.2018 00:45Переписывать все нужно с нуля, причем с открытым исходным кодом и без всякого русского языка в синтаксисе, а на общедоступных скриптовых языках.
И что это даст?FyvaOldj
13.01.2018 15:43И главное — почему уже не сделано.
Сделаны то только примитивные вещи для склада.
За бухгалтерию опенсоурсному сообществу взяться слабо.
А бухгалтерам сесть на опенсоурс для сдачи отчетов — стремно. Штраф за неправильные или не вовремя сданные налоги…
Но это не мешает очередному шапкозакидателю.
nclockworker покажите нам пример. Сделайте уже.
Это же так просто…
Dementor
14.01.2018 02:48Переписывать все нужно с нуля, причем с открытым исходным кодом и без всякого русского языка в синтаксисе, а на общедоступных скриптовых языках. Это я говорю как программист 1С с 5 летним стажем знающим ассемблер, С++, C#, JavaScript.
Судя по качеству комментариев, то тут все со значительным 1С-стажем и знанием линейки «ассемблер, С++, C#, JavaScript», но только вы хотите избавится от платформы и перейти на что-то другое. Так в чем же дело, что вас останавливает? Ваш выбор Odoo (бывшая OpenERP), которая и опенсурс, и на популярном питончике, и на котором уже много бухгалтерских и прочих конфигураций создано — все как вы и хотели. Их типовые решения даже на русский язык локализированы, но никто не мешает вам писать «с нуля» и продавать свою поделку.
Вот только тут полная аналогия айфонов и андроидофонов. С одной стороны закрытая аппаратная платформа и ОС, которые контролируются вендором; а с другой стороны зоопарк тысяч кастомизаций различных версий операционки под сотни различных девайсов — тонны аппаратных и программных глюков, в которых даже никто не пытается разбираться. Причины популярности среди покупателей «закрытых» решений очевидны.
Rar_xxx
12.01.2018 10:00Очередная бесполезная статья на хабре… Мне кажется перед тем как критиковать, необходимо знать что ты собрался критиковать;) Пройдите курс специалиста 1С, научитесь основам программирования в 1С, пройдите курс конвертации данных получите ответы на обмен между базами 1С. Пройдите курс эксперта 1С, получите ответы на причины появления блокировок и как с ними бороться, кстати в версии 8.3 было много сделано для устранения блокировок. Посмотрите на рейтинг экспертов и какие проекты они вели Про SAP JDE и т.д. как сказал недавно один мой товарищ работающий руководителем отдела логистики одной крупной компании SAP это те же лютики только в профиль. Важно не какая система выбрана, важна ровность рук ее внедренцев, щедрость заказчика внедрения и хорошее знание системы которую они внедряют и поддерживают! лично нахожусь рядом с системой JDE… скажу так фин. директор компании и еще н-ое количество менеджеров сотрудников склада и т.д. были бы рады поменять JDE на 1С, только это стоит денег…
1div0 Автор
12.01.2018 10:01Чего разбушевался? Дружище, всё нормально.
Прежде чем писать очередной бесполезный комментарий, прочитай пожалуйста внимательно статью.FyvaOldj
12.01.2018 11:03Я тоже согласен с вашим оппонентом: считаю что грабли как правило находятся в безграмотности конкретного внедренца/админа/программиста 1С там где эксплуатируется ПО 1С.
Не спорю — любому сложному ПО всегда есть куда развиваться.
Но проблема низкой квалификации людей подавляющего большинства занимающихся этим ПО на местах — имеет место быть. И не только с 1С
Rar_xxx
12.01.2018 11:24Ок вот вам полезный комментарий: Вместо того чтобы тратить свое ценное время на написание подобных статей, разберитесь с блокировками. Для этого настройте ТЖ, научитесь использовать регулярные выражения perl и парсите ТЖ. Сервис Гилева построен именно на парсинге ТЖ именно поэтому IT отдел крупных компаний не очень заинтересован его использовать, а именно налево сливать какую то инфу. Научитесь использовать SQL profiler, научитесь использовать APDEX, настройте сбор логов Perfomance monitor, пройдите курс оптимизации запросов, научитесь использовать трассировку запросов и т.д… еще много чего. Вот после всего этого прочитайте свою статью и статью на которую вы сослались вначале.
1div0 Автор
12.01.2018 12:05Спасибо, научился. Я то про другое хочу донести — Вам не кажется, что это должно быть немного проще?
FyvaOldj
14.01.2018 10:53-1А оно и есть проще.
Большинству инсталляции 1С и программист то вовсе не нужен — типовое обновление на типовую конфигурацию 1С может и бухгалтер накатить сам.
Ппри этом есть и другие, более навороченные инсталляции.
Именно они и нуждаются в присмотре КВАЛИФИЦИРОВАННЫХ спецов.
Теперь вопрос — если вы достаточно для этой задачи квалифицированны — то у вас не должно быть проблем с тем чтобы вручную создать несложный xml файл для включения технологического журнала, используемого для глубокого разбора тормозов. И т.д.
Квалифицированному специалисту платят хорошо за то что он решает проблемы.
Если же вы ожидаете что фирма 1С обязана сделат волшебную кнопку для программистов «решить все проблемы» — то возникает вопрос: а за что вам как профессионалу платить будут? Эту волшебную кнопку бухгалтера и сами нажать смогут.
Запомните: профессионалов нанимают и хорошо им платят только потому что наниматель сам не может решить проблему, и не может решить ее силами неспециализирующихся сотрудников.1div0 Автор
14.01.2018 12:49Противоречите себе в пределах одного сообщения.
Если проще — то даже стажёр должен уметь с проблемой справиться. И это не то, что вы предлагаете.
1С ни мне, ни вам ничего не обязана.
Статья претендует на конструктивную критику.
По поводу того, чем должен заниматься высокооплачиваемый специалист: ловлей блох или бизнес-анализом — вопрос спорный.
1div0 Автор
12.01.2018 12:07Вот пример полезного комментария:
habrahabr.ru/post/346324/#comment_10611770
krovlads
12.01.2018 12:08Ещё вот эту штуку забыли
vis_inet
12.01.2018 12:28А что именно?
krovlads
12.01.2018 12:32Вы видите в выпадающем списке с именами процедур и функций 3 процедуры с одинаковым началом названия «РаспределитьКорректировкуП...» так вот это поле не растягивается.
На скриншоте пример с 3мя процедурами, но есть типовые общие модули где таких процедур 20 и работа превращается в ад.
Что собственно мешало разработчикам сделать этот список растягивающимся?vis_inet
12.01.2018 12:36Думаю, что тоже приоритеты.
Трудности работы разработчиков не приносит дохода 1С, в отличие от добавления «котиков» в Бухгалтерию 3.0, к примеру )FyvaOldj
12.01.2018 17:56Котики тоже не приносят денег.
Приносят деньги постоянная адаптация под изменения в законодательстве. И только. За это заказчики готовы платить регулярно фирме 1С регулярно.
Приносит деньги методология автоматизации предлагаемая 1С. Ну не все способны придумать самостоятельно как вести свой учет, да и зачем каждому предприятию изобретать велосипед заново. За это тоже готовы платить заказчики фирме 1С.
И все
vis_inet
Поправьте «пачичку»
1div0 Автор
Поправил.