- 1
- 2
- 3
- 4
- 5
Запрос.Текст = "
|...
| И УслугиОказанные.Проведен = &Истина
|...";
Запрос.УстановитьПараметр("Истина", Истина);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−130
Запрос.Текст = "
|...
| И УслугиОказанные.Проведен = &Истина
|...";
Запрос.УстановитьПараметр("Истина", Истина);
Вот как бывает когда людям платят за количество строк.
Коллега нашёл в отчёте из БГУ 1.0.
−125
Процедура ПриОткрытии()
Если ЭтоНовый() И НЕ РольДоступна("СуперАдмин") Тогда
ЭтаФорма.Закрыть();
Возврат;
КонецЕсли;
КонецПроцедуры
УТ 10.3. Такие перлы добавлены почти во все документы конфигурации
−123
ИначеЕсли Отправитель = "h*@**k.ua" Тогда
НовыйДокумент.Услуга = Справочники.Услуги.НайтиПоКоду("0000000029");
ИначеЕсли Отправитель = "*******@**k.ua" Тогда
НовыйДокумент.Услуга = Справочники.Услуги.НайтиПоКоду("0000000029");
НовыйДокумент.Ответственный = Справочники.Сотрудники.НайтиПоКоду("0000000063");
КонецЕсли;
−132
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() И Выборка.Количество() > 0 Тогда
Возврат Выборка.ПлощадьДома;
Иначе
Возврат 0;
КонецЕсли;
проверка пустая ли выборка по одному из принципов:
"больше лучше, чем меньше", "доверяй, но проверяй", "семь раз отмерь, один отрежь"
−126
Запрос = Новый Запрос("
|ВЫБРАТЬ ПЕРВЫЕ 1000
|.....");
ВыборкаДанных = Запрос.Выполнить().Выгрузить();
Код из правила выгрузки данных с произвольным запросом.
Ведущий программист: "Блин, почему каждый раз выгружается разное количество объектов? Это же мистика!!!"
−166
Функция ЭтоБуква(Буква)
Возврат Найти("еоатинркулмДСвПдОсКцчыгзпбТНИьБФхВяРАЗЭйУЕГМЦжщЙШЩЫЛЯЧЬХЪЖЮЁёшъфэюQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm", Буква) > 0;
КонецФункции
Функция ЭтоЦифра(Буква)
Возврат Найти("1234567890", Буква)>0;
КонецФункции // ЭтоЦифра()
Функция ЭтоБукваИлиЦифра(Символ)
Возврат Найти("еоатинркулмДСвПдОсКцчыгзпбТНИьБФхВяРАЗЭйУЕГМЦжщЙШЩЫЛЯЧЬХЪЖЮЁёшъфэюQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890", Символ) > 0;
КонецФункции // ЭтоБукваИлиЦифра()
Из типовой конфигурации БГУ 2.0.
На первый взгляд реализация забавна :-) Но, в общем-то, это не является говнокодом: просмотрев в гугле различные "рейтинги букв", получил примерно то же самое.
Тем не менее, можно решить вопрос с помощью проверки кода символа.
−162
Процедура ОбождатьПятьСекунд()
Время1 = ТекущаяДата();
Пока ТекущаяДата() <= Время1 + 5 Цикл
КонецЦикла;
КонецПроцедуры
Процедура ОбождатьМенуту()
Н = 1;
Пока Н <= 12 Цикл
ОбождатьПятьСекунд();
Н = Н + 1;
КонецЦикла;
КонецПроцедуры
Процедуры ВыгрузитьВСайт(КоличествоМенут)
Н = 1;
Пока Н <= КоличествоМенут Цикл
ОбождатьМенуту();
Н = Н + 1;
КонецЦикла;
СформероватьОправитьХМЛ();
КонецПроцедуры
В пятницу на собеседование пришёл программист.
Задание было следующим: по определённым правилам сформировать XML-файл для выгрузки в интернет-кабинет. Выгрузка должна была производиться с определённой периодичностью. В клиент-серверной версии нужно было создать регламентное задание.
С заполнением XML-файла программист справился согласно требованиям.
Но, к сожалению, парень не умел работать с регламентными заданиями, поэтому в качестве решения сделал внешнюю обработку с обработчиком ожидания, которая запускалась в отдельном сеансе.
Орфография сохранена :-)
−163
ВЫБОР
КОГДА ПеремещениеТоваровТовары.ЕдиницаИзмерения = ПеремещениеТоваровТовары.Номенклатура.ЕдиницаХраненияОстатков
ТОГДА ПеремещениеТоваровТовары.Количество * ПеремещениеТоваровТовары.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * ПеремещениеТоваровТовары.Номенклатура.бит_п_МассаНетто
КОГДА ПеремещениеТоваровТовары.ЕдиницаИзмерения = ПеремещениеТоваровТовары.Номенклатура.ЕдиницаДляОтчетов
ТОГДА ПеремещениеТоваровТовары.Количество * ПеремещениеТоваровТовары.Номенклатура.ЕдиницаДляОтчетов.Коэффициент * ПеремещениеТоваровТовары.Номенклатура.бит_п_МассаНетто
КОГДА ПеремещениеТоваровТовары.ЕдиницаИзмерения = ПеремещениеТоваровТовары.Номенклатура.ЕдиницаИзмеренияМест
ТОГДА ПеремещениеТоваровТовары.Количество * ПеремещениеТоваровТовары.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент * ПеремещениеТоваровТовары.Номенклатура.бит_п_МассаНетто
КОГДА ПеремещениеТоваровТовары.ЕдиницаИзмерения = ПеремещениеТоваровТовары.Номенклатура.бит_п_ЕдиницаПаллет
ТОГДА ПеремещениеТоваровТовары.Количество * ПеремещениеТоваровТовары.Номенклатура.бит_п_ЕдиницаПаллет.Коэффициент * ПеремещениеТоваровТовары.Номенклатура.бит_п_МассаНетто
КОНЕЦ
−165
...
Возврат ?(НЕ Запрос.Выполнить().Пустой(),Истина,Ложь);
−168
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если ДополнительныеСвойства.Свойство("НомерПартииДляСерии") Тогда
ДополнительныеСвойства.Удалить("НомерПартииДляСерии");
КонецЕсли;
Если ЭтоНовый() И РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
Записать(РежимЗаписиДокумента.Запись);
Записать(РежимЗаписиДокумента.Проведение);
Иначе
Если Не ЭтоНовый() И Не РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
НомерСтрокиДокумента = 0;
бит_п_ОбщегоНазначения.ПроверитьИСформироватьСериюНоменклатуры(Ссылка, Продукция, НомерСтрокиДокумента);
бит_п_ОбщегоНазначения.ПроверитьИСформироватьСериюНоменклатуры(Ссылка, Брак, НомерСтрокиДокумента);
КонецЕсли;
КонецЕсли;
Если ЭтоНовый() И РежимЗаписи = РежимЗаписиДокумента.Запись Тогда
Если ДополнительныеСвойства.Свойство("НеобходимоФормироватьСерию") = Ложь Тогда
ДополнительныеСвойства.Вставить("НеобходимоФормироватьСерию", Истина);
Записать(РежимЗаписиДокумента.Запись);
Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
У меня нет слов.
НО(!!!) ... это работает как надо :D .