Непридуманные истории по оптимизации. История 1










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

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

Говорил в предыдущих статьях, но напомню:

База ~4 Тб, 6 app серверов, 2 MS SQL сервера объединенных в AlwaysOn, сильно переписанная УТ 11.3.

 

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

Обращаю внимание – все нижеописанные проблемы имеют несколько решений, не всегда мое решение оптимальное, но оно точно помогло. Объективная критика приветствуется.

 

Итак, проблема этой недели. Повышенная нагрузка на ЦПУ в начале каждого часа и продолжающаяся примерно 5-10 минут.

Вот так выглядит проблема:

Вот более крупно самый большой всплеск в 21 час.

Следствием нагрузки на ЦПУ SQL сервера становится повышенный средний CALL (время вызова), а следовательно растет и время выполнения основных операций. Система «тормозит».

 

Причина всплеска на самом деле достаточно проста, у нас 3 с лишним тысячи магазинов по всей стране, в 16 часов по МСК начинают закрываться магазины. При закрытии магазина происходит много ресурсоемких операций, закрытие смены, печать документов, различные расчеты и прочее. В 21 час по МСК закрывается больше всего магазинов, поэтому и пик в это время наиболее длительный и высокий. Жалоб от пользователей не поступает, но… как то не аккуратненько.

Для решения решил посмотреть, а что за запросы массово выполняются в период с 20:55 до 21:20. Надеюсь вы собираете технологический журнал, потому что если не собираете – я не знаю, как вы анализируете ваши проблемы. Длинные call у меня собираются этим куском ТЖ:

 

<log location="D:TJ_logsLong_1" history="25">
     <event>
          <eq property="name" value="DBMSSQL" />
          <gt property="duration" value="10000" />
     </event>
<event>

 

Дальше у нас есть некое самописное ПО которое парсит технологический журнал и аккуратно складывает данные в базу MS SQL. Есть множество обработок на 1С делающие аналогичное, просто у нас объемы, с которыми 1С не справляется, мы используем C#, причем на создание и оптимизацию разработчик потратил пару месяцев.

 

Делаем запрос к БД и смотрим, какой контекст выполнялся за указанный период дольше всего:

 

SELECT TOP 10 Context, sum(_duration)/1000000, count(*)

  FROM [1C_Log].[dbo].[TJ_Long_1]

  WHERE _event = ‘DBMSSQL’

  AND _eventDate between ‘2024-06-10 20:55’ and ‘2024-06-10 21:20’

  GROUP by Context

  ORDER by sum(_duration) DESC

 

Получаем такой результат.

 

Видим, что основное время SQL сервера уходит на первые две операции. Посмотрим на первый запрос, который выполняется в это время:

 

контекст:

 

  SELECT top 1 sql

  FROM [1C_Log].[dbo].[TJ_Long_1]

  WHERE context = ‘Форма.Вызов : Обработка.ЗакрытиеДня.Форма.Форма.Модуль.ЗакрытьСобытияНаСервереОбработка.ЗакрытиеДня.Форма.Форма.Форма : 659 : СистемаИнформирования.ОтметитьВыполненностьСобытийСистемыИнформирования(ЗакрываемоеПодразделение); ОбщийМодуль.СистемаИнформирования.Модуль : 507 : РезультатЗапроса = Запрос.Выполнить();’

  AND _eventDate between ‘2024-06-10 20:55’ and ‘2024-06-10 21:20’

 

Результат:

 

INSERT INTO #tt390 WITH(TABLOCK) (_Q_000_F_000, _Q_000_F_001, _Q_000_F_002RRef, _Q_000_F_003RRef, _Q_000_F_004_TYPE, _Q_000_F_004_RTRef, _Q_000_F_004_RRRef) SELECTMAX(T1._Fld24158),MAX(T1._Fld24162),T1._Fld24159RRef,T1._Fld24160RRef,T1._Fld24161_TYPE,T1._Fld24161_RTRef,T1._Fld24161_RRRefFROM dbo._InfoRg24157 T1WHERE ((T1._Fld26199 = ? AND T1._Fld773 = ?)) AND ((T1._Fld24159RRef = ?))GROUP BY T1._Fld24159RRef,T1._Fld24160RRef,T1._Fld24161_TYPE,T1._Fld24161_RTRef,T1._Fld24161_RRRefp_0: 0Np_1: 0Np_2: 0x80FA5CB9019038F011E7EAD0A1C5BCF8

 

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

 

SELECT

MAX(T1._Fld24158),MAX(T1._Fld24162),T1._Fld24159RRef,T1._Fld24160RRef,

T1._Fld24161_TYPE,T1._Fld24161_RTRef,T1._Fld24161_RRRef

FROM dbo._InfoRg24157 T1

WHERE ((T1._Fld26199 = 0 AND T1._Fld773 = 0))

AND ((T1._Fld24159RRef = 0x80FA5CB9019038F011E7EAD0A1C5BCF8))

GROUP BY T1._Fld24159RRef,T1._Fld24160RRef,T1._Fld24161_TYPE,T1._Fld24161_RTRef,T1._Fld24161_RRRef

 

И выполняем его.

 

Видим, что время выполнения составляет 54 секунды. Как-то многовато. А сколько в таблице записей?

 

 

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

 

Посмотрим на план запроса и на индекс, который нам предложит Management Studio

 

CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]

ON [dbo].[_InfoRg24157] ([_Fld24159RRef],[_Fld26199],[_Fld773])

INCLUDE ([_Fld24158],[_Fld24160RRef],[_Fld24161_TYPE],[_Fld24161_RTRef],[_Fld24161_RRRef],[_Fld24162])

 

Ну в принципе необходимость этого индекса мы могли бы предсказать и без помощи SQL, просто посмотрев на запрос и имеющиеся индексы, но так же проще J

ОК, немного упрощаем запрос, пишем:

 

CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]

ON [dbo].[_InfoRg24157] ([_Fld24159RRef])

INCLUDE ([_Fld24158],[_Fld24160RRef],[_Fld24161_TYPE],[_Fld24161_RTRef],[_Fld24161_RRRef],[_Fld24162])

WITH (ONLINE = ON)

 

Два поля мы убрали из индекса так как это общие реквизиты, у нас в базе они не используются (достались от типовой) и всегда равны 0.

Ну а ONLINE = ON нужно чтобы при построении индекса пользователи могли продолжать работу.

Итак, строим индекс, время на построение на продуктивной системе ушло 2.5 часа.

Результат нагрузки на SQL.

 

 И выделим покрупней 21-ый час.

 

 

 

Видно, что нагрузка ушла. В Long данный контекст так же ушел из ТОП-10.

Задача решена.

99 Comments

  1. Diversus

    Отличная статья.

    Вы упомянули о собственном парсере технологического журнала на C#, было бы интересно посмотреть.

    Если есть возможность включите это в следующую статью.

    Reply
  2. Dream_kz

    Вооо, годнота подъехала, ждем еще

    Reply
  3. ВикторП

    Создание индекса не средствами платформы — это …

    Reply
  4. Repich

    (3) Нарушение лицензионной политики, однако наш Sla с бизнесом таков, что просто так 30 минут простоя на создания индекса никто не даст, а динамически мне кажется платформа индекс создать не сможет. Хотя надо проверить. Когда будет согласованное «окно» — свой индекс удалю и появится созданный средствами платформы.

    Reply
  5. Repich

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

    Reply
  6. starik-2005

    (4)

    Нарушение лицензионной политики

    Нарушение чревато только тем, что 1С не гарантирует работоспособность своего ядра с вашими данными. На это можно положить прибор, ибо я сколько в 1С о чем ни жаловался — толку НОЛЬ. Они и без нарушения ЛС не смогут помочь — зарегят инцидент и лет через сто может быть что-то родят, а уж при нарушении даже и обратиться к ним нелья, чтобы они инцидент зарегили. А если нет разницы, то зачем платить больше? (с)

    Reply
  7. Repich

    (6) Нам попроще, у нас два проекта с ЦКТП и участие в бета-тестировании платформы.

    Reply
  8. starik-2005

    (3) если на ИТС есть что-то, что описывает создание индекса не средствами платформы, значит создавать индекс не средствами платформы можно. А на ИТС много чего такого есть, так что не факт, что это нарушение.

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

    Reply
  9. starik-2005

    (8)

    и участие в бета-тестировании платформы

    Сомнительный бонус от 1С)))

    Reply
  10. starik-2005

    По тексту, то мое ИМХО в том, что достаточно было бы индекса по одному полю: «_Fld24159RRef», ибо по нему фильтруется таблица. А для агрегации все-равно собирается хеш-таблица, построение которой от индекса не зависит.

    ЗЫ: ну и выпилить из самого запроса эти нулевые поля.

    Reply
  11. morin
    База ~4 Тб, 6 app серверов, 2 MS SQL сервера объединенных в AlwaysOn, сильно переписанная УТ 11.3.

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

    Reply
  12. Repich

    (11) Согласен. Это издержки попыток сделать универсальное решение. Тут случайно наткнулись, что у нас при выписке заказа каждый раз выполняется запрос на частоту использования реквизитов только для того, чтобы подставить в поля наиболее используемые реквизиты. Конечно кто-то будет пищать от такого решения, но блин, +20 секунд к вводу документа это перебор.

    Reply
  13. morin

    (12) Да, знакомо все это. Этот функционал называется заполнение объектов по статистике. Функциональной опцией не отключить, необходимо ставить заглушку в ЗаполнениеСвойствПоСтатистикеПереопределяемый.ПриОпределенииЗначенияРеквизитаПоСтатистике(): СтандартнаяОбработка = Ложь;

    Я это очень хорошо изучил и могу привести ещё десятка два подобных примеров из УТ 11, но в этом нет никакого смысла. Мы отказались от внедрения УТ 11.4 в пользу УТ 10.3. При всем уважении, толстый клиент 10.3 кратно производительнее тонкого 11.4. Уверен, 11.4 — это тупик.

    Reply
  14. dmurk

    Мы сидим на УТ 10.3 с 2011-го, Рассматривали релизы УТ 11.2, 11.3, 11.4. Пока всё ещё говорим им нет.

    Reply
  15. script

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

    Reply
  16. starik-2005

    (15) вот так описывается проблема взросления программиста, впервые столкнувшегося с управляемой формой и асинхронностью)))

    Reply
  17. o.nikolaev

    Отличная статья! Ждем продолжения!

    Reply
  18. muskul

    (13)А можно поподробней

    Reply
  19. muskul

    Если поняли причину а именно что это происходит при закрытие смены то почему сразу не начать смотреть что же в этом закрытие такого тормозного?

    Reply
  20. morin

    Ну, автор в принципе всё написал, хотите уменьшить время открытия формы при создании новых документов на 20 секунд — отключите заполнение объектов по частотной статистике. К сожалению, 1с сочло время 20 секунд на каждом новом документе не существенным, и поэтому не предоставила функциональной опции для его отключения.

    Отключить можно в переопределяемом модуле как я написал выше.

    Reply
  21. Repich

    (19) Не очень понял вопрос. Именно это и сделали. Или вы имеете в виду — почему не начали смотреть 1С-ный код?

    Reply
  22. muskul

    (21)Да, то есть ошибка в 21-00 что все делают понятно, закрывают смены. Зачем лесть в ТЖ, план запросов и т.д. а сразу не пробежатся замером времени по закрытию. Или таким образом не увидели бы проблему?

    Reply
  23. Repich

    (22) Там выполняется огромное количество операций, отправка документов в систему документооборота, допроведение пробитых чеков, сверка данных 1С и ФР и еще десяток разных процессов. Несомненно можно было отдать проблему разработчикам на анализ, но он занял бы несколько дней. Даже просто чтобы подготовить базу для выполнения замера (на проде замер не сделаешь, только на копии) ушло бы примерно 8 часов.

    Reply
  24. muskul

    (23)Понятно, все дело в масштабах.

    Reply
  25. ildary

    (13) Приведите пожалуйста прочие примеры, помогите тем, кто на УТ11 перешёл и не смог найти затыки сам.

    Reply
  26. BabySG

    (7) во второй версии это уже не так

    Reply
  27. Repich

    (26) Кстати да, новый формат реструктуризации как луч света был когда мы начали его использовать. Теперь обновление обычно выполняется за 5 минут, иногда доходит до 20.

    Reply
  28. morin

    (25) Думаю, коллеги меня поддержат, это тема для отдельной очень грустной статьи. Ну навскидку, пример номер два:

    ПродажиСервер.ПолучитьОтветственногоПоСкладу() — вызывается при инициализации реализации и заполняет необязательный реквизит Отпустил и ОтпустилДолжность примерными значениями.

    ВЫБРАТЬ ПЕРВЫЕ 1
    РеализацияТоваровУслуг.Отпустил,
    РеализацияТоваровУслуг.ОтпустилДолжность
    ИЗ
    Документ.РеализацияТоваровУслуг
    …
    …
    УПОРЯДОЧИТЬ ПО
    РеализацияТоваровУслуг.МоментВремени УБЫВ
    

    Показать

    Как вы думаете, что будет если у вас хотя бы 250 тыс. реализаций в год?

    Reply
  29. toypaul

    (4) сможет ли платформа сделать индекс онлайн — вот в чем вопрос …

    Reply
  30. toypaul

    (27) что за новый формат реструктуризации — можно ссылку?

    Reply
  31. Repich
  32. Painted
    я не знаю, как вы анализируете ваши проблемы

    1. Profiler

    2. sys.dm_exec_query_stats

    3. Extended events

    Reply
  33. bulpi

    Люди! Вот вы тратите огромные усилия, время, и деньги, чтобы сделать что-то съедобное из такого говна, как УТ 11. А вам не приходило в голову потратить примерно в 10 раз меньше усилий на написание своей толковой конфигурации, и дальше жить спокойно, не зная о половине проблем , которые вы так героически решаете ,. вообще ничего ?

    Reply
  34. Rustig

    (13) Напишите статью об этом. Многие внедренцы и клиенты не знают о нюансах. Все попадаются на крючок той программы, за которые уплачены деньги….

    Reply
  35. Rustig

    (33) идея здравая, Булпи, уж очень часто вы ее повторяете, и особенно , как вы не любите ут 11. 🙂

    Reply
  36. Rustig

    (0)

    сильно переписанная УТ 11.3

    выделите крупно и жирно

    Reply
  37. Repich

    (33) Хм, я вообще нигде не написал, что решаю проблемы связанные с типовой. 99% решаемых проблем к типовому функционалу не относится никак.

    Reply
  38. Yashazz

    (35) Да правильно повторяет. Типовые конфы, особенно с управляемым интерфейсом, жутчайшие жадные тормоза, где в жертву «вау-интерфейсу» и бантикам принесено практически всё. Архитектурно это тихий ужас. С точки зрения кода, его оптимальности, изменяемости, да просто структурированности — тоже. Поэтому только так — писать свою и затачивать конструкции данных сразу под конкретные задачи, а не пытаться превратить люксовый капризный лимузин в суровый надёжный джип.

    Reply
  39. Yashazz

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

    Чего нового и хорошего в этой статье, а?

    Ну давайте я вам расскажу, как закрытие бух.периода убыстрил с полутора часов до семи минут. Написав 4 символа. Давайте? А мне за это более 200 плюсов?)) Оптимизация, тыкскзть!

    Reply
  40. TODD22

    (33)

    А вам не приходило в голову потратить примерно в 10 раз меньше усилий на написание своей толковой конфигурации

    Можно пример самописной толковой конфигурации по функциональности сопоставимой с УТ 11?

    Сколько видел «сейчас мы сами напишем», выглядело это ещё хуже чем дописанная УТ11. И по функциональности как то проигрывало.

    Reply
  41. Repich

    (39) Хотите расскажу о том, что когда в каталоге временных файлов более 2 миллионов объектов платформа начинает тормозить, но дело совсем не в платформе? Хотя зачем, это все уже давно опубликовано, просто надо знать где искать.

    Reply
  42. Yashazz

    (41) Знаю, сталкивался. Это и сама винда начинает тормозить. Вы лучше объясните мне, какая прикладная польза с вашей публикации. Пока я вижу лишь одну — подтверждение мысли, что нефиг связываться с типовыми конфами, пусть сто раз переделанными. Ну и что если нельзя нарушать лицензионное соглашение, но очень надо, то можно — как ещё Богачёв во время оно рассказывал про «Деловые линии», и что скуль знать надо помимо 1С. А ещё?

    Reply
  43. Rustig

    (38) согласен с вами. в этом мы едины.

    Reply
  44. Repich

    (42) Я не понимаю зачем народ зацепился про типовые. Я строил индекс на нетиповой регистр. И повторяю еще раз — 99% моей работы — исправление говнокода или говноархитектуры внутренних разработчиков. Это не значит, что они плохие, просто не все понимают, как их решение будет работать на 600 транзакциях в минуту.

    Нарушение лицензионного соглашения очень спорный вопрос, так как например смотрите:

    У меня два сервера в AlwaysOn. Один из серверов подключен к app серверу. Я строю индекс на второй, неактивной ноде и он появляется на основной базе. Является ли это нарушением с точки зрения лицензионной политики? Я задавал данный вопрос в 1С, ответ не получил, а наставить не стал.

    Основных причин три:

    1. Сохранить информацию на память для себя.

    2. Показать своим сотрудникам, что именно делается на продуктиве и какими средствами.

    3. Показать людям, которые еще не умеют это делать, показать, что это не сложно и принудить к изучению нового. Показать, что 1С это не только код, но и инфраструктура.

    Reply
  45. Rustig

    (39) я периодически стараюсь вставить свои 5 копеек, когда пишу под такими публикациями — что надо начинать с кода, с общения с пользователями, с замера производительности ….

    Reply
  46. Rustig

    (40) многие организации из типовой ут 11 используют 5% функционала, для них можно было бы самописку разработать, только кто будет программировать за 22600р? это стоимость ут 11.

    Reply
  47. Rustig

    (41) на ИС есть опытные , а есть еще не опытные. Плюсы ставят не опытные. Спорите вы с опытными. В общем, близко к сердцу не принимайте критику. Польза все-таки есть — каждый для себя ее определяет по своему…

    Reply
  48. acanta

    (9) на крупных проектах без такого статуса многие просто бы не взялись внедрять 1с. И это единственное конкурентное преимущество отечественной платформы.

    Reply
  49. Repich

    (47) Я пока не увидел аргументированного спора у опытных. Поэтому давайте или спорить аргументированно либо не спорить совсем. Пока я вижу только фразы вида «зачем вы здесь это написали, это никому не нужно», которые ни аргументами ни критикой не считаю.

    И да, я так понимаю, что тут принято поклоняться плюсикам? Не очень понимаю смысл этого, за плюсиками не гонюсь, что на них покупать не знаю.

    Reply
  50. morin

    (49) Кому-то стало жалко плюсиков.

    Статья хорошая, спасибо автору за труд.

    Reply
  51. starik-2005

    (49) 50 плюсиков = 30 стартманей.

    Reply
  52. morin

    (51) Сейчас начнется торговля плюсиками за возврат)))

    Reply
  53. Repich

    (51) И чего с ними делать? Конвертировать в рубли? Тратить несколько часов личной жизни чтобы с некоторой вероятностью заработать 2500 рублей? Сомнительное удовольствие.

    Reply
  54. acanta

    (52)теперь надо как в кинорейтингах. Сколько плюсиков публикация насобирала в первые две недели проката и сколько всего.

    Reply
  55. SlavaKron
    Форма.Вызов : Обработка.ЗакрытиеДня.Форма.Форма.Модуль.ЗакрытьСобытияНаСервереОбработка.ЗакрытиеДня.Форма.Форма.Форма : 659 : СистемаИнформирования.ОтметитьВыполненностьСобытийСистемыИнформирования(ЗакрываемоеПодразделение); ОбщийМодуль.СистемаИнформирования.Модуль : 507 : РезультатЗапроса = Запрос.Выполнить();

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

    Reply
  56. Repich

    (55) Предварительный результат — нужно не отмечать запись как «Выполненную», а удалять ее. Таким образом количество строк в регистре сократится тысяч до 100.

    Важно(!) Отказаться от запроса — значит взять задачу в спринт, проставить ей приоритет и потом выпустить в релизе. Это от 2 недель до 3 месяцев. Мне же хотелось результат здесь и сейчас.

    Reply
  57. Rustig

    (49) говорю же, не принимайте близко к сердцу

    пишите еще, если есть чем делиться, жду Историю 2, Историю 3 ….

    Reply
  58. Rustig

    (56)

    в спринт, проставить ей приоритет и потом выпустить в релизе. Это от 2 недель до 3 месяцев

    по какой системе управляете?

    на какой программе учет задач ведете?

    релиз через 3 месяца — людей не хватает?

    Reply
  59. Rustig

    (49) иногда публикация дает повод для диалога — и тогда в комментариях дополнительно возникает польза от общения

    Reply
  60. Repich

    (58)

    1. Scrum, не канонический, но какой уж получился. Всех устраивает пока.

    2. TFS+Jira.

    3. Их всегда не хватает, но в данном случае просто задача не приоритетная. Жалоб от пользователей нет, значит нет инцидентов. Нет инцидентов — задача без дополнительных пинков с моей стороны как релиз-менеджера уйдет в самый низ списка.

    Reply
  61. Yashazz

    (40) Насчёт УТ 11 не скажу, а УТ 10.3 и многие плюшки 11-й — есть и неплохо работает. Если что, велкам в личку.

    Reply
  62. Yashazz

    (45) Вот да, иногда безо всяких профайлеров и даже, пардон за ересь, при выключенном ТЖ, хватает банального замера производительности и внимательного курения кода и запросов.

    А насчёт пользы от статьи — я так и не проникся.

    1. Если для себя и на память, то, может, не стоит превращать ИС в личный бложик?

    2. А завтра вы ИС будете использовать как площадку обучения своих юзеров?

    3. Пока что вы показали несколько скриншотов и решение одного очень узкого кейса. Желающим реально познавать — для начала Филиппова в руки и айда.

    Reply
  63. Yashazz

    (47) Плюсы, походу, инстинктивно ставят действительно неопытные, на которых фразы навроде «тонкости разделяемых блокировок» или «уровни изоляции», или там «оптимизация кластерного индекса» оказывают магическое и гипнотическое действие. Непонятно что, неясно нафига, очевидно не для всех, но ооочень круто. А реально — бывает разное, от правда толковых статей (как вот https://infostart.ru/public/1003601/ допустим) до всяких дневничковых записей вроде этой.

    Reply
  64. bulpi

    (40)

    самописной толковой конфигурации по функциональности сопоставимой с УТ 11

    Такой нет 🙂 А почему ? Да потому, что не нужно. Десятки более простых есть (ну, десятки — это если считать еще с версии 7.7), а такой нет. И не будет. Потому, что для решения конкретной бизнес-задачи такой монстр в принципе не нужен. Я Вам открою страшную тайну : типовые конфигурации пишутся не с целью создать классное ПО , и не с целью удовлетворить клиентов. А с целью срубить как можно больше бабла. Помните об этом, и Вам многое станет ясно.

    Reply
  65. bulpi

    (46)

    Таки есть 🙂 Я реально такое делал.

    Reply
  66. Rustig

    (65) почему вы не пишите статьи? делитесь знаниями! а то весь опыт с вами и останется по итогу карьеры. сделайте мир 1с-ников лучше!

    Reply
  67. acanta

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

    Reply
  68. acanta

    (66)Имхо, статьи нужны в начале карьеры для того чтобы облегчить продвижение и выстроить репутацию.

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

    Reply
  69. acanta

    (66) Рустем, а что вам не нравится сейчас в мире 1с-ников?

    Reply
  70. Rustig

    (68) я начинал писать статьи еще тогда, когда стартмани не были введены в оборот… моя мотивация отнюдь не

    (68)

    написание статей за стартмани

    🙁

    Reply
  71. Rustig

    (69)

    (66)

    сделайте мир 1с-ников лучше!

    поясню свою фразу — я легче справлюсь с задачей из новой области знаний, если кто-то опишет свой путь «решения вопроса»…

    по итогу, Инфостарт выручает по многим вопросам — некоторые задачи решаются быстрее обычного…

    Reply
  72. acanta

    (71) какие области знаний в 1с — новые?

    Будете ли вы теперь писать статьи за стартмани?

    Или вас демотивировала такая форма оплаты за ваше творчество?

    Reply
  73. Rustig

    (72) «новые» для меня — те, которых я не касался еще.

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

    лично про меня — я не знаю мобильную платформу, json, многие типовые конфигурации не внедрял, разработкой на УФ не занимался…

    Reply
  74. Rustig

    (72)

    Будете ли вы теперь писать статьи за стартмани?

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

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

    Reply
  75. acanta

    (74) а почему они сложно мыслят и программируют, как вы считаете?

    Reply
  76. Repich

    (29) Нет. Не сможет. Есть обходное решение, но оно костыльное, через копию регистра.

    Reply
  77. bulpi

    (66)

    Я пишу статьи в том случае, если в моем знании есть некоторая универсальность. Какой смысл в статье о том, как я круто описал учет какой-то очень конкретной частной фирмы ?

    Reply
  78. bulpi

    (67)

    Это вопрос не сюда. А в фирму франчайзи. У них есть какие-то более-менее формальные расценки. Я беру «с потолка» — за сколько мне было бы не лень это сделать 🙂

    Reply
  79. acanta

    (78) но ваши клиенты в курсе, что они имеют право по условию подписки на диск ИТС получить бесплатную консультацию 1или 2часа в месяц от фирмы франчайзи, которая осуществляет подписку на ИТС?

    Зачем вообще по вашему мнению, как фрилансера или фикси выполнять привязку продажи 1с лицензий и итс к какой-либо фирме-франчайзи?

    Reply
  80. Rustig

    (75) люди — разные, характеры — разные, опыт, уровень базовых знаний, учителя разные были, разное желание и возможности изучать новое, углублять знания, технологии развиваются быстрее, чем мы успеваем это осознать… в общем-то, эта дискуссия из другой ветки…

    Reply
  81. PerlAmutor

    Недавно начал писать свою процедуру в MSSQL. Объемы данных таковы, что 1С или сторонние приложения их просто не обработают за приемлемое время. Первые версии процедуры отрабатывали примерно за 2 часа. Но мне это показалось много и я решил посмотреть план запросов и сделать все по феншую оптимизации. По рекомендациям студии и глядя на не оптимальные планы запросов я добавил индексы и статистики. Время выполнения процедуры стало занимать 5 часов, планы запросов преобразились, стали красивыми, больше никаких рекомендаций от стадии я не получал. Игрался с набором индексов, их составом, кластерностью, некластерностью, временем их создания (до вставки или после).

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

    Reply
  82. Yashazz

    Так я всё ж не понял, какова для посетителей ИС польза от вашего рассказа? Какие выводы? Имхо — совершенно нулевая и никаких.

    и кстати реально интересно, что думает администрация и модераторы ИС на тему чуть ли не пропаганды нарушения лицензионных соглашений.

    Reply
  83. bulpi

    (79)

    Снова вопрос не ко мне.

    1)Если конфигурация самописаная, то при чем тут франчайзи?

    2)Если типовая, то 1- 2 часа — это вообще ничто. И подписка всего 3 месяца.

    Reply
  84. Repich

    (82) А можете рассказать про свою мотивацию при чтении абсолютно бесполезной статьи и дальнейшем ее комментировании? Мне действительно интересно — зачем? Я вот например просмотрел список ваших работ, но у меня даже мыслей не было зайти и оставить комментарий — «никому не нужны ваши поделки, которые нормальный программист сделает за вечер, да еще и деньги за это платить», потому что понимаю — что это не так. А у вас какая мотивация?

    Reply
  85. acanta

    (84) вероятно для того чтобы вы задумались об этом.

    Нет дыма без огня.

    Видите ли, есть люди, у которых «караван идёт со скоростью хромой лошади», а есть люди у которых «семеро одного не ждут».

    Имхо, все подобные высказывания появляются когда очередная хромая лошадь ошиблась и вместо каравана попала в команду спринтеров.

    Но тут как вы понимаете вопрос в ценности груза и самой возможности замены, а не в хорошем отношении к лошадям.

    Сколько стоит день простоя на вашем предприятии?

    Каков конкурс на вакансию для такого специалиста?

    Reply
  86. Repich

    (85) Ничего не понял, можете без экивоков и странных аналогий? Я что ли хромая лошадь которая ошиблась?

    День простоя стоит дорого. Я думаю миллиарды долларов, если мы говорим про все предприятие в целом.

    О вакансии какого специалисты вы говорите?

    Reply
  87. acanta

    (86) Вы не считаете, что публикация серии таких рассказов способна вырастить множество специалистов, которые станут со временем вашими конкурентами (если я правильно понимаю вопрос в (82)).

    Хромых у нас хватает.. у нас не хватает практики в задачах по оптимизации.

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

    Reply
  88. Repich

    (87) Я вижу в (82) негодование, что статья совершенно бесполезна и неприменима.

    Конкуренции не боюсь, описанное выше — не основная моя функция на текущем рабочем месте.

    Reply
  89. Sergey.Noskov

    (39) а давайте

    Reply
  90. qwinter

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

    Reply
  91. Painted

    (39)

    А мне за это более 200 плюсов?))

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

    Я уже давно привык и вам советую.

    Reply
  92. Yashazz

    (84) Я ж объяснил — ваш-то опыт никто применить не сможет, слишком узкий кейс. Мои поделки всё-таки более широкой применимости. Я искренне недоумеваю, зачем такое публиковать; это действительно сродни рассказам быличек у костра из серии «а вот был у меня случай». У каждого таких случаев множество, зачем их делать как статью?

    Reply
  93. Yashazz

    (87) Ладно бы человек предлагал годное ноу-хау, так ведь это одна правка «по месту» в одном конкретном случае, и не средствами 1С. Ну вот смысл?

    Reply
  94. Yashazz

    (92) Честно? Не просто удивляет, а бесит. Или когда публичный общедоступный ИТС репостят, или «зазеркалье». Происходит замусоривание целевого предметного ресурса, и это снижает его полезность. Или я неправ?

    Reply
  95. Painted

    (95) Правы, но не стоит так переживать.

    «Разумный человек приспосабливается к миру…»

    Reply
  96. Rustig

    (93) у автора История-1. будут еще История-2 и История-3… пож-та, не отбивайте желание писать статьи…

    Reply
  97. VmvLer

    (95) Вы неправы в том, что в этой теме от вас слишком много чернухи.

    Вы напомнили мне не профессионального специалиста, а «сварливую бабу».

    Хватит ныть, согласен с (97)

    Reply
  98. TODD22

    (86)

    Я думаю миллиарды долларов, если мы говорим про все предприятие в целом.

    Вчера где то читал что Huawei оценили убытки от санкций США в 35 млрд долларов в год. Боюсь даже спросить что у вас за предприятие если у вас убытки миллиарды долларов за день простоя.

    Reply
  99. Repich

    (103) Да, пожалуй с ноликом ошибся. Очень грубо на NASDAQ компания стоит $3 млрд, падение на целый день я думаю обрушит акции процентов на 5.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *