Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: "Перлы" (Жемчужины) или как не надо писать на 1С
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Общий раздел > Юмор
Vofka
Внимание! Все используемые в этой статье примеры взяты из реальных модулей.
Все программы приводятся с сохраненным форматированием и оформлением кода.



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. Кто ищет тот найдет! Но видимо не в этот раз smile.gif



Если -Зн>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;
КонецЦикла;
КонецПроцедуры



Взято отсюда _http://center-comptech.ru/st_kak_ne_nado_pisat_v_1c.html
5_kopeek
Вот отличный способ предоставить пользователю возможность однозначно ответить на поставленный вопрос:

-=VJ=-
Только недавно из одной конфигурации вычищал разбросанные по всему тексту куски кода типа

Пока Переменная<10000 Цикл
      Переменная=Переменная+1;
КонецЦикла;


Зачем оно - непонятно.
Нет, понятно, что для замедления выполнения. Только зачем?... Сие осталось тайной.
Vofka
-=VJ=-, мы когда то уже это обсуждали smile.gif . Это кусочки из рег. отчетов для 7.7 smile.gif
Ziam
И к чему вы пришли? Я просто ответа пока не нашел, да и не искал особо ))
Vofka
Вот, отрыл тему, поэтому кого интересует данный вопрос - прошу сюда: необходимо зарегистрироваться для просмотра ссылки
Ardi
На компьютере где стоял Касперский в ТИС один отчет выдавал данные один раз из 5-и.
Если отключить Каспер - то нормально. (Поставить цикл замедления я не догадался).

Так что эти замедления не просто так стоят.
-=VJ=-
Цитата(Ardi @ 07.06.11, 9:14) необходимо зарегистрироваться для просмотра ссылки
Так что эти замедления не просто так стоят.


Как оно может что-то давать, если стоит там, где ни на что влиять не может?
Версия с недовольными быстротой выполнения бухгалтерами выглядит как-то логичнее - но зачем такое в регламентированных отчетах от самой 1С/Аби?
vadim007
Кусочек кода и 287 конфы для БУХии, модуль проведения приходной накладной:
Если ЧтоПриходуем = Перечисление.ЧтоПриходуем.ТМЦ Тогда
  глПроводка(Контекст,Счет,СчетКонтрагента,Себестоимость,"Прих:Себестоимость",ПересчКво, Субк1,Субк2,Субк3,
   Контрагент,ПервыйДок,, ,,"ПХ", -СуммаУменьшенияСебестоимостиСтрока);
Иначе
   глПроводка(Контекст,Счет,СчетКонтрагента,Себестоимость,"Прих:Себестоимость",ПересчКво, Субк1,Субк2,Субк3,
   Контрагент,ПервыйДок,, ,,"ПХ", -СуммаУменьшенияСебестоимостиСтрока);
КонецЕсли;

Найдите три отличия.
Ziam
пробелы перед глПроводка() посчитайте ))). Хотя сам не вмыкнул в сей великий смысл. Скорее заготовка для дальнейшего пиления.
XBrut
В 2004 році на одній овочевій базі під Броварами (Київська обл.) наблюдав в глобальному модулі поток свідомості одного з попередніх програмістів.

Процедура ЯХуеюСЭтогоЗоопарка() Экспорт


що саме робила процедура не пам'ятаю, але посилань на неї було безліч

(доречі зоопарк був звичайний. нічим не гірший за інші) crazy.gif
Vofka
Цитата
Процедура ЯХуеюСЭтогоЗоопарка() Экспорт

haha.gif
kalyamov
Цитата(vadim007 @ 05.07.11, 6:30) необходимо зарегистрироваться для просмотра ссылки
Кусочек кода и 287 конфы для БУХии, модуль проведения приходной накладной:
Если ЧтоПриходуем = Перечисление.ЧтоПриходуем.ТМЦ Тогда
  глПроводка(Контекст,Счет,СчетКонтрагента,Себестоимость,"Прих:Себестоимость",ПересчКво, Субк1,Субк2,Субк3,
   Контрагент,ПервыйДок,, ,,"ПХ", -СуммаУменьшенияСебестоимостиСтрока);
Иначе
   глПроводка(Контекст,Счет,СчетКонтрагента,Себестоимость,"Прих:Себестоимость",ПересчКво, Субк1,Субк2,Субк3,
   Контрагент,ПервыйДок,, ,,"ПХ", -СуммаУменьшенияСебестоимостиСтрока);
КонецЕсли;

Найдите три отличия.


Странный релиз. Вы это не сами туда дописали шутки ради ?
MATEVI
Процедура ЯХуеюСЭтогоЗоопарка() Экспорт

Обязательно возьму и напишу такую процедуру. Ибо действительно
Процедура ЯХуеюСЭтогоЗоопарка() Экспорт

Токо со своего...
ЗЫ Извините за офтоп и излишнее цитирование. Больше не буду.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.