1. 1C / Говнокод #19005

    −96

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    Функция мПолучитьДанныеПоОтсрочкеОплатыРТУнаДт(тРТУ, тДт, тНедоплатаПоРТУ, теРегЗапись="", текЗаказыПокупателей="", текЗнакЗаказыПокупателей="=", текОтрицаниеЗнакаЗаказыПокупателей=Ложь, тРазрешенныхДнейОтсрочки=0, тМаксДеньПогашения="", КЛ_тРТУ="" , тРТУ_Дата="", тСтрокаТЗотчета, УровеньПоЕжеМесКва=0) // релиз 3.3 доб. , тСтрокаТЗотчета , УровеньПоЕжеМесква=0  // релиз 3.1 доб. , тРТУ_Дата=""
    	                        текРТУ_Дата=?(ТипЗнч(тРТУ_Дата)=Тип("Дата") И НЕ тРТУ_Дата='00010101', тРТУ_Дата, тРТУ.Дата); // релиз 3.1 доб.
    //...	
    	КЛ_тРТУ=теРегЗапись.теРегистратор; тЕстьЕжемес=теРегЗапись.ДеньПогашенияМесяц>0   И теРегЗапись.ДеньПогашенияМесяц<=31;   
    	                                     тЕстьЕжеква=теРегЗапись.ДеньПогашенияКвартал>0 И теРегЗапись.ДеньПогашенияКвартал<=31; 
    		Если      тЕстьЕжемес И теРегЗапись.ДеньМесяцЭтоСледующийЗаОтгрузкой Тогда
    тМаксДеньПогашения=Мин(Дата(Год(ДобавитьМесяц(текРТУ_Дата,1)),Месяц(ДобавитьМесяц(текРТУ_Дата,1)),теРегЗапись.ДеньПогашенияМесяц), теРегЗапись.ДатаОкончания);   // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата
    		ИначеЕсли тЕстьЕжеква И Найти("/3/6/9/12/","/"+Строка(Месяц(текРТУ_Дата))+"/")<>0 И теРегЗапись.ДеньПогашенияКвартал>День(текРТУ_Дата) Тогда             // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата
    тМаксДеньПогашения=Мин(Дата(Год(текРТУ_Дата),Месяц(текРТУ_Дата),теРегЗапись.ДеньПогашенияКвартал), теРегЗапись.ДатаОкончания);                                   // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата                                         
            ИначеЕсли тЕстьЕжемес И ?(Найти("/3/6/9/12/","/"+Строка(Месяц(текРТУ_Дата))+"/")=0,Истина,НЕ тЕстьЕжеква) И теРегЗапись.ДеньПогашенияМесяц>День(текРТУ_Дата)   // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата 
                    И НЕ(УровеньПоЕжеМесКва=1) Тогда  // релиз 3.3 доб. строку
    тМаксДеньПогашения=Мин(Дата(Год(текРТУ_Дата),Месяц(текРТУ_Дата),теРегЗапись.ДеньПогашенияМесяц), теРегЗапись.ДатаОкончания); ПроверитьЕжеМесКваНаНеполноеПогашение(1,теРегЗапись,тСтрокаТЗотчета); // релиз 3.3 доб. ПроверитьЕжеМесКваНаНеполноеПогашение(1,теРегЗапись,тСтрокаТЗотчета); // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата                                      
    		ИначеЕсли тЕстьЕжеква И Найти("/3/6/9/12/","/"+Строка(Месяц(ДобавитьМесяц(текРТУ_Дата,1)))+"/")<>0 Тогда                                                 // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата
    тМаксДеньПогашения=Мин(Дата(Год(ДобавитьМесяц(текРТУ_Дата,1)),Месяц(ДобавитьМесяц(текРТУ_Дата,1)),теРегЗапись.ДеньПогашенияКвартал), теРегЗапись.ДатаОкончания);ПроверитьЕжеМесКваНаНеполноеПогашение(2,теРегЗапись,тСтрокаТЗотчета); // релиз 3.3 доб. ПроверитьЕжеМесКваНаНеполноеПогашение(2,теРегЗапись,тСтрокаТЗотчета); // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата                                         
            ИначеЕсли тЕстьЕжемес 
                    И НЕ(УровеньПоЕжеМесКва=1 И тМаксДеньПогашения>=Мин(Дата(Год(ДобавитьМесяц(текРТУ_Дата,1)),Месяц(ДобавитьМесяц(текРТУ_Дата,1)),теРегЗапись.ДеньПогашенияМесяц), теРегЗапись.ДатаОкончания)) Тогда  // релиз 3.3 доб. строку
    
    	//...
    		
    	                          тМаксДеньПогашения=НачалоДня(тМаксДеньПогашения);
    	тРазрешенныхДнейОтсрочки=(тМаксДеньПогашения-НачалоДня(текРТУ_Дата))/(24*60*60); // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата
    	Возврат                  (тМаксДеньПогашения-НачалоДня(тДт))/(24*60*60);
    КонецФункции

    Там, говорят, работы на час: посмотреть как в отчете данные собираются и перенести то, что надо. Открываю отчет, а там с два десятка вот таких функций и процедур. Орфография и пунктуация сохранена, жаль вся функция не поместилась.

    HomoAlbus, 11 Ноября 2015

    Комментарии (3)
  2. 1C / Говнокод #18998

    −96

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Если ОтражатьВБухгалтерскомУчете = Истина Тогда
    		Если Лев(Номер, 3) <> ТекПрефикс Тогда	Номер = "";	УстановитьНовыйНомер(); КонецЕсли;
    	Иначе
    		Если Лев(Номер, 3) = ТекПрефикс Тогда	Номер = "";	УстановитьНовыйНомер(); КонецЕсли;
    КонецЕсли;

    В чем смысл проверки на соответствие префиксу остается только гадать...

    imxored, 10 Ноября 2015

    Комментарии (5)
  3. 1C / Говнокод #18959

    −100

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Если НЕ ЗначениеЗаполнено(Качество) Тогда
    	Качество = Справочники.Качество.Новый;
    КонецЕсли;
    	
    Если Качество = Справочники.Качество.Новый Тогда
    	Качество = Справочники.Качество.ПустаяСсылка();
    КонецЕсли;

    Foxx, 03 Ноября 2015

    Комментарии (4)
  4. 1C / Говнокод #18923

    −88

    1. 1
    2. 2
    3. 3
    ЕСли ЗаявкаСсылка.таблица.Выгрузить().Колонки.Найти("СхемаЗакупки")  = Неопределено ТОгда
          ТекстЗапроса = 1/0;//вызываем Исключение
         КонецЕсли;

    Пунктуация сохранена.

    alexinzaz, 27 Октября 2015

    Комментарии (8)
  5. 1C / Говнокод #18894

    −98

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    Если не ДанныеАкта.ФормироватьБухПроводку Тогда
    	Выборка = Результат[1].Выбрать();
    	Пока Выборка.Следующий() Цикл
    		СуммаВал = СуммаВал + Выборка.СуммаУслуги;
    		//тут делаем всякое с выборкой
    	КонецЦикла;
    КонецЕсли;
    
    Если ДанныеАкта.ФормироватьБухПроводку Тогда
    	//тут делаем движения по счетам БУ
    Иначе
    	тз = Результат[1].Выгрузить();
    	Для каждого стрТЗ Из тз Цикл
    		//тут делаем тоже, что и с выборкой, только теперь с таблицей значений О_о
    	КонецЦикла;
    КонецЕсли;

    Смотрю одно решение для страховых компаний, полностью на поддержке...

    HomoAlbus, 20 Октября 2015

    Комментарии (4)
  6. 1C / Говнокод #18850

    −98

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |	ДанныеСотрудниковСрезПоследних.Подразделение
    |ИЗ
    |	РегистрСведений.ДанныеСотрудников.СрезПоследних(&Дата, ) КАК ДанныеСотрудниковСрезПоследних
    |ГДЕ
    |	ДанныеСотрудниковСрезПоследних.Сотрудник = &Сотрудник";
    
    Запрос.УстановитьПараметр("Дата", ТекущаяДата());
    Запрос.УстановитьПараметр("Сотрудник", Пользователь.ФизЛицо);

    классическая ошибка СрезПоследних и ГДЕ (сотрудник, ессссно, является измерением); непонятно зачем присобачена &Дата
    откуда бы вы думали взят этот код?
    аддон "Закупки" для БГУ, поставщик Фирма "1С", версия 1.0.9.1. ОбщийМодуль.ДляУП.ПолучитьПодразделениеТ екущегоПользователя()
    И чего народ хочет от быдлокодеров-франчей, если сами 1С так пишут...

    IHate1C, 12 Октября 2015

    Комментарии (7)
  7. 1C / Говнокод #18802

    −94

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    Функция ПолучитьДоговорКонтрагента(Организация,Подразделение,Контрагент) Экспорт
    	
    	 ЗапросДоговор = Новый Запрос;
    		ЗапросДоговор.Текст = "ВЫБРАТЬ
    		               |	ДоговорыКонтрагентов.Ссылка
    		               |ИЗ
    		               |	Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    		               |ГДЕ
    		               |	ДоговорыКонтрагентов.Организация = &Организация
    		               |	И ДоговорыКонтрагентов.Подразделение = &Подразделение
    		               |	И ДоговорыКонтрагентов.Владелец = &Владелец
    		               |
    		               |СГРУППИРОВАТЬ ПО
    		               |	ДоговорыКонтрагентов.Ссылка";
    		ЗапросДоговор.УстановитьПараметр("Организация",Организация);
    		ЗапросДоговор.УстановитьПараметр("Подразделение",Подразделение);
    		ЗапросДоговор.УстановитьПараметр("Владелец",Контрагент);
    		Результат = ЗапросДоговор.Выполнить();
    		Если НЕ Результат.Пустой() Тогда
    			Возврат Результат.Выбрать().Следующий();
    		Иначе
    			
    			Возврат Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
    			
    		КонецЕсли;
    	
    КонецФункции

    Вот вроде функция общего модуля называется ПолучитьДоговорКонтрагента, и ты, не заглядывая в неё, конечно же, ждёшь возврата ссылки на спр-к ДоговорыКонтрагентов, но нет!!

    SkyHunter, 02 Октября 2015

    Комментарии (16)
  8. 1C / Говнокод #18793

    −96

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    	|	ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Контрагент,
    	|	ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) КАК ТорговаяТочка,
    	|	0 КАК ЛимитСумма,
    	|   0 КАК ЛимитСрок,
    	|   0 КАК ПросроченаСумма,
    	|   0 КАК ПросроченоДней,
    	|	0 КАК ОтгрузкаРазрешена,
    	|   Значение(Документ.РеализацияТоваровУслуг.ПустаяСсылка) КАК Документ,
    	|	0 КАК Сумма
    	|";
    РезультатЗапроса = Запрос.Выполнить();
    ТаблицаДЗ = РезультатЗапроса.Выгрузить();
    Результаты.Вставить("АктуальнаяДЗСумма", ТаблицаДЗ);

    Кто может объяснить мне сакральный смысл этого запроса?

    jerokee, 01 Октября 2015

    Комментарии (19)
  9. 1C / Говнокод #18721

    −98

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    &НаКлиенте
    Процедура УстановитьВидимостьПотребностей(Видимость)
    
                  Если Видимость Тогда
                                   Элементы.ТекстУтвержденоПоЗаявкам.ЦветТекстаЗаголовка = Новый Цвет(0,0,0);
                                   Элементы.ТекстУтвержденнаяПотребность.ЦветТекстаЗаголовка = Новый Цвет(0,0,0);
                                   Элементы.ТекстНеиспользованнаяПотребность.ЦветТекстаЗаголовка = Новый Цвет(0,0,0);
                    Иначе
                                   Элементы.ТекстНеиспользованнаяПотребность.ЦветТекстаЗаголовка = Новый Цвет(252,250,235);
                                   Элементы.ТекстУтвержденнаяПотребность.ЦветТекстаЗаголовка = Новый Цвет(252,250,235);
                                   Элементы.ТекстУтвержденоПоЗаявкам.ЦветТекстаЗаголовка = Новый Цвет(252,250,235);
                    КонецЕсли;
    
    Элементы.ТекстСрочнойНакладной.ЦветТекстаЗаголовка = Новый Цвет(252,250,235);
    Элементы.ТекстСрочнойНакладной.ЦветТекста = Новый Цвет(252,250,235);
    
    КонецПроцедуры

    Оригинальный способ управления видимостью элементов УФ без лишних серверных вызовов. Получил женский оргазм=)

    safer_bwd, 15 Сентября 2015

    Комментарии (4)
  10. 1C / Говнокод #18707

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    ТаблЗнач = Запрос.Выполнить().Выгрузить();  //SL+
    	Для Каждого Элемент из ТаблЗнач Цикл
    		Если Элемент.Номенклатура.РазрешеноДробноеКоличество = Ложь Тогда
    			Элемент.Количество = ?(Формат (Элемент.Количество,"ЧДЦ=0") = "",0,Формат (Элемент.Количество,"ЧДЦ=0")); 				
    		КонецЕсли;	
    	КонецЦикла;

    BlinOFF, 10 Сентября 2015

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