Жёлтым по белому, выпуск 2

19.10.23

Сообщество - О жизни

Чисто поржать

Случайное ускорение расчёта себестоимости

Случайный кейс ускорения расчёта с/с в ЕРП случился.

Клиент обратился, Большой и Уважаемый в Челябинске. Себестоимость, говорит, долго считается: 20-40 часов.

Это чисто расчёт себестоимости, другие операции закрытия тоже тормозят.

Сделайте хоть что-нибудь, направление подскажите, может чё не так делаем.

Покопался, и почему-то опять повезло - нашёл в партионном учёте место, где порождается больше 1 млрд. связей.

Эти связи обрабатываются даже не запросом - кодом. Т.е. какой-то код бегает миллиард раз, что-то куда-то гоняет - партии прокидывает, наверное.

Говорю "наверное" потому, что обошёлся вообще без отладчика - просто внимательно прочитал протокол расчёта, там все замеры есть.

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

Что интересно - движения там не сказать, что прям по делу были развёрнуты. Там к себестоимости зачем-то прицепили счета-фактуры и НДС, которому эта себестоимость ни к селу, ни к городу. Сэкономили, видимо.

Написал на партнёрке, получил три лайка.

ДО 3, проказник

На прошлой неделе маленький, но гордый ДО 3 очень интересно уронил сервер клиента.

Короче, стоял ДО 2, никого не трогал, клиент пробовал в нём работать. База весила меньше 1 Гб, в виде dt - около 300 Мб.

Малявка, наверное как демобаза.

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

А потом вдруг - АААААААААА - админ пишет, что база ДО разрослась до 400 Гб!

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

Но не надолго. ААААААААААААААА база ДО продолжает расти! На 1 Гб в минуту! Всё, щас винт кончится!

Снял корону, бегу смотреть. Одного человека отправил смотреть со стороны SQL, сам из базы смотрю - в ДО 3 есть стандартная измерялка размеров таблиц. И она, блин, показывает 300 Мб! Я думал - ну, мало ли, может кто-то с дуру к документу ДО приложил фильм blu-ray. Нет, данные в норме.

Чувак со стороны SQL тоже в панике - растёт не лог, а именно база. Шринк не помогает. Ничего не помогает.

Бежим в ЖР - ну, ничего особенного там нет. Что-то делается, что-то пишется, но без ошибок, и интенсивность записи - самая обычная.

В активных сеансах висят ФЗ - так это нормально, ДО 3 даже в заднице через ФЗ ковыряется - мода нынче такая.

Я думаю - есть несколько минут, сниму бэкап. И вот чот думалось, что в dt выгрузятся те же 300 Мб. Выгружаю - да, блин.

Админ деаттачит базу, валит её нахер, перезагружает сервер. Делаем новую базу, загружаем dt, запускаем, ждём...

Опять растёт на 1 Гб в минуту!

Чё делать? Ну, надо что-то делать. Отключаем регл.задания. Штош - база перестаёт расти. Оставили в таком состоянии - на сколько успела вырасти, но с выключенными регл.заданиями, и больше не растёт.

Ковыряюсь, смотрю - ничё не могу найти. Всё хорошо.

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

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

Только сел чайку попить - админ опять пишет. Эх, растёт дальше.

Ну думаю, сраный ДО, не победишь ты меня, говна кусок. Иду смотреть на работающие ФЗ. Вижу, что некоторые регулярно перезапускаются, а несколько зависли. 5 минут, 10, 20... Висят, но ничего не делают. Ничего не пишут. Как назло, у админа была выключена серверная отладка, поэтому задача получилась детективная.

Зависшие ФЗ - обработка очереди. Есть там какая-то такая хрень, которая двигает задачи по маршруту, вроде. Я плохо знаю ДО, не люблю его.

Информацию о том, что куда двигать, берёт из справочника - есть там такой. В нём - несколько десятков элементов, часть из них красненькие - ошибки в них.

Ага, думаю. Там же счётчик нарисован - сколько было попыток обработки элемента, и сколько он уже чего-то там ждёт. У всех красненьких время примерно соответствует тому, сколько висят ФЗ. Есть протокол обработки этих элементов, в виде текста - пару дней назад в обоих была ошибка, связанная с правами на какие-то грифы. Спрашиваю у программистов - да, чот тыкались, разбирались вместе с клиентом в ДО 3, включили какие-то грифы.

Ладно, идём выключать грифы. Валим ФЗ, запускаются новые, и опять зависают. Грифы, не грифы - пофиг им. Видимо, в ДО 3 всё зависает раз и навсегда.

Ладно, помечаем на удаление. Делаем удаление помеченных - о чудо, нет на них ссылок! Торжественно удаляем эти зависшие штуки, и всё работает норм.

Ну вот чё это было?

Ты сюда не лезь

Несостоявшийся кейс по производительности. Большой завод, УПП, себестоимость считается то ли сутки, то ли больше. Регулярно обращается во франчи с задачей оптимизации. Что важно: обращается ИТ-отдел.

Все разговоры, конечно, крутятся вокруг СУБД, серверов, оптимизации типовых запросов. Эксперты по производительности пыхтят, выжимают последние соки, как-то становится чутка лучше, ИТ-отдел выдыхает. Где-то через год история повторяется.

Один раз меня зачем-то подпустили. Полез в базу - в рот мне ноги... 10 000 записей в способах распределения затрат! Десять тысяч, Карл! С одинаковым, блин, способами распределения! Раньше была такая проблема в УПП - надо было вбивать каждое сочетание статьи и подразделения, иначе не закрывалось.

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

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

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

Угадайте, что сказал ИТ-отдел? Им страшно пойти в бухгалтерию и предложить списать остатки из регистра, о существовании которого бухгалтерия даже не подозревает (в оборотке-то всё закрывается).

Только технические решения. В методику не лезьте, не ваше дело.

И так каждый год.

Нельзя уволить

Вчера случилось забавное приключение. Началось не страшно - люди в ЕРП не могут сформировать форму Т-8, приказ об увольнении. Выдаёт странную ошибку, типа файл такой-то не обнаружен. Причём, не во всех документах - где-то норм. По описанию похоже на проблему серверного кеша. Ну, садимся потихоньку ковыряться - не срочно и не страшно вроде, формочка простая, увольнения случаются не часто.

Остановка по ошибке не помогает. Значит, надо отладочкой идти. Лень. Подождём, может само рассосётся. Но на всякий случай посадил человека разбираться.

А тут вдруг скдыщ! - та же ошибка начинает рандомно выскакивать в кадровых документах и справочниках. Теперь нельзя ни уволить человека, ни принять. У клиента нарастает паника. Штош, садимся разбираться по-настоящему.

Итак, остановка по ошибке не работает. Идём отладкой. Печатная форма Т8 - никакая не печатная форма, а отчёт, который печатной формой прикидывается. Внутри прост, как топор - выполняется СКД, в дерево значений, потом циферки и буковки из дерева подставляются в макет.

Отладочка говорит - падает на программном выполнении СКД, когда процессор выводится. Так, ещё интереснее.

Все знаем, СКД - штука капризная. Любит куда-то зачем-то закешировать настройки, чтобы потом падать с ошибкой или не реагировать на изменения в схеме компоновки. И сама дура, на уровне платформы, и БСПшная оболочка с вариантами отчётов - то ещё чудище.

А тут вроде похоже на проблему непрошенного кеширования настроек - падает ведь не везде. Ладно, применяем старый добрый метод - сохраняем отчёт Т8, как внешний, меняем всё, что можно - имя файла, имя отчёта, синоним, имя основного варианта. Ругается, что внесены критичные изменения - самозащита ЗУПовских модулей срабатывает. Затыкаем её рот. Но - хрена с два, внешний отчёт тоже ни бе ни ме.

Ладно, зато у нас теперь есть внешний отчёт, в котором можно вытворять всё, что угодно. Да, забыл - всё это делается на рабочей базе, копии нет. Клиент зачем-то пользуется арендованным облачным сервером, и добиться чего-то от волшебной администрации этого облака почти нереально. Поэтому работаем нежно, даже документы не перепроводим.

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

Ковыряем дальше схему компоновки во внешнем отчёте. Запрос - простой, палочкой потыкали - не помогло. Пошли бегать по закладкам конструктора СКД. Под подозрение попали вычисляемые поля - там целый клондайк, штук 15, и большинство вычисляются встроенными функциями ЗУПа.

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

А в коде красота. Не знал, что по склонению столько кода написано. Там примерно три способа, как получается склонённое ФИО:

1. Платформенная функция склонения;

2. Кеш (есть регистр сведений, в котором кешируются склонённые ФИО в пяти падежах);

3. Какой-то внешний сервис, забыл название - то ли Морфий, то ли Морфеус.

Ну, дальше просто. Документ, из которого Т8 печатается, брал склонённое ФИО из кеша. Все остальные не находили сотрудника в кеше, и пытались просклонять платформенной функцией. А она, бедняжка, почему-то слегла. Судя по тому, что она ругалась на файл, это сторонняя компонента, встроенная в платформу. В УПП и ЗУП 2.5 тоже была внешняя компонента, но она прям внешней и была - в виде общего макета, вроде, лежала. Тут она, получается, сохраняется на диск, исполняется, самоудаляется. Ну или файлы какие-то в процессе работы пишет на диск, но тот ей говорит твёрдое "нет".

По коду видно, что платформенное склонение - штука капризная, и разработчики ЗУПа/ЕРП об этом знают. Склонение обёрнуто в попытку/исключение, и в случае ошибки пишется в ЖР с отдельным событием, типа ошибки склонения. Однако, вот эта ошибка с файлом, которая у нас была, в исключение не падает, Попытка не спасает.

Да, а остальные-то документы чё падали? Приёмы на работу и т.д. Тоже несложно - они все иногда отправляют сотрудника кешировать склонённое ФИО. В т.ч. - просто запись сотрудника в справочнике, если диагностируется изменение ФИО (достаточно пробельчик добавить в конце).

Ну, чё делать - говорим клиенту, что надо всё равно почистить серверный кеш и ребутнуть службу сервера 1С. Он вздыхает, вспоминая клиентоориентированность своего облачного провайдера. Идёт писать Заявление.

А мы ставим заплатку - не используем платформенное кеширование склонения. Теперь все некешированные ранее ФИО выводятся в именительном падеже, в печ. формах приходится исправлять вручную. Хорошо, что людей принимают и увольняют не так часто.

См. также

О жизни Россия Бесплатно (free)

Данная статья сугубо для раздела «О жизни», но может оказаться полезна многим членам сообщества. Все описанное ниже соответствует актуальному российскому законодательству на момент публикации статьи. У вас нет и в ближайшее время не предвидится детей возрастом до 1.5 лет? Вспомните о родственниках / друзьях / коллегах / знакомых, у которых они есть, и отправьте ссылку на эту статью — она может быть им чрезвычайно полезна. Распространите среди жильцов вашего ЖЭКа, как говорилось в одном классическом произведении. Помните, что, ставя плюсы к статье, вы поддерживаете её автора!

01.07.2024    3117    madonov    35    

44

О жизни Linux Системный администратор Программист Платформа 1С v8.3 Россия Бесплатно (free)

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

16.05.2024    4200    soulner    32    

43

О жизни Россия Бесплатно (free)

Подводим итоги работы в 1С за 2023 год. Все о вас: 4 подробных раздела с цифрами, графиками и ужасными цветами диаграмм (должна же где-то быть стабильность).

08.02.2024    25002    Neti    85    

117

О жизни Бесплатно (free)

В процессе написания статей на тему Идеальное место работы ЗУПера нужен аргументированный текст про адекватного работодателя. Информации получилось много, поэтому выделю в отдельные 2 статьи. Рассмотрим все недостатки работодателей от момента собеседования до момента увольнения. Все этапы, как всегда, подкреплены реальными случаями из моего опыта.

22.01.2024    4617    biimmap    67    

73

О жизни Конфигурации 1cv8 Бесплатно (free)

В процессе написания статей на тему Идеальное место работы ЗУПера нужен аргументированный текст про адекватного работодателя. Информации получилось много, поэтому выделю в отдельные 2 статьи. Рассмотрим все недостатки работодателей от момента собеседования до момента увольнения. Все этапы, как всегда, подкреплены реальными случаями из моего опыта.

16.01.2024    6044    biimmap    99    

79

О жизни Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Импортозамещение увеличило потребность в архитекторах, аналитиках, разработчиках 1С, в т.ч. по ЗУП. Все их ищут всеми возможными способами, но не могут найти и не знают, чем же их завлечь к себе!? Давайте разберёмся в этом вопросе!

27.11.2023    4973    biimmap    52    

73

О жизни Сообщество Бесплатно (free)

Прочитав название публикации, мысль возникает о свадьбе... Но речь не об этом!

25.08.2023    2790    biimmap    24    

51

О жизни Россия Бесплатно (free)

«Многие кандидаты хотят от собеседования простую вещь: чтобы оно длилось пять минут и брали сразу на 300 000 в наносекунду», — Эльдар Мингалиев, разрабатывает новые форматы собеседований.

22.08.2023    14710    Neti    161    

108
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. maksa2005 540 19.10.23 09:16 Сейчас в теме
база ДО продолжает расти! На 1 Гб в минуту!

Забавное явление.

грифы

Что это?
2. dvsidelnikov 69 19.10.23 09:30 Сейчас в теме
(1) про секретность, видимо...
3. maksa2005 540 19.10.23 09:31 Сейчас в теме
(2)Я видимо "далекий" человек и не понимаю что может быть секретного в базе в 1гб) А ну ладно. Может автор скажет...
4. 1c-intelligence 12825 19.10.23 10:40 Сейчас в теме
(1) грифы - какая-то хрень в ДО 3. То ли про доступ, то ли про подпись.
xantif_2000; +1 Ответить
9. Senator_I 183 19.10.23 14:02 Сейчас в теме
(4) Гриф это типа на документе признака. Совершенно секретно, для служебного пользования и т. п. Это я так, как готовившийся спец-конса по ДО сдавать уточняю)))
11. tolyan_ekb 105 19.10.23 16:01 Сейчас в теме
(4) Эпитеты к ДО порадовали ))
romankoav; anastasita_z; xantif_2000; seperblunt2; +4 Ответить
12. Serg2000mr 429 19.10.23 20:22 Сейчас в теме
5. &rew 50 19.10.23 11:02 Сейчас в теме
Вот я посмотрел, сначала, думаю - "Нах ..чем я это прочитал?" А потом понял - а кейсов по расследованию всякого непонятного поведения системы реально не хватает.
6. Дмитрий74Чел 237 19.10.23 11:23 Сейчас в теме
И ни слова про гениального Сергея?!
Эх, пропали все полимеры!
7. Светлый ум 407 19.10.23 11:28 Сейчас в теме
Нельзя уволить...В ЗУПах все интереснее работать...

https://forum.infostart.ru/forum29/topic291878/
14. Светлый ум 407 20.10.23 05:37 Сейчас в теме
(7) "Не открывается форма отчет ЗУП 3" тоже расследование
- как в итоге оказалось "кривого типового" функционала, а также схожих
8. smit1c 106 19.10.23 13:43 Сейчас в теме
Про
нельзя уволить
почему-то подумал про закладку программиста 1С, если его ФИО совпадает с ФИО в документе увольнения, то документ не печатается и не проводится ))))
alexey-simf; muskul; &rew; NiGMa; TMV; RustIG; +6 Ответить
10. Painted 49 19.10.23 15:36 Сейчас в теме
Каждую ночь служба 1С перезапускается, серверный кэш чистится.
Вот какой я молодец ))
16. comptr 34 20.10.23 10:40 Сейчас в теме
(10) если перезапуск службы и очистка серверного кэша действительно необходимы в вашем случае, то это видится лишь заметанием проблемы под ковёр, в надежде, что она не усугубится или будет уже не вашей проблемой.
13. jovvy-ingrp 19.10.23 20:52 Сейчас в теме
А первая часть была и мне её не найти или я что-то не понял? :(
15. sandr13 35 20.10.23 09:55 Сейчас в теме
В активных сеансах висят ФЗ - так это нормально, ДО 3 даже в заднице через ФЗ ковыряется - мода нынче такая.
)
xantif_2000; +1 Ответить
18. Cерый 26 20.10.23 15:52 Сейчас в теме
Рад Вас видеть!
Странно, в ТОП-100 некий условный рейтинг: Вы на 22-м месте с рейтингом 329, в личном кабинете 12685;
как Вам идея склонять ФИО один раз (н-р, при приеме), получать подтверждение и хранить в базе?
EvgeniyOlxovskiy; +1 Ответить
19. TerveRus 23.10.23 10:08 Сейчас в теме
Кейсы понравились, ЧСВ автора не понравилось, зашкаливает.
Лень в отладку заходить, ну ладно так и быть, когда уже сервера легли.
sikomor3; Cерый; +2 Ответить
20. Cерый 26 23.10.23 16:12 Сейчас в теме
Кейсы хотелось бы подробнее, а ЧСВ предлагаю мерять по ТОР-100 авторов - повторюсь, 22-е место, зашкаливает понемногу ...
21. Vinzor 102 24.10.23 06:27 Сейчас в теме
Тоже был случай падения формы толи Т-8, толи Т-5 или Т-1, неважно.
Тоже на "Процессоре чего-то" в СКД.
Дело срочное, крупная компания, кадровых движений в базе - сотни в сутки.
Слепил внешнюю печатную шустро: достал из СКД запрос на представлениях, допилил его нужным, во внешней обработке написал нужный код получения данных и выкладку их в макет, макет забрал в обработку из конфы, отладил и вперед, пользуйтесь этим.
Работа возобновилась.
Проблема с типовой мягко и незаметно сама исчезла на следующий день. Таки понять, что было, не было времениЮ тьма других задача. Загадка, однако.
22. Cерый 26 27.10.23 12:47 Сейчас в теме
С ТОП-100 разобрался, смотрел "Год" по умолчанию, на вкладке "Все" рейтинг совпал с профайлом, первое место, поздравляю!
Прикрепленные файлы:
23. mrf 12.11.23 15:18 Сейчас в теме
Счета фактуры к партиям себестоимости не просто так цепляют.
Это нужно не для целей расчета самой себестоимости, а чтобы вести учет сложного НДС. Это когда НДС по одним и тем же затратам может быть с разной ставкой и на разные направления. Соответственно будут разные правила возмещения по таким счетам фактурам.
24. sasha_r 16.11.23 13:32 Сейчас в теме
Оставьте свое сообщение