- 1
- 2
- 3
Процедура глЗагрузитьЗаказы() Экспорт
	ОткрытьФорму("Отчет",,"\\SQLDSTR\1C\ExtERT\InvoiceLoader.ert");
КонецПроцедурыНашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−164
Процедура глЗагрузитьЗаказы() Экспорт
	ОткрытьФорму("Отчет",,"\\SQLDSTR\1C\ExtERT\InvoiceLoader.ert");
КонецПроцедурыВстретил в самописке в клюшках. Если поменяется имя сервера или каталога - всё рухнет).
−165
Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл
        ...
	ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции);
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ЦеныНоменклатурыСрезПоследних.Цена,
	|	ЦеныНоменклатурыСрезПоследних.Номенклатура
	|ИЗ
	|	РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
	|ГДЕ
	|	ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
	|	И ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";
	Запрос.УстановитьПараметр("ТипЦен",Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000001"));
	Запрос.УстановитьПараметр("Номенклатура",ПараметрыПозиции.Номенклатура);
	Цена = Запрос.Выполнить().Выбрать();
	Цена.Следующий();
	Если Цена.Цена <> Неопределено Тогда
		ОбластьДанных.Параметры.Цена = Цена.Цена;
		Если ЗначениеЗаполнено(ПараметрыПозиции.КфМест) Тогда  
			ОбластьДанных.Параметры.ЦенаМеста = Цена.Цена * ПараметрыПозиции.КфМест;
		КОнецЕсли;
		СумИтог = СумИтог + Цена.Цена * ПараметрыПозиции.Количество;
		ОбластьДанных.Параметры.Сумма = Цена.Цена * ПараметрыПозиции.Количество;
	КонецЕсли;
	ТабДокумент.Присоединить(ОбластьДанных);
КонецЦикла;Прям классика жанра) Запрос в цикле, и условие к виртуальной таблице регистра сведений)
−127
Function Розница()
	If Покупатель.Выбран() = 1 Then
		If Покупатель.Вид() = "ПунктДоставки" Then
			If Покупатель.Владелец.ТипЦенОтгрузки = Enum.ТипыОтпускныхЦен.Розничные Then
				Return 1;
			Else
				Return 0;
			EndIf;
		Else
			Return 0;
		EndIf;
	Else
		Return 0;
	EndIf;
EndFunctionСегодня наткнулся на такой вот кусок кода
−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-файла программист справился согласно требованиям.
Но, к сожалению, парень не умел работать с регламентными заданиями, поэтому в качестве решения сделал внешнюю обработку с обработчиком ожидания, которая запускалась в отдельном сеансе.
Орфография сохранена :-)