- 1
- 2
- 3
- 4
- 5
Если Стрк.Контрагент.ИНН = "7702691545" Тогда
ТекДок.Грузополучатель = Справочники.Контрагенты.НайтиПоКоду("000401789");
ИначеЕсли ПоХенкелю Тогда
ТекДок.Грузополучатель = Заявка.Контрагент;
КонецЕсли;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−97
Если Стрк.Контрагент.ИНН = "7702691545" Тогда
ТекДок.Грузополучатель = Справочники.Контрагенты.НайтиПоКоду("000401789");
ИначеЕсли ПоХенкелю Тогда
ТекДок.Грузополучатель = Заявка.Контрагент;
КонецЕсли;
Навряд ли конечно кто-то из тех кто пишет такой код, читает этот сайт, но всё же обращаюсь к ним. Вот скажите, есть какой-то негласный принцип так писать? У вас какой-то орден масонский, где вас так учат делать? Расскажите же про свой негласный кодекс хорошего программиста! Просто я много где поработал, и постоянно в коде такое говно, написанное разными людьми. Генезис такого говна понятен: приходит тупорылый менеджер и приносит не менее тупорылую хотелку, но ведь вы программист, а значит вы должны видеть за деревьями лес.
В каждой задаче нужно видеть за деревьями лес - вот принцип хорошего кода. Если менеджер пришёл 1 раз, он 100% придёт ещё раз, и принесёт подобную задачу. Не лучше ли сейчас немножко посидеть, написать ХОРОШО а в следующий раз решить подобную задачу за 1 минуту и дальше сидеть и пинать говно? Не лучше?!
Что значит хорошо? Хорошо, это когда ваше решение шире задачи, а задача которую вам дали всего лишь частный случай того функционала, который вы реализовали. 1 - Мыслить нужно шире.
Так же надо чётко разделять ту информацию которая хранится в базе, и имена переменных. Если наименование контрагента "Хенкель" то какого члена в тексте делает переменная "КонтрагентХенкель"?! Предопределенные элементы - это максимум хардкода, который приемлем. Вы вообще слышали про компиляцию? Компиляция процесс необратимый, и часто её делать нежелательно, поэтому максимум параметров надо выносить во всевозможные настройки и параметры, чтобы можно было их поменять на ходу. Ладно. Вы всё равно нифига не поймёте.
0
unsigned int FileScanner::smartBruteForce(QByteArray &haystack, QByteArray &needle)
{
unsigned int count = 0;
unsigned int dataSize = haystack.size();
unsigned int needleSize = needle.size();
unsigned int needleSizeCut = needleSize - 1;
char* dp = haystack.data();
char* np = needle.data();
char lastNeedle = *(np + needleSize - 1);
for(unsigned int i = 0; i < dataSize - needleSize + 1; i++)
{
if(*(dp + (i + needleSizeCut)) != lastNeedle) //This is smart technology ))))
continue;
unsigned int j;
for(j = 0; j < needleSize; j++)
{
if(*(dp + (i + j)) != *(np + j))
break;
}
if(j == needleSize)
count++;
}
return count;
}
−1
foreach($arModels as $arMark){
$str='<select name="" id="'.$arMark["NAME"].'" class="combobox2 modelbox" ><option value="">(все)</option>';
foreach($arMark["MODELS"] as $val => $arMN){
/*if($val==$_REQUEST["arrFilter_pf"]["model"]) $add=" selected ";
else $add="";*/
if($val!=''){
$str.='<option'.$add.' class="'.$arMark["NAME"].'" value="'.$arMN.'">'.$arMN.'</option>';
$str2.='<option'.$add.' class="'.$arMark["NAME"].'" value="'.$arMN.'">'.$arMN.'</option>';
}
else{
$file = fopen ($_SERVER["DOCUMENT_ROOT"]."/ipol/NIKITA_DYMAI.txt","w");
if ( !$file )
echo("Ошибка открытия файла");
else
fputs ( $file, $arMark["NAME"].' '.$arMN.'-пустой id');
fclose ($file);
}
}
$str.='</select>';
содержание файла txt:
Cadillac STS I-пустой id
не удалось подумать
−100
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
| &ДатаНач,
| &ДатаКон,
| СчетДт В ИЕРАРХИИ (&СчетаРасчетов)
| И СчетКт В ИЕРАРХИИ (&СчетаВозврата)
| И Организация = &Организация
| И Активность = ИСТИНА
| И (НЕ СчетДт В ИЕРАРХИИ (&СчетаРасчетов))) КАК ХозрасчетныйОборотыДтКт
БП 2.0, типовой отчет.
0
function Calc() {
var af = parseInt(document.getElementsByName("a"));
var ad=af.value;
var bf = parseInt(document.getElementsByName("b"));
var bd=bf.value;
var a = parseInt(ad)
var b = parseInt(bd)
alert("Результат: " + (a+b))
}
function CalcMi() {
var af = parseInt(document.getElementsByName("a"));
var ad=af.value;
var bf = parseInt(document.getElementsByName("b"));
var bd=bf.value;
var a = parseInt(ad)
var b = parseInt(bd)
alert("Результат: " + (a-b))
}
function CalcX() {
var af = parseInt(document.getElementsByName("a"));
var ad=af.value;
var bf = parseInt(document.getElementsByName("b"));
var bd=bf.value;
var a = parseInt(ad)
var b = parseInt(bd)
alert("Результат: " + a*b)
}
function CalcDX() {
var af = parseInt(document.getElementsByName("a"));
var ad=af.value;
var bf = parseInt(document.getElementsByName("b"));
var bd=bf.value;
var a = parseInt(ad)
var b = parseInt(bd)
alert("Результат: " + a/b)
}
от школьника
−98
СтрокаТовары.Качество = СтрокиОст.Качество;
СтрокаТовары.ЕдиницаИзмерения = СтрокиОст.ЕдИзм;
СтрокаТовары.ЕдиницаИзмеренияМест = СтрокиОст.ЕдИзмМест;
Поражает сам подход. А почему бы не выдумать для (поля/объекта/коллекции) ещё одно уникальное имя?! Ведь столько ещё свободных и красивых уникальных имён в мире есть! К тому же "ЕдИзм" - это ведь короче чем "ЕдиницаИзмерения", не правда ли? Дурак перепутает только, правда? Писать ведь будет удобней, правда?
Ладно... про ЗаполнитьЗначенияСвойств писать уже баян. Но ведь СтрокиОст - это строка какой-то таблицы? А в исходной таблице это называлось "ЕдиницаИзмерения", наверное, да? Так зачем лишний раз придумывать псевдоним?!!! Зачем? Почему просто не соединить таблицы друг с другом в запросе? Почему?! Почему нужно постоянно дрочить циклами?!
Циклы надо применять тогда, когда нельзя по-другому, а это узкий круг задач, например те, где нужен CAST которого в 1С нет, или распределение одной таблицы на другую по какому какой нибудь "хитровыдуманной и уникальной" бизнес логике. Даже списание по ФИФО уже придумали как сделать запросом... Не хочу! Хочу циклы...
−100
ТипЗаказа = Число(Сред(СокрЛП(Формат(Стрк.Заказ, "ЧГ=")), 3, 1));
...
Если ТипЗаказа = 9 ИЛИ ТипЗаказа = 8 ИЛИ ТипЗаказа = 7 Тогда
...
Стрк.Заказ - есть строка с номером документа.
Вообще, к статье брата Б. Нуралиева (простите не помню как его зовут) "1С как продукт инженерной мысли" хочется прилагать иллюстрации. И прилагать иллюстрации почему-то иллюстрации именно такие. Про "грамотное" использование составных типов хочется молчать.
Если вы слышали про 13 правил Кодда, и слышали про атомарность данных в ячейках, и находите в этом рациональное зерно - ЗАБУДЬТЕ!
+9
/*======================================================================*\
Function: __destruct
Output: Нет
Descriiption: Уничтожение объекта
\*======================================================================*/
public function __destruct(){
}
Javadoc отдыхает.
−99
Типовая зуп 2.5 данные берутся из справочника "Степени родства физических лиц" не предопределенные элементы.
Если ТекущаяСтрока.Пол = Перечисления.ПолФизическихЛиц.Мужской Тогда
Если СтепеньРодстваРебенка = "05 " ИЛИ СтепеньРодстваРебенка = "06 " Тогда // Сын // Дочь
ТекущаяСтрока.Статус = СоответствиеСтепенейРодства["03"]; // Отец
ИначеЕсли СтепеньРодстваРебенка = "42 " ИЛИ СтепеньРодстваРебенка = "43 " Тогда // Пасынок // Падчерица
ТекущаяСтрока.Статус = СоответствиеСтепенейРодства["40"]; // Отчим
КонецЕсли;
Иначе
Если СтепеньРодстваРебенка = "05 " ИЛИ СтепеньРодстваРебенка = "06 " Тогда // Сын // Дочь
ТекущаяСтрока.Статус = СоответствиеСтепенейРодства["04"]; // Мать
ИначеЕсли СтепеньРодстваРебенка = "42 " ИЛИ СтепеньРодстваРебенка = "43 " Тогда // Пасынок // Падчерица
ТекущаяСтрока.Статус = СоответствиеСтепенейРодства["41"]; // Мачеха
КонецЕсли;
КонецЕсли;
−1
bool Diagram::checkIsOverlayElements(const int index)
{
int _x0, _y0, _xX, _yY;
int x0 = _vectorFigure[index]->getCoordinate().getX0();
int y0 = _vectorFigure[index]->getCoordinate().getY0();
int xX = _vectorFigure[index]->getCoordinate().getXx();
int yY = _vectorFigure[index]->getCoordinate().getYy();
for(int _index = 0; _index < _vectorFigure.size(); _index++)
{
_x0 = _vectorFigure[_index]->getCoordinate().getX0();
_y0 = _vectorFigure[_index]->getCoordinate().getY0();
_xX = _vectorFigure[_index]->getCoordinate().getXx();
_yY = _vectorFigure[_index]->getCoordinate().getYy();
if(((x0 >= _x0 && x0 <= xX)
&&(y0 >= _y0 && y0 <= _yY))
||((xX >= _x0 && xX <= _xX)
&&(yY >= _y0 && yY <= _yY))
||((x0 >= _x0 && x0 <= xX)
&&(yY >= _y0 && y0 <= _yY))
||((xX >= _x0 && xX <= _xX)
&&(y0 >= _y0 && yY <= _yY)))
{
return true;
}
}
return false;
}
Проверка наложения фигур друг на друга.