Бухгалтерия / Говнокод #16952 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
Результат = Запрос.Выполнить();
Если Результат.Выгрузить().Количество() <> 0 Тогда
	Выборка = Результат.Выбрать();
	Пока Выборка.Следующий() Цикл
		... тут некий код... и внутри контрольный в голову...
		Если ТЗ.Количество() <> 0 Тогда
			Для Каждого Строка Из ТЗ Цикл
				...
			КонецЦикла;	
		КонецЕсли;	
		...
	КонецЦикла;
КонецЕсли;

Видимо это такая "оптимизация", другого объяснения подобным проверкам (это не единичный случай) не нашел.

Twilight_Sun Twilight_Sun, (Updated )

Комментарии (14, +14)

Бухгалтерия / Говнокод #16925 Ссылка на оригинал

0

  1. 1
  2. 2
<?"Объект">_и="";<?"Объект">_с=0;<?"Объект">_кол=<?"Объект">.Количество();<?"Объект">_нд=ТекущаяДата();<?"Объект">_пд=<?"Объект">_нд;
	<?"Объект">_с=<?"Объект">_с+1;Если <?"Объект">_пд<>ТекущаяДата() Тогда <?"Объект">_пд=ТекущаяДата();<?"Объект">_ост=(<?"Объект">_пд-<?"Объект">_нд)/<?"Объект">_с*(<?"Объект">_кол-<?"Объект">_с);Состояние(<?"Объект">_и+Формат(<?"Объект">_с/<?"Объект">_кол*100,"ЧДЦ=1;")+"% "+формат('00010101'+<?"Объект">_ост,"ДФ=ЧЧ:мм:сс"));КонецЕсли;

Шаблон для строки состояния. Видимо, первая строка вставляется перед циклом, вторая внутри.

anacefalus anacefalus, (Updated )

Комментарии (2, +2)

Бухгалтерия / Говнокод #16833 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
теСтрокаТЗ_двухТЧ=ТЗ_двухТЧ_РТиУ.Найти(СокрЛП(ЗначениеВСтрокуВнутр(теСтрокаТЧ.Номенклатура))+"++"+Строка(ё)+"++"+Строка(теСтрокаТЧ.НомерСтроки),"Ид");
		 теСтрокаТЗ_НДС_БезТекРТиУ=ТЗ_НДС_БезТекРТиУ.Найти(теСтрокаТЧ.Номенклатура);
	 	 ТЗостНмЗаказаБезТекРТиУ=ПолучитьТЗ_НоменклатурыЗаказа(текущСделка, РТиУобъ.Ссылка, ТекДата, ТекДата, ДокиЗаказаПлан, теСтрокаТЧ.Номенклатура);
	Если ТЗостНмЗаказаБезТекРТиУ.Количество()>0 И ТЗостНмЗаказаБезТекРТиУ.Итог("СуммаКолвоПоНм")=ТЗотбора1.Итог("КолвоВ_ЕдХр") Тогда	
             РазностьСум=ТЗостНмЗаказаБезТекРТиУ.Итог("СуммаСуммВзаиморасчПоНм")-(ТЗотбора1.Итог("Сумма")+?(текущСуммаВключаетНДС,0,ТЗотбора1.Итог("СуммаНДС")));
		Если РазностьСум<>0 И ПолучитьМодульЧисла(РазностьСум)<=Константы.опмМаксимальноеКорректируемоеВторымСпособомОтклонениеСуммОтгрузкиОтЗаказа.Получить() Тогда 
	    теСтрокаТЧ.Сумма=теСтрокаТЧ.Сумма+РазностьСум*ЗнакТипаДок;    теСтрокаТЗ_двухТЧ.Сумма=теСтрокаТЗ_двухТЧ.Сумма+РазностьСум;
	    КонецЕсли;
		Если ВсеОтгрузкиВВалютеЗаказа И НЕ теСтрокаТЗ_НДС_БезТекРТиУ=Неопределено Тогда
			     РазностьСумНДС=теСтрокаТЗ_НДС_БезТекРТиУ.СуммаНДС-ТЗотбора1.Итог("СуммаНДС");
		    Если РазностьСумНДС<>0 И ПолучитьМодульЧисла(РазностьСумНДС)<=Константы.опмМаксимальноеКорректируемоеВторымСпособомОтклонениеСуммОтгрузкиОтЗаказа.Получить() Тогда 
	    теСтрокаТЧ.СуммаНДС=теСтрокаТЧ.СуммаНДС+РазностьСумНДС*ЗнакТипаДок;    теСтрокаТЗ_двухТЧ.СуммаНДС=теСтрокаТЗ_двухТЧ.СуммаНДС+РазностьСумНДС;
	            Если НЕ текущСуммаВключаетНДС Тогда
	    теСтрокаТЧ.Сумма=теСтрокаТЧ.Сумма      -РазностьСумНДС*ЗнакТипаДок;    теСтрокаТЗ_двухТЧ.Сумма=теСтрокаТЗ_двухТЧ.Сумма      -РазностьСумНДС;
                КонецЕсли;
	        КонецЕсли;
	    КонецЕсли;
		Если ЗаказПокВыполненПолностью Тогда СтрокаТЗпоНм=ТЗ_НепоставленнойНмЗаказа.Найти(теСтрокаТЧ.Номенклатура);
			Если                          НЕ СтрокаТЗпоНм=Неопределено Тогда
		   ТЗ_НепоставленнойНмЗаказа.Удалить(СтрокаТЗпоНм);
	        КонецЕсли;
	    КонецЕсли;
    Иначе ЗаказПокВыполненПолностью=Ложь;
    КонецЕсли;

HomoAlbus HomoAlbus, (Updated )

Комментарии (10, +10)

Бухгалтерия / Говнокод #16777 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
Процедура Сформировать()
	СпрКонтр = СоздатьОбъект("Справочник.Контрагенты");
	СпрКонтр.ВыбратьЭлементы();
	Пока СпрКонтр.ПолучитьЭлемент()=1 Цикл
		Сообщить(СпрКонтр.Наименование);
		Спр = СоздатьОбъект("Справочник.ТорговыеТочки");
		Спр.ИспользоватьВладельца(СпрКонтр.ТекущийЭлемент());
		Спр.ВыбратьЭлементы();
		
		Пока Спр.ПолучитьЭлемент()=1 Цикл
			Сообщить(Спр.Наименование);
			Х = СокрЛп(Спр.Код);
			У = "";
			Если Х="80002963" Тогда У = "68000550";
			ИначеЕсли Х="80002964" Тогда У = "68000549";
			ИначеЕсли Х="80004172" Тогда У = "68000551";
....................................
			ИначеЕсли Х="80004503" Тогда У = "68000811";
			ИначеЕсли Х="80003952" Тогда У = "68001300";
	                КонецЕсли;
			Если У <> "" Тогда
				Спр.CASID = У;
				Спр.Записать();
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;
	Сообщить("Обработка завершена!");
КонецПроцедуры

Прислали обработку проставления определенного значения реквизита... Чуть со стула не упали... Всего 619 условий...

jerokee jerokee, (Updated )

Комментарии (20, +20)

Бухгалтерия / Говнокод #16758 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
Попытка
	// Для редких случаев, когда ЭтотОбъект неопределен
	// проверку на режим обмена данными делаем через попытку
	Загрузка = ЭтотОбъект.ОбменДанными.Загрузка;
	Если Загрузка Тогда
		// если текущий режим Загрузка, то производим минимум проверок
		// т.к. все проверки были произведены в ИБ источнике
		Возврат Ложь;
	КонецЕсли;
	ДопЗагрузка = Неопределено;
	Если НЕ Загрузка Тогда
		ЭтотОбъект.ДополнительныеСвойства.Свойство("Загрузка",ДопЗагрузка);
		Загрузка = ?(НЕ ДопЗагрузка = Неопределено,ДопЗагрузка,Загрузка); 
	КонецЕсли;
	Если Загрузка Тогда
		Возврат Ложь;
	КонецЕсли;
Исключение КонецПопытки;

Переменная "Загрузка" может принимать только 2 значения.

Mortum Mortum, (Updated )

Комментарии (18, +18)

Бухгалтерия / Говнокод #16695 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

        НовыйДокумент = Документы.ДокументПредЗаявка.СоздатьДокумент();
         НовыйДокумент.Дата = ТекущаяДата();
         НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
         СПД = НовыйДокумент.Ссылка;
         
         //Открываем документ
         ОткрытьЗначение(СПД);
      
КонецПроцедуры

Я не вкурил, но полагаю, что ЭТО новый способ создания документа на основании...

Danik Danik, (Updated )

Комментарии (23, +23)

Бухгалтерия / Говнокод #16685 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
ТовМат = РегистрыСведений.ТоварнаяМартица;
ГруппаД = Справочники.КлассификацияABC.НайтиПоНаименованию("Д").Ссылка;
ТЗНомен = Запрос.Выполнить().Выгрузить();Ит=0;тСерт = Справочники.СертификатыСоответствия.ПустаяСсылка();
ТЗНомен.Сортировать("Производитель,Сертификат,Номенклатура");
тПроизвод="";
Для Каждого стр Из ТзНомен Цикл
	Если Объект.ИсключитьТоварыГруппыД = Истина Тогда
		Если стр.Номенклатура.КлассABC = ГруппаД Тогда
			Продолжить;
		КонецЕсли;	
	КонецЕсли;	

	Если стр.Номенклатура.ЭтоГруппа = Ложь Тогда
		Если НаличиеВМатрице = истина Тогда
			НаборД = ТовМат.СоздатьНаборЗаписей();
			// устанавливаем параметры отбора по полному набору Измерений регистра:
			НаборД.Отбор.нОменклатура.Установить(стр.Номенклатура.Ссылка);
			НаборД.Прочитать();
			Если НаборД.Количество() = 0 Тогда
				Продолжить;
			Конецесли;	
		КонецЕсли;

Бывший программист из нашей конторы отбирает строки таблицы с номенклатурой, по которой отсутствуют записи в регистре сведений, используя при этом другие "удивительные приемы программирования"... Ушел на повышение в саму 1С)))

GORYNY4 GORYNY4, (Updated )

Комментарии (5, +5)

Бухгалтерия / Говнокод #16679 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
Процедура ПриЗаписи(Отказ)
 
Док = Ссылка.ПолучитьОбъект(); 
Док.ОбменДанными.Загрузка = Истина; 
Док.Записать();
 
КонецПроцедуры

И это все в форме документа

alexinzaz alexinzaz, (Updated )

Комментарии (2, +2)

Бухгалтерия / Говнокод #16641 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
//  Параметры - реквизит объекта. Больше (!) нигде не используется.

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	Если ЭтоНовый() Тогда
		Параметры = "000001000";
	КонецЕсли;
	
	ФлагОписания = ?(Сред(Параметры,7,1) = "1", Истина, Ложь);
	ФлагМестоX     = ?(Сред(Параметры,8,1) = "1", Истина, Ложь);
	ФлагМестоY      = ?(Сред(Параметры,9,1) = "1", Истина, Ложь);		
КонецПроцедуры

Процедура СменаФлага()    
	Параметры = Лев(Параметры,6)+Строка(Число(ФлагОписания))+Строка(Число(ФлагМестоX))+Строка(Число(ФлагМестоY));
КонецПроцедуры


Процедура ФлагОписанияПриИзменении(Элемент)	
	СменаФлага();	
КонецПроцедуры

Процедура ФлагМестоXПриИзменении(Элемент)	
	СменаФлага();	
КонецПроцедуры

Процедура ФлагМестоYПриИзменении(Элемент)	
	СменаФлага();	
КонецПроцедуры

Хотел быть шифровальщиком, но кривая дорожка жизни…

safer_bwd safer_bwd, (Updated )

Комментарии (4, +4)