fixin (fixin) wrote,
fixin
fixin

Тысяча 1С-чертей!

Давеча пришлось ковыряться с одним отчетом. На него не выделялось очень много времени,  т.к. горели сроки. А жаль, потому что хотелось этот отчет переписать заново.
Косяков там много, настоящий индийский код, хотя автор русский, лично его знаю, правда, он уже уволился.

Итак, основные проблемы отчета:

1. Отчет собран через UNION, т.е. объединяется запрос по остаткам и по движениям, в итоге добавить новый показатель в такую схему сложно, приходится прописывать нули во все остальные запросы, где это поле не рассчитывается. Аналогично сложно понять, как рассчитывается каждое конкретное поле – нужно высчитывать номер колонки в каждом запросе и смотреть, равна она нулю или нет.

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

3. Копи-паста, друзья мои. Один и тот же расчет по позиции происходит  в двух местах. Нет, чтобы вынести в функции, так сделано дублирование. В итоге проще оказалось вынести те куски кода, в которых я точно уверен, что они одинаковые в двух местах, в отдельную функцию, остальное не трогал, поэтому мне менял эту копи-пасту.

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

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

6. Скорость. В отчете 10 000 позиций. Отлаживать нереально – расчет длится минут 10. Пришлось добавить отбор, чтобы работал по 2-3 выбранным позициям.

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

Tags:
Subscribe

Posts from This Journal “1С” Tag

  • Добавление вместо изменения

    По возможности при обновлениях типовых конфигураций нужно использовать добавление вместо изменения исходного кода. Вот в этом примере можно было бы…

  • Ну как же ж можно, 1С?

    Иногда в типовом коде встречаются такие ляпы, что ну просто стыдно. Вот отлаживал для 77 обработку обслуживания популярного фискального регистратора…

  • Доступность меню "Операции"

    УФ портят человека. Возник вопрос, как сделать пользователю ЗУП 2.5 сделать доступными меню операции. Поковырялся в правах, нашел право "Меню Все…

  • Хайдинг заголовка в 1С.

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

  • В заботе о тех, кто придет после нас!

    Чтобы те, кто будут обновлять после нас, заметили важные нюансы, я оставляю общй модуль с КРИЧАЩИМ названием. Почитают, вникнут! Не забудут!

  • Заказчика мучает совесть, но он держится

    Вот один мой заказчик-должник уже больше года должен 13 625 рублей. Я уж и забил на этот долг, так, раз в квартал напоминаю, благо отношения…

  • 1С и котики

    Базовая 1С обновляется так: Заметили котика?

  • Что знает программист 1С

    Ходит расхожее мнение, что программист 1С - это не программист, а так, писатель скриптов. Что любой выпускник технаря будет успешным в 1С, это, мол,…

  • 1С: Поле "Орыгинал"

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

promo fotoded 19:33, yesterday 25
Buy for 100 tokens
Встретил сегодня давнего знакомого. Настолько давнего, что не виделись более 10 лет. Узрел знакомый мои давние татуировки, которые он видел впервые. И задался вопросом по одной из них. Мол, что сие значит? Чому бы не расширить вопрос сей загадки на ЖЖ. Партак:
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 19 comments