Бухгалтерия / Говнокод #11351 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
Если НЕ Отказ И ЭтоНовый() и Роль = Справочники.РолиКонтактныхЛиц.НайтиПоНаименованию("Директор") Тогда
	Пол = Перечисления.ПолФизическихЛиц.Мужской;
КонецЕсли;

Тысячи теток мужского пола негодуют.

Запостил: kovyl2404 kovyl2404, (Updated )

Комментарии (22) RSS

  • Если НЕ Отказ И ЭтоНовый() и Роль = Справочники.РолиКонтактныхЛиц.НайтиПоНаименованию("Директриса") Тогда
    	Пол = Перечисления.ПолФизическихЛиц.Женский;
    КонецЕсли;
    Ответить
  • Хорошее определение пола. Если побежал, значит заяц. Если побежала - зайчиха.
    Ответить
    • А что тут смешного? ЭтоНовый - вполне обычный метод справочника, показывает, что элемент не был записан.
      Ответить
      • Хм. А есть метод, показывающий, что объект модифицирован? Что-то типа Изменен()?
        Ответить
        • Метод объекта Модифицированность(). Но он показывает только, писались ли данные в этот объект с момента его чтения из базы. Т. е., если записать туда то же значение, что и так хранится в базе, объект все-равно будет считаться модифицированным.
          Ответить
          • Т.е. как-то так?

            Создали объект - новый, не модифицированный.
            Поменяли поля - новый, модифицированный.
            Сохранили в базу - не новый, не модифицированный.

            Загрузили из базы - не новый, не модифицированный.
            Поменяли поля - не новый, модифицированный.

            Вполне логичная система, за исключением стиля названий - ЭтоНовый() и Модифицированность(). Имхо, лучше бы они были в одном стиле - к примеру Новый() и Измененный().
            Ответить
            • >лучше бы они были в одном стиле
              Уж как по мне, то лучше бы его (1С:Предприятия, в смысле) вообще не было.
              Ответить
              • А тут палка о двух концах. Или имеем скрипучий, но все-таки единый 1с. С которым с горем-пополам уже знакомы и пользователи и программисты. Или имеем гору несовместимых друг с другом софтин, написанных студентами и индусами за еду, у которых уровень невменяемости похлеще 1с.

                В идеале, конечно, была бы единая, красивая, и удобная система... но этого, как вы прекрасно понимаете, достигнуть очень сложно, если вообще возможно.
                Ответить
                • Да понимаю, конечно. И поэтому, как мышь - плачу, колюсь, но продолжаю жрать кактус, ибо жрать хочется. Но уровень невменяемости говноэс, честно говоря, зашкаливает. Платформа наглухо застряла в прошлом веке. Язык - убожество (те, кто не может без слез взглянуть на русскоязычный код, - не задерживайтесь, пройдите мимо этого коммента, так как я сейчас не о том). Я могу писать на русском языке, я не вижу в этом ничего плохого, поскольку код будут сопровождать исключительно русскоязычные программисты. Но, блять, язык - сам по себе - полное убожество. И еще куча багов платформы, с которыми приходится сталкиваться, а говноэс лишь говорит: "Эта проблема наблюдается исключительно у Вас, мы ничего не можем поделать".
                  Короче, вот. Поплакался, и опять за работу.
                  Ответить
                  • Убожество - это да. Я где-то ради вящего любопытства почитал список косяков в семёрке. Например, в условии Если совсем неленивые вычисления. (Сам не проверял, вещать не буду.)
                    Ответить
                    • > в условии Если совсем неленивые вычисления
                      Да ну не может такого быть... Это же совсем печально. Только goto во всех ветвях с побочными эффектами, только хардкор?
                      Ответить
                      • Ради интереса проверил - в самом деле так, в условии И выполняются обе ветви.
                        Как я читал в той статье, если сначала переменная проверяется на пустоту и далее вызывается некоторый метод, то лучше всего сделать вложенный Если, иначе упадёт при пустой переменной.
                        Ответить
                        • Ааа, т.е. в операторах "и" и "или" нет ленивости... А я уж испугался, что в самой конструкции Если ... То.
                          Ответить
                          • До такого не дошло вроде. Но впредь попробую быть точнее.
                            Ответить
                    • Забавно. Не знал про это (с семеркой никогда не работал). В восьмерке условия нормально обрабатываются. Самый адский косяк в восьмерке (лично для меня) - если внутри явной транзакции выкинуть исключение (и, разумеется, перехватить его выше), то тупо начинают рушиться объекты. Вы туда пишете - оно не пишется. Читаете - оно не читается. Вот, как так можно было сделать?
                      Ответить
            • Стиль? Даже не стоит думать о таком. Такое ощущение, что полностью неконсистентный язык выдумывали разные группы людей, там всё вперемешку. Надо воспринимать как данность, "не пытаться понять, ничего не будет получаться" (q)
              Ответить
      • Не знаю. Не могу нормально воспринимать код написанный на русском языке.
        Ответить
        • If NOT Denial And IsNew() And Role = Catalogs.RoleOfContacts.FindByDescriptio n("Principal") Then
          Sex = Enums.GenderOfPhysicalPersons.Male;
          EndIf;
          Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8