• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

За что я не люблю 1С

  • Автор темы Ramzay
  • Дата начала
R

Ramzay

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

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

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

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

2. Автора языка, наверное, за зверства выгнали из Гестапо. Программы получаются с длинными
строками и сами программы длинные. Ничего не имею против русского языка. Мне даже нравится
писать на нем программы. Но скажите на милость, какой садист придумывал название функций?
Например:
ПустоеЗначение() и ПолучитьПустуюСтроку()
Неужели вместо этих двух нельзя было использовать Пусто(), которая бы делала то, что делают эти две.
И так сплошь и рядом.

3. Общепризнано, что использование оператора Goto - это правило дурного тона.
В языках высокого уровня использование циклов сведено к минимуму.
Наверное когда-то настанут времена, и программисты не станут использовать оператор if
Мне очень не нравиться, что в 1С слишком часто приходится использовать цикл.
И, вследствие того, что методы Выбрать...() имеют не достаточные возможности фильтрации,
приходится не оправдано часто использовать if

4. Компилятор пропускает львиную долю ошибок, которые можно было отловить.

5. Конфигуратор - наверное это придумали инквизиторы. Если отлаживаешь какой-то технологический
модуль, в котором используются различные объекты, каждый объект помещается на отдельную веточку
конфигуратора. Когда отлаживаешь процесс в целом, с большим количеством модулей имеешь 2 варианта:
Или на рабочем столе куча открытых, беспорядочно разбросанных окон.
Или бегай по всему дереву ищи нужный модуль что бы открыть.

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

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

Помимо неудобств, ничего хорошего в этом нет. Неужели сложно было организовать отладку
в конфигураторе, в редакторе программ?

8. В таблице значений есть метод Заполнить. Он не работает, если таблица не имеет строк.
Он выдает ошибку. Бред.

9.Почему ТЗ.ТекущаяСтрока(Ы) не устанавливает номер текущей строки = Ы , хотя в документации об этом написано?
Приходится пользоваться ПолучитьСтрокуПоНомеру(Ы)

10. Из Жз нельзя выбрать с помощью цикла записи, зарегистрированные в нескольких периодах.

11. Нет команды, которая могла бы заполнить колонку Тз данными, которые зависят от значений строк Тз.
И не только ТЗ.

12. Косноязычность. Например, есть такие объекты как Справочники, Документы, ЖурналыРасчетов, ТаблицыЗначений
и др. Все эти объекты изначально представляют из себя некую таблицу. Для того, что бы организовать перебор
записей нужно воспользоваться функцией:
Для справочника ВыбратьЭлементы
Для документа ВыбратьДокументы
Для ЖурналаРасчетов ВыбратьЗаписи
для ТаблицыЗначений ВыбратьЗаписи
и т.д.

В нормальных объектно-ориентированных языках все бы это делалось одним методом: Выбрать.
И так не только с данными методами, так везде.
Существующий подход вносит очень много путаницы.

13. Опять же 1С содержит много по сути однотипных объектов. Но как уже говорилось методы работы
у каждого объекта свои. Причем у каждого свои оригинальные способы и подходы. Это говорит о
недостаточной продуманности внутренней организации объектов 1С. А расплачиваться за все
приходится нам, конечным пользователям.


14. Если в условиях используешь и / или, то выражения с обеих сторон нужно брать в скобки.
Наверное, тот, кто это писал мало слышал о приоритетах операций.

15. Скудный язык запросов.

16. Нет хороших методов, обеспечивающих фильтрацию таблиц. Например, нельзя штатными
средствами в журнале расчетов отображать записи по одному виду расчета.

ps Все сказанное относится к 7.7
С 8-кой не знаком, судить не могу. Только на ум приход пословица о гомне и конфетке.
 
K

KiR

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

tanat

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

Hryv

Ramzay, полностью согласен по пунктам 1 и 6, а также что касается фильтрации и неудобства работы с Таблицей значений
 
V

vbs

Автора языка, наверное, за зверства выгнали из Гестапо.
Не из Гестапо его выгнали, а из 4го класса начальной школы, ибо с таким знанием русского языка ему бы сдача ЕГЭ в конце обучения совсем не грозила бы.

Крик души понять, конечно, можно. Но какие конструктивные предложения ?
7.7 уже была приговорена к похоронам (вспоминаю февраль 2002 года, когда декларировалось, что она доживает последние месяцы :ph34r: ).
В 8ке, по мнению специалистов, все намного лучше. А я припоминаю еще первое знакомство с продуктом 1С:Бухгалтерия образца 1990 года. У меня тогда
девчонки на клиппере методом "на коленке" за неделю клепали продукт ничуть не хуже. Потом 6.0 - волосы до сих пор дыбом стоят.
Так что, тенденция к развитию налицо, а пожаловаться можно на разработчиков любой программной среды, можете на слово поверить, для меня это 12-я уже ;)
 
Z

Zab

Рискуя найти не понимание среди завсегдатаев форума, хочу сообщить следующее об 1С:
Как я вас понимаю!
Но представляете, не знаю ничего лучше 1С для решения учетных задачь в том виде, в котором они существуют на просторах СНГ. А если еще вспомнить про то, что семерка - программа 1996 года, подумать только, 13 лет. Поди уже выросло поколение айтишников, которые и винду то 98 не ставили ниразу...
 
E

ech

и еще без ВК 1С 7.7 достаточно убогая вещь.
 
V

vbs

без ВК 1С 7.7 достаточно убогая вещь.
Замечание не совсем в тему.
Еще 8 веков назад один умный грузин сказал умную вещь:
Каждый мнит себя стратегом, видя бой со стороны
Не очень мне понятно, что мы обсуждаем ? Недостатки встроенного языка ? Неудачную структуру запросов ?
Сложилось впечатление, что страничка содана, чтобы любой мог пожаловаться. А многим есть на что, но изменится-то что после этого ?
Позовите сюда г-на Нуралиева и Ко.
А ведь к месту могла бы оказаться еще одна поговорка :
Кто хочет - находит возможности, кто не хочет - ищет отговорки
 
G

Guest

Я конечно повторюсь, но автору поста: "Никто тебя не тянул связываться с 1С"... Есть много альтернатив ему - выбирай... в конце-концов, раз уж тебе подавай ООП, то, например, в Си клепай таблички.... ну или для начала на БАсике =) Хотя... на самом деле, попробуй 8ку ... грешно создвать такой пост про 7.7 и жаловаться когда 1Совцы выпустили уже версию 8.2 ...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!