"Перлы" (Жемчужины) или как не надо писать на 1С

23.03.09

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

ф3="99";  ф4="8";   ф1="01.0";
ф2="9.1";
    Раз=Дата(ПолучитьДатуТА())-
        Дата(ф1+ф2+ф3+ф4);

Нашел на просторах интернета замечательные решения.
Сам никогда этой статьи не видел, так что если баян сильно не ругайте.
PS: Поиском пользовался. На этом сайте этой статьи не нашел.

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

 

1. Часто начинающие программисты, стараясь «заточить» свою программу под конкретного заказчика, перегибают палку и вот что у них получается:
 
Если ТЗСотр.Сотрудник.Подразделение.Получить(НаДату).Код="7" тогда

Если ТЗСотр.Сотрудник.Должность.Получить(НаДату).Код<>"00055" тогда
Если число(ТЗСотр.Сотрудник.Оклад.Получить(НаДату).Код)<13 тогда

 

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

 
Всего=Точка1+Точка2+Точка3+Точка4+Точка5+Точка6+Точка7+Точка8+Точка9+Точка10+

Точка11+Точка12+Точка13+Точка14+Точка15+Точка16+Точка17+Точка18+Точка19+Точка20+

Точка21+Точка22+Точка23+Точка24+Точка25+Точка26+Точка27+Точка28+Точка29+Точка30;

И там же:

Процедура  ВводНового()
Склад = Константа.ОснСклад;


Спр=СоздатьОбъект("Справочник.Точки");
Спр.НайтиПоКоду("1");
Имя1=Спр.ТекущийЭлемент();

Спр.НайтиПоКоду("2");
Имя2=Спр.ТекущийЭлемент();
Спр.НайтиПоКоду("3");

Имя3=Спр.ТекущийЭлемент();
Спр.НайтиПоКоду("4");
Имя4=Спр.ТекущийЭлемент();

Спр.НайтиПоКоду("5");
Имя5=Спр.ТекущийЭлемент();



Спр.НайтиПоКоду("29");
Имя29=Спр.ТекущийЭлемент();
Спр.НайтиПоКоду("30");

Имя30=Спр.ТекущийЭлемент();

 

3. Просто, "гениальные" названия:

Константа.Новый2;
Перечисление.Скотч;
Процедура Сформировать88888888();
Процедура Сформироватьчччччч();

 

4. Люди – полиглоты:

Пока ПолучитьСтроку() = 1 do


enddo;

 

5. Кто ищет тот найдет! Но видимо не в этот раз :)

Если -Зн>10000  тогда

Спр.НайтиПоКоду( -(Цел(Зн1/10000)) );
ВВ=Спр.ТекущийЭлемент();
//СС=Выб

Сообщить(ВыбПлан.Субконто);
СпрС.Вид(ВыбПлан.Субконто);

СпрС.НайтиПоКоду ( (-зн1)-(10000*( -(Цел(Зн1/10000)) )) ,0);
СС=СпрС.ТекущийЭлемент();

иначе
Спр.НайтиПоКоду(-Зн1,0);
ВВ=Спр.ТекущийЭлемент();

СС=0;
КонецЕсли;

 

6. А что эта гениальная программа делает?

Процедура  ОбработкаПоставщиков()
ф3="99"; ф4="8"; ф1="01.0";

ф2="9.1";
Раз=Дата(ПолучитьДатуТА())-
Дата(ф1+ф2+ф3+ф4);

Если Раз<0 Тогда
Раз=0;
КонецЕсли;

к=0;
Пока к<(Раз*380) Цикл
//Сообщить(К);

к=к+1;
КонецЦикла;
КонецПроцедуры

См. также

"250+ тысяч, в штат и работу пока не ищу": как изменился типичный 1С-ник в 2023 году

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

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

08.02.2024    21383    Neti    85    

106

Адекватность работодателя. Как её определить? Часть 2. Процесс работы, от испытательного срока до увольнения

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

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

22.01.2024    3462    biimmap    61    

66

Адекватность работодателя. Как её определить? Часть 1. Собеседование, заключение трудового договора

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

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

16.01.2024    4940    biimmap    99    

76

Идеальное место работы для ЗУПера... Какое оно?! Часть 1. Негативные тенденции, ненужные знания.

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

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

27.11.2023    4163    biimmap    52    

72

15 лет вместе...

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

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

25.08.2023    2412    biimmap    23    

46

Как изменилось собеседование разработчиков 1С за последний год

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

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

22.08.2023    13707    Neti    161    

107

Зачем и как ставить плюсы

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

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

21.08.2023    3560    biimmap    93    

126
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Valet 56 20.03.09 11:50 Сейчас в теме
(0) Некоторые конечно "Перлы", но грешно смеятся над убогими.
Думаю вы просто не работали в условиях, в которых писался этот код.
Когда к вам прибегают и говорят, что надо через 5 минут, для одного клиента/товара/должности и реквизита никакого вы завести не можете, т.к. в базе работает 100 человек.
Да и религия не позволяет заводить для одного элемента реквизит.
Так и рождаются такие решения. Рождаются как временные, но нет ничего более постоянного как что-то временное.
Также часть "перлов" похожа на отладочный код, до которого не доросли руки переделать.
Так что это статья не про то "как не надо писать", а "как потешить свое самолюбие".
Попробуйте просто подумать "почему" писался этот код, а не "как" он писался.
Сорри за возможно резкую критику.

TreeDogNight; lesna; spel; basha; kozavka; sergey_s_v; Fuego; +7 1 Ответить
2. adakabo 62 23.03.09 07:51 Сейчас в теме
3. Арчибальд 2706 23.03.09 09:47 Сейчас в теме
В первом примере вообще все нормально. В списке сотрудников работник на должности любовницы директора (стандартный код 00055) и люди с персональными окладами апостолов-основателей подлежат обработке по специфическим правилам.
Fuego; shard; viddik; +3 Ответить
4. СергейКа 669 24.03.09 12:54 Сейчас в теме
Если так писать, то никакой "обфускации" кода не потребуется :)
5. molot 285 24.03.09 21:25 Сейчас в теме
Пипец... Курящие зайцы :)

На самом деле, было бы смешно, если бы не приходилось с этим сталкиваться...

Вот вам, кстати, из типовой бухгалтерии (р. 1.6.12):
____________________________________________________

Если Лев(Выборка.СчетЗатрат.Код, "2") = "26" Тогда
Продолжить;
Если ТаблицаПроизводства.Количество() > 0 Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
____________________________________________________

6. molot 285 24.03.09 21:26 Сейчас в теме
To Valet: уважаемый, причина, по которой пишут ТАКОЙ код - только одна: низкая производственная культура программистов, над чем, собственно, и стеб. По этой же причине жигули рассыпаются еще в автовозе, а интеллигенция мочится в подъездах :).
7. Valet 56 24.03.09 21:45 Сейчас в теме
(6) О производственной культуре программистов можно говорить, только если есть отдел из нескольких программистов. А наши реалии таковы, что есть программист (думаю большинство писавших код выше - не высокооплачиваемые) и есть руководство, которому до культуры дела нет.
Попробуйте донести такому руководству, что нужно время на "рефакторинг".
И поймете что придется вам жить с таким кодом до перехода на новую "платформу".
А посмеяться можно и над инвалидами и над маленькими детьми - они тоже ходить не умеют. Может люди "второй день" конфигуратор открыли.
Я к тому что нужно уважать своих коллег - сами ведь также писали первый раз.
Новенький; AlbertBug; basha; kozavka; +4 Ответить
8. пользователь 24.03.09 21:50
Сообщение было скрыто модератором.
...
9. biv75 24.03.09 21:54 Сейчас в теме
Ну вот например написанием типа
"Если ТЗСотр.Сотрудник.Должность.Получить(НаДату).Код<>"00055" тогда"
сам бывает грешу, доводил недавно до ума налоговый учет на предприятии, а спец по налоговому учету, такая барышня... что легче дать, чем объяснять почему нет, построили вроде стройный налоговый регистр, все объекты учета красиво в него ложаться, а одно ОС попадает в регистр, а не должно, выяснил почему, вобщем чтобы всё красиво получилось надо ворошить всё с начала года, а ОС всё, выбыло, и движений по нему не будет, ну вобщем легче было подобное написать чем убеждать что надо всё сделать по уму.
10. O-Planet 6431 24.03.09 21:55 Сейчас в теме
Лишний раз убедился, что над другими надо смеяться реже. Из всего, что приведено, немного удивил пример с суммой точек, хотя такое иногда приемлемо.

Но особенно порадовал пример и комментарий "6. А что эта гениальная программа делает?" Так вот. Она делает как раз все правильно. И как раз так, чтобы такие как ты не поняли, что она делает :)

Автору - минус.
Новенький; NatalyaVP; kozavka; Ломастер; galev; корум; shard; +7 Ответить
13. vasiliy_b 284 25.03.09 09:14 Сейчас в теме
(9,11) С таким подходом программирования "На скорую руку", в конечном итоге и получается не конфигурация, а собрание сочинений на скорую руку. А когда приходит другой программист, добрыми словами он ВАс уже не вспомнит. Когда прибегает кто-то со словами "надо срочно, через пять минут" надо посылать, ибо надо уважать себя, и свою профессию. Посылать всех подальше(начальство лучше культурно).т.к надо было раньше думать.
Не забываем что работа программиста начинается с подписанного технического задания, и ни как по другому, это надо взять за правило.
(10) а в пункте 6 уж ни как не выполняется:
1. Обработка поставщиков.
2. Читаемость кода.
3. Весь код можно было написать в пару строк.
4. если программист пытался запутать кого-то этим кодом, то у него ни чего не получилось. так как понадомится несколько минут, чтоб разобраться, что в ней происходит.
в итоге вся функция бред.
oleg974; Lieut; illarion; +3 Ответить
11. Емельянов Алексей 158 25.03.09 07:32 Сейчас в теме
Никогда так не писал, даже когда только начинал работать, учился все-таки на программиста.
А случаи всякие бывали, и когда за 5 минут надо было сделать! Даже такие что за 30 минут до закрытия налоговой прибегал бухгалер (а до налоговой еще ехать надо) и начинал истерично орать ВОТ ЭТО НАДО СРОЧНО!!!! Успевал как то...
TreeDogNight; +1 Ответить
12. Paranoid_Android 25.03.09 09:03 Сейчас в теме
O-Planet
Не понял я...
О великий проясни !!!
14. O-Planet 6431 25.03.09 09:39 Сейчас в теме
(12) А что не понятного-то? :) Видно сразу, что ОбработкаПоставщиков() - не доделана. Первая ее часть - попытка написать что-то вроде "защиты", основанной на проверке даты. В цикле аффтор смотрел, как считается что-то, что он хотел посчитать. Закомментировал. Но цикл так и не заполнил. предполагаю, что эта процедура в модуле вообще ни где не вызывается. Автор ее просто не дописал.

(13) Нормальная работа программиста у клиента - это всегда работа "на скорую руку". Но это не должно влиять на качество кода, потому что, как правило, все задачи и приемы их реализации - типовые, и делаются сотню раз.
15. smirnov.a 621 25.03.09 09:48 Сейчас в теме
16. Rusk51 88 25.03.09 10:51 Сейчас в теме
Если бы строители строили дома,как программисты пишут код, то любой
дятел разрушил бы цивилизацию.
17. 0pex 164 26.03.09 06:47 Сейчас в теме
Есть у хомо-сапиенс такое "отличительное свойство", когда он [конкретный человек] постигает высоты какого-либо мастерства, то тех, кто только учится и допускает грубые ошибки, готов "съесть целиком", несмотря на то, что в своих ошибках он [конкретный человек] никогда не признается.

Хочу заметить, что данное "свойство" (фишка, фича, баг - нужное подчеркнуть) чаще встречается именно у IT'шников.

Не судите и не судимы будете.
sergey_s_v; +1 Ответить
18. 0pex 164 26.03.09 06:48 Сейчас в теме
Почему бы просто не улыбнуться и исправить ошибку? довести код до совершенства?

Эгоизм и "звездная болезнь" не каждому позволяют это сделать видимо....
Blade Runner; Lieut; +2 Ответить
19. togomsk 26.03.09 11:19 Сейчас в теме
Не вижу ничего смешного.
Таких примеров написания кода- пруд пруди, хотя бы на данном сайте.
Впрочем, и сами типовые конфигурации от данных "образцов" недалеко ушли, к сожалению.
20. logarifm 1117 26.03.09 21:49 Сейчас в теме
Блин, вам смешно, а у меня на работе директор департамента ИТ пишет такое:

Если Пользователь.Код = "ВасяПупкин" Тогда
фл = 1;
Иначе
фл = 0;
КонецеЕсли;

Это еще что, а это все в глобальном модуле. И зп у него бля от нють не маленька, везет же дятлам!!!
21. biv75 26.03.09 23:05 Сейчас в теме
(20) Ну нормально, кто не умеет писать, тот руководит )))
Не давайте ему писать, пускай департаментом управляет
22. Поручик 4670 27.03.09 12:46 Сейчас в теме
Пример реальной конфы. Я был просто в акуе. Вот прям так, всё сохранено, за исключением конкретных названий:
Код
Процедура ВводНового()
Автор = "Создатель документа: " + Строка(ИмяПользователя()); 
Подр = СоздатьОбъект("Справочник.Подразделения");
Если ИмяПользователя() = "МенеджерХХХХХХХХХХХ" Тогда
Подр.НайтиПоКоду("0002",0);
ИмяРегПроекта = Подр.ТекущийЭлемент();
ИначеЕсли ИмяПользователя() = "МенеджерХХХХХХХХХХХ" Тогда 
Если Вопрос("Имя проекта: YYYYYYY ?",1) = 1 Тогда 
Подр.НайтиПоКоду("0003",0);
ИмяРегПроекта = Подр.ТекущийЭлемент();    
Иначе
Подр.НайтиПоКоду("0004",0);
ИмяРегПроекта = Подр.ТекущийЭлемент();   
КонецЕсли;
ИначеЕсли ИмяПользователя() = "МенеджерTTTTTTTT" Тогда 
Подр.НайтиПоКоду("0001",0);
ИмяРегПроекта = Подр.ТекущийЭлемент(); 
ИначеЕсли ИмяПользователя() = "МенеджерNNNNNNNN" Тогда 
Подр.НайтиПоКоду("0004",0);
ИмяРегПроекта = Подр.ТекущийЭлемент(); 
ИначеЕсли ИмяПользователя() = "МенеджерCCCCCCCCCC" Тогда 
Подр.НайтиПоКоду("0005",0);
ИмяРегПроекта = Подр.ТекущийЭлемент();
ИначеЕсли (ИмяПользователя() = "Программист") или (ИмяПользователя() = "РуководительПроекта") Тогда  
ВвестиЗначение(ИмяРегПроекта,"Введите имя регионального проекта","Справочник.Подразделения",,);
КонецЕсли;
КонецПроцедуры
Показать полностью
23. Поручик 4670 27.03.09 12:49 Сейчас в теме
Конфа написана в одном из наших подразделений, разраба никто не подгонял.
25. Valet 56 27.03.09 13:20 Сейчас в теме
(23) Если "разраба" никто не подгонял и руки развязаны в плане дополнения структуры базы , то это не от большого ума.

Увидел ИмяПользователя() и вспомнил еще один момент который способствует такому программированию. В 77 юзеру можно добавить один набор прав.
И когда стоит вопрос "Всем манагерам можно, а одному нельзя", то начинается такая писанина. Как альтернатива "свой мех-м прав доступа" или в крайнем случае какой-нить справочник "Ролей" аля v8.
Хотя встречались и такие наборы прав: ПраваИванова,ПраваПетрова итд.

А вставки типа Если ИмяПользователя()="Я" Тогда ... я и сейчас использую для отладки "наживую".




24. Душелов 4013 27.03.09 12:53 Сейчас в теме
Вот http://infostart.ru/projects/3683/
Яркий образчик, как не надо писать :))
26. Поручик 4670 27.03.09 16:02 Сейчас в теме
>>> Хотя встречались и такие наборы прав: ПраваИванова,ПраваПетрова итд.
Мне тоже встречались. Стоило в прошлом году отлучиться из холдинга, как один деятель из местного франя в тот же день воткнул в мою (нашу) конфу (8.1 причём) роль с фамилией гендиректора. Хорошо хоть меня быстро восстановили, а то представляю, что бы эти франчи ещё наваяли.

Ммм, франчи это зло (С) миста.ру. Не люблю франей, хоть и сам не шик как блистаю.
TreeDogNight; +1 Ответить
27. vova56 29.03.09 09:10 Сейчас в теме
№4 написан правильно с т.з. минимальной набивки:
СтрДлина("do") < СтрДлина("цикл")
СтрДлина("Пока") < СтрДлина("While")
и т.д.
29. alexk-is 6533 29.03.09 09:27 Сейчас в теме
(27) Надо пользоваться Телепатом или на крайний случай шаблонами, тогда проблем с набивкой будет меньше. Да, и копирование еще никто не отменял...
28. vova56 29.03.09 09:13 Сейчас в теме
Категорически не согласен с 27. , т.к.
СтрДлина("ПолучитьСтроку") > СтрДлина("GetLine")
30. iohboet 30.03.09 03:50 Сейчас в теме
>>> Это еще что, а это все в глобальном модуле. И зп у него бля от нють не маленька, везет же дятлам!!!
Да они как раз не дятлы ))) Это мы дятлы, пишем стройно, код оптимизируем, чтоб бегало все шустро и читаемо было... И за что???
А они перебирают бумажки с места на место, трещат с "бизнесом" и получают в 2-3 раза больше))) Ну нахрена им стройный код? Жизнь удалась!
31. Paranoid_Android 31.03.09 08:41 Сейчас в теме
>А они перебирают бумажки с места на место, трещат с "бизнесом" и получают в 2-3 раза больше)))

ну иди в менеджеры, кто тебя сдесь держит то ?
32. orbis 01.04.09 15:28 Сейчас в теме
Мы не знаем почему писался такой код и в какой обстановке. Поэтому не судите, да не судимы будете.
33. jsofthome1 05.04.09 18:53 Сейчас в теме
быстрее написать что-то временное
34. dima_fil77 25 07.04.09 05:25 Сейчас в теме
В нашей конфе нашёл такое:
Число = Год(Дата)*10000+Месяц(Дата)*100+День(Дата)-(Год(Дата)*10000+Месяц(Дата)*100+20);// ДИМА - НАКУЯ ВСЁ ЭТО НУЖНО!!!
Если Число > 0 Тогда
Поправка = 0;
Иначе
Поправка = 1;
КонецЕсли;
//(20070821 Сделаем проверку проще
Если День(Дата) > 20 Тогда
Поправка = 0;
Иначе
Поправка = 1;
КонецЕсли;
//)20070821
35. ILM 240 08.04.09 16:57 Сейчас в теме
(34) А почему бы сделать не так?

Поправка = ?(День(Дата) >20, 0, 1);
36. shard 279 09.04.09 18:03 Сейчас в теме
как вариант в обработке формирования прайса (ни на что более умное чем завернуть такое не хватило времени):
стр=Дерево.Строки[Дерево.Строки.Количество()-1].Строки[Дерево.Строки[Дерево.Строки.Количество()-1].Строки.Количество()-1].строки[Дерево.Строки[Дерево.Строки.Количество()-1].Строки[Дерево.Строки[Дерево.Строки.Количество()-1].строки.Количество()-1].Строки.Количество()-1].Строки.Добавить();
37. rebuzx 162 14.04.09 09:21 Сейчас в теме
А что смешного в том что человек незнает как писать, а зарабатывать хочется. И потом это не проблема код пишущего, а проблема того кто пишущего на работу взял. Сколько платят столько и получают!
Я видел и таких кто прекрасно использует синтаксис и при всём при этом допускает критичные ошибки.

39. alexmif 14.04.09 09:42 Сейчас в теме
(37) Нужно учиться - прежде чем начинать писать и тем более зарабатывать на этом деньги! А таких кто хочет писать и ничего не зочет изучать - вообще нечего делать в программировании. Вот так и создаются тупые алгоритмы, которые потом приходиться оптимизировать. А мало платят - иди работай на стройке. Там думать не нужно и денег заработаешь (если руки есть). Чтобы зарабатывать много, нужно для этого потрудиться много и на не всегда хорошей з/п, наработать опыт и знания.
38. alexmif 14.04.09 09:32 Сейчас в теме
Незнаю насчет скорой руки. Но даже в начале своей программисткой деятельности, когда узнал о существовании цикла (а было это ну очень давно, тогда ибм 286 стоила как волга), мне лень было копировать строчку и чего то еще в ней править... Можно позавидовать упорству, скопировать 30 строк и еще отредактировать каждую!!! Хотя грешу переменными типа "аа" и "а1" ))).
Повеселился от души. Клевые перлы. Их нужно добавить в черную библию программирования )))).
40. rebuzx 162 14.04.09 14:20 Сейчас в теме
Кто то учился и научился,
а кто то учился и думает что научился,
а кто то неучился и научился,
а кто то на стройке работает!
Нужно быть реалистом!
И как бы кто не возмущался подобный код был, есть и всегда будет и у нас и за границей!
alexmif ты же не поёдешь работать программером за 10 тыс. в мес. на большое предприятие? Думаю нет. А тот кто пойдет будет всегда рожать такие коды - в большинстве случаев в одном лице это временное явление!
И уж поверь, необязательно быть учёным программистом что бы зарабатывать деньги! Свяжись с большинством франчей, посмотри кто у них работает...... и зарабатывают ведь не плохо...
41. rebuzx 162 14.04.09 14:38 Сейчас в теме
""Чтобы зарабатывать много, нужно для этого потрудиться много и на не всегда хорошей з/п, наработать опыт и знания."" - вот имено за маленькую зп НАРАБОТАТЬ ОПЫТ, т.е. ищем полигон для испытаний, а потом на этом полигоне будь что будет, вас то там уже не будет, а пока опыт не наработан пишем как можем!!!
42. alexmif 17.04.09 11:39 Сейчас в теме
(т.е. ищем полигон для испытаний, а потом на этом полигоне будь что будет, вас то там уже не будет, а пока опыт не наработан пишем как можем!!!)
Вы неправильно поняли. Я имел ввиду что нужно правильно писать код даже на низкой з/п. И набирать на этом опыт. Как правило при низких з/п времени больше, хотя не факт.
43. alexmif 17.04.09 11:59 Сейчас в теме
(alexmif ты же не поёдешь работать программером за 10 тыс. в мес. на большое предприятие? Думаю нет.)
Я начинал с трех!!! Это была низкая з/п. Если ты не уважаешь свой труд - иди за такую з/п и рви ж... за бесплатно. Большое предприятие может позволить платить достойно и обязано это делать. Если не хочеть - пусть работает без специалистов. Когда предприятия начинают терять прибыль у них очень меняется взгляд на оплату программера. Многие люди думают что мы сидим за компом и занимаемся чем-то непонятным для них, т.е ниче не делам. Вот это в них необходимо переубедить.

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

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

Проблема не конечном итоге не з/п. А в том что если тебе нравиться программировать - занимайся и стремись к лудшему. Если не могешь писать нефиг тебе тут делать, займись стройкой (хотя там руки тож нужны) и денег мона больше заработать.
У нас институт заканчивают по специальности "программист", а языки программирования даже не видели или уже сдали экзамен и забыли что это такое... Зачем туда тогда поступать? Чтобы писать "перлы" потом?

С пятницей вас народ!
44. kiruha 388 19.04.09 14:25 Сейчас в теме
По поводу кода типа :
Код="7" тогда

В 7.7 нет предопределенных элементов.
И что делать, когда нужен "жесткий" элемент, типа валюта Рубли,
или страна "Россия".
Можно конечно завести константу - Рубли и дергать базу постоянно.
(кстати не из самой маленькой таблицы)
Можно даже обозвать ВалютаБухУчета - чтоб враги не догадались,
ну и конечно надо позаботиться , чтобы никто не смог поменять.

Зато код красивый.
45. artbear 1448 20.04.09 12:30 Сейчас в теме
(44) Я в подобных случаях делал по разному:
0. обычные константы
1. завожу в глобальнике переменную заглавными буквами типа
Перем ОЧЕНЬ_НУЖНАЯ_КОНСТАНТА Экспорт;
в конце глобальника инициализирую
ОЧЕНЬ_НУЖНАЯ_КОНСТАНТА = "7";
2. делал класс 1С++ Общие.Константы (аналог как-то выкладывали на форуме 1С++), в котором инкапсулировал работу с константными значениями.
46. alexmif 22.04.09 03:45 Сейчас в теме
(45) есть ли смысл держать в памяти переменную, если она нужна для разового использования?
У меня возникали случаи кода типа :
Код="7" тогда
В основном при обмене данными между различными базами с разными именами и кодами одних складов. Приходилось их решать подобным образом.
Можно конечно создать справочник соответствий, но стоит ли ради 3-4 наименований. Проще изменить или добавить при необходимости в обработке. Тем более они как правило внешние. И изменять саму базу не нужно.
47. artbear 1448 22.04.09 09:42 Сейчас в теме
(46) Главное в коде - это возможность нормально читать его для полного понимания.
Поэтому внятные имена различных констант, переменных, методов и т.д. имеют важнейшее значение.
48. alexmif 22.04.09 09:53 Сейчас в теме
(48) Полностью согласен. Очень удобно в этом плане использовать "телепата".
49. Майкопчанин 80 29.04.09 14:02 Сейчас в теме
Мне рассказывали байку: В одном московском ИВЦ, не буду говорить в каком, еще в советские времена, решили оценивать труд программистов по количеству строк написанного кода. Очень быстро это привело к исчезновению циклов...
50. Арчибальд 2706 29.04.09 14:11 Сейчас в теме
(49)Писал в середине 70-х для Госплана на Фортране. 50 коп./строчка. Были циклы, точно помню.
51. Майкопчанин 80 29.04.09 16:42 Сейчас в теме
Вот, кстати, у себя нашел. Была объективная причина так поступить.

//учтем ***** таким диким способом. Завтра в отпуск ...
Если (СокрЛП(полеКлиент.Наименование) = "************")
и (НаДату>'01.01.2009') Тогда
проценты = проценты - 14093.48;
КонецЕсли;

Сейчас вернулся к отчету и вспомнил об этой статье. Народ тут совершенно правильно писал, что под давлением обстоятельств и не такую ересь напишешь.

(50) Это было не в Госплане. :) А смыл этой байки в том, что программисты преднамеренно писали не оптимальный код, раздувая его, так как были материально в этом заинтересованы... Циклов, конечно, полностью избежать нельзя, но простенький цикл с десятком итераций можно и линейным алгоритмом расписать :)
52. artbear 1448 29.04.09 17:22 Сейчас в теме
(51) Давно известно, что у программеров, как у менеджеров и т.д., нельзя/очень опасно вводить какие-либо количественные оценки их труда :)
53. LavS 165 12.05.09 09:58 Сейчас в теме
Повеселило))) А ведь мне тоже рассказывали реальный пример... Что вдруг перестали остатки сходиться по одной организации... Долго разбирались из-за чего это... Оказалось, что программист в модуле учета партий написал, что-то вроде:
Если Организация.Наименование <> "НазваниеОрганизации" Тогда
Возврат;
КонецЕсли;
А пользователи изменили название организации... Но сколько времени ушло на поиск ошибки...

Хотя и сам грешен... Когда начинал, помню когда в коде прописывал настройку прав доступа, то в одном месте проверялось на имя пользователя "Острогоржск", а пользователя звали "Острогорск"... И долго я искал, почему у них права не работают))) Самому аж стыдно...
54. odekolon 15.05.09 09:27 Сейчас в теме
Ребят, сам вот только вчера писал отчет, где привязывался к конкретным наименованиям. Научил зам.гл.бух. одного из юр.лиц писать задания хоть в какой-то форме, а она уперто пишет последовательность действий так, что приходится вылавливать конкретные элементы по наименованию. Заводить реквизит с типом "перечисление" лениво, учитывая, что эта сумасшедшая логика у нее превращается в стройную картину раза с 5-го (после того, как посмотрит на конкретные цифры). Самому разбираться в логике, а не тупо действовать предложенному алгоритму, нету времени...

PS. А насчет кривости алгоритмов... Купите какую-нибудь базу у Белгородской конторы ЦПС и поймете, что перечисленное в теме - это только цветочки. Тексты абсолютно нечитаемы, а формочки являются чудовищным скопищем всего на свете. Документация под час крайне скудна и непонятна. Цены фантастические, нереальные.
Оставьте свое сообщение