- 1
- 2
- 3
- 4
- 5
- 6
Для К = 1 По 11 Цикл
Если Форм = 1 Тогда
ExcelApp.Cells(КолЗ,К).Font.Bold = 1;
ExcelApp.Cells(КолЗ,К).Font.Color = 16732963;
КонецЕсли;
КонецЦикла;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−141
Для К = 1 По 11 Цикл
Если Форм = 1 Тогда
ExcelApp.Cells(КолЗ,К).Font.Bold = 1;
ExcelApp.Cells(КолЗ,К).Font.Color = 16732963;
КонецЕсли;
КонецЦикла;
"Орфография автора сохранена" =)
−141
//Адрес Получателя
СписокКому = Новый СписокЗначений;
СписокОбъектов = Новый СписокЗначений;
СписокОбъектов.Добавить(ОбъектОтправки);
Для каждого СтрокаСпискаОбъектов Из СписокОбъектов Цикл
Адрес = УправлениеЭлектроннойПочтой.ОпределитьАдресПолучателя(СтрокаСпискаОбъектов.Значение);
СписокКому.Добавить(Адрес,Строка(СтрокаСпискаОбъектов.Значение));
КонецЦикла;
СтруктураНовогоПисьма.Вставить("Кому", СписокКому);
что автор хотел этим сделать?? написано с нуля, так как автор сказал, что немного подкорректировал конфигурацию и вот мне стало интересно... но увидев удивительные строки хотелось бы спросить сначала экспертов, а потом автора )))))
−139
Функция ПолучитьЕдиницу(ТекЕдиница)
Тек = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекЕдиница.Наименование);
Если Тек = Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка() Тогда
Тек = Справочники.КлассификаторЕдиницИзмерения.СоздатьЭлемент();
Тек.Наименование = ТекЕдиница.Наименование;
Тек.НаименованиеПолное = ТекЕдиница.Наименование;
СтроковыйКод = "001";
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| КлассификаторСтранМира.Код КАК Код
|ИЗ
| Справочник.КлассификаторСтранМира КАК КлассификаторСтранМира
|
|УПОРЯДОЧИТЬ ПО
| Код УБЫВ";
Результат = Запрос.Выполнить().Выгрузить();
ЧисловойКод = Число(Результат[0].Код) + 1;
Если ЧисловойКод < 10 Тогда
СтроковыйКод = "00"+ЧисловойКод
ИначеЕсли ЧисловойКод < 100 Тогда
СтроковыйКод = "0"+ЧисловойКод
Иначе
СтроковыйКод = ""+ЧисловойКод
КонецЕсли;
Тек.Код = СтроковыйКод;
Попытка
Тек.Записать();
Исключение
ЕстьОшибка = Истина;
Сообщить("Не могу записать единицу измерения "+ТекЕдиница.Наименование+" !");
Сообщить(ОписаниеОшибки());
Возврат "";
КонецПопытки;
КонецЕсли;
Если Тек = Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка() Тогда
ЕстьОшибка = Истина;
Возврат "";
Иначе
Возврат Тек;
КонецЕсли;
КонецФункции
Получила в наследство от команды разработчиков во главе с неким Леонидом. Порадовало формирование кода для нового элемента классификатора единиц измерения. И правда, почему бы не поискать максимальный код в каком-нибудь неожиданном месте? А такое оригинальное формирование строки с лидирующими нулями просто убило до смерти.
−129
Функция ВыделитьАртикул(А) Экспорт
Перем СтрВспом, Инд;
Инд = 1;
СтрВспом = "";
Пока Инд <= СтрДлина(А) Цикл
Если (Сред(А,Инд,1)="0") ИЛИ (Сред(А,Инд,1)="1") ИЛИ
(Сред(А,Инд,1)="2") ИЛИ (Сред(А,Инд,1)="3") ИЛИ
(Сред(А,Инд,1)="4") ИЛИ (Сред(А,Инд,1)="5") ИЛИ
(Сред(А,Инд,1)="6") ИЛИ (Сред(А,Инд,1)="7") ИЛИ
(Сред(А,Инд,1)="8") ИЛИ (Сред(А,Инд,1)="9") ИЛИ
(Сред(А,Инд,1)="/") ИЛИ (Сред(А,Инд,1)="-") Тогда
СтрВспом = СтрВспом + Сред(А, Инд, 1);
Инд = Инд + 1;
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
Возврат СтрВспом;
КонецФункции
Нашел у клиента, когда рефакорил код конфы. Страшно подумать, если придется выделять еще с десяток символов...
−129
. . .
ццц=0;
Если Сотрудникз.Выбран()=0 Тогда
Сомр= СоздатьОбъект("Справочник.Сотрудники");
Сомр.ВыбратьЭлементы();
цццк=50000;
Иначе
Сомр=Сотрудникз;
цццк=1;
КонецЕсли;
Пока ((ццц<цццк) ) цикл
ццц=ццц+1;
Если цццк>1 Тогда
Если (Сомр.ПолучитьЭлемент()=0) Тогда
Прервать;
КонецЕсли;
КонецЕсли;
Сотрудник = Сомр.ТекущийЭлемент();
Если Сотрудник.ЭтоГруппа()=1 Тогда
продолжить;
КонецЕсли;
. . .
По нормальному решается:
Сотр = СоздатьОбъект("Справочник.Сотрудники");
Сотр.ВыбратьЭлементы();
Пока (Сотр.ПолучитьЭлемент() = 1) Цикл
. . .
КонецЦикла
Досталось в наследство на основной работе, самописная конфа на 7.7,
как выяснилось этот участок кода писала 50-ти летняя женщина-программист
−153
ТСтрока=Товары.Получить(Товары.Индекс(ЭтаФорма.ЭлементыФормы.Товары.ТекущаяСтрока));
−140
Говно = 0;
ТекущийДокумент.ВыбратьСтроки();
Пока ТекущийДокумент.ПолучитьСтроку() = 1 Цикл
Если (ТекущийДокумент.ДатаПоставкиЭА < ТекущаяДата()) и (ПустоеЗначение(ТекущийДокумент.ДатаПоставкиЭА) = 0) и (ТекущийДокумент.Аннулирован = 0) и (ТекущийДокумент.Аннулирована = 0) Тогда
Если (ТекущийДокумент.СостояниеСтрокиЗаказа = Перечисление.СостояниеЗаказа.Сделан) или (ПустоеЗначение(ТекущийДокумент.СостояниеСтрокиЗаказа) = 1) Тогда
Говно = 1;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если Говно = 1 Тогда
Возврат "FONT["+ПолучитьЦвет(0,0,0)+"] BRUSH["+ПолучитьЦвет(128,128,0)+"]";
КонецЕсли;
Код окрашивает строку в цвет говна:)
К коду претензий не имею, но говно-код получается.
−132
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ин_Кодификатор",Кодификатор);
Запрос.Текст = "ВЫБРАТЬ
| СтатьиДвиженияДенежныхСредств.Ссылка
|ИЗ
| Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДвиженияДенежныхСредств
|ГДЕ
| СтатьиДвиженияДенежныхСредств.ин_Кодификатор = &ин_Кодификатор
|";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Если Выборка.Ссылка.Наименование <> Наименование Тогда
СтатьяДДСОбъект = Выборка.Ссылка.ПолучитьОбъект();
СтатьяДДСОбъект.Наименование = Наименование;
СтатьяДДСОбъект.Записать();
КонецЕсли;
Если Выборка.Ссылка.ин_Кодификатор <> Кодификатор Тогда
СтатьяДДСОбъект = Выборка.Ссылка.ПолучитьОбъект();
СтатьяДДСОбъект.ин_Кодификатор = Кодификатор;
СтатьяДДСОбъект.Записать();
КонецЕсли;
Отбор в запросе ин_Кодификатор = &ин_Кодификатор.
Потом идет проверка Выборка.Ссылка.ин_Кодификатор <> Кодификатор
−134
Функция ПолучитьОстаток(ДанныеСтроки)
Запрос = Новый Запрос("ВЫБРАТЬ
| ПартииТоваровНаСкладахОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ПартииТоваровНаСкладах.Остатки КАК ПартииТоваровНаСкладахОстатки
|ГДЕ
| ПартииТоваровНаСкладахОстатки.СерияНоменклатуры = &Серия");
Запрос.УстановитьПараметр("Серия", ДанныеСтроки.Ссылка);
РезультатЗапроса = Запрос.Выполнить().Выбрать();
СерияНоменклатуры = ДанныеСтроки.Ссылка.ПолучитьОбъект();
Если РезультатЗапроса.Следующий() тогда
СерияНоменклатуры.Остаток = РезультатЗапроса.КоличествоОстаток;
Иначе
СерияНоменклатуры.Остаток = 0;
КонецЕсли;
СерияНоменклатуры.Записать();
КонецФункции
Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ПолучитьОстаток(ДанныеСтроки);
КонецПроцедуры // СправочникСписокПриВыводеСтроки()
Задача была - при выборе серии номенклатуры подтягивать в форму выбора остатки на складе...
−131
РегламентированнаяОтчетность.ПередОткрытиемФормыРегламентированногоОтчета(ЭтаФорма, Отказ);
////Вызывается перед открытием, а потом видим:
Процедура ПередОткрытиемФормыРегламентированногоОтчета(Форма, Отказ) Экспорт
Отказ = Ложь;
КонецПроцедуры