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

    −117.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    ТекВрем = Час(ТекущаяДата())*60+Минута(ТекущаяДата());
    ВремКурсов = 60;
    Если ТекВрем >= ВремКурсов Тогда
    	ВремКурсов = ВремКурсов + 24*60 - ТекВрем;
    Иначе
    	ВремКурсов = ВремКурсов - ТекВрем;
    КонецЕсли;
    ВремКурсов = 1;
    ПодключитьОбработчикОжидания("ЗагрузкаВалютИПересчетУЕ", ВремКурсов*60);

    Вычисляем ВремКурсов, а затем присваиваем этой переменной единицу и умножаем на 60. Рациональность, чорт побери! :-D

    KingOfShit, 11 Февраля 2010

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

    −114.9

    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
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    запрос = новый запрос("ВЫБРАТЬ
    |	ЗаказыПокупателейОбороты.ЗаказПокупателя,
    |	ЗаказыПокупателейОбороты.Номенклатура,
    |	СУММА(ЗаказыПокупателейОбороты.КоличествоПриход) КАК КоличествоВЗаказе,
    |	СУММА(ВложенныйЗапрос.ОстатокПоЗаказу) КАК ОстатокПоЗаказу,
    |	СУММА(ВложенныйЗапрос.ОстатокВРезерве) КАК ОстатокВРезерве
    |ИЗ
    |	РегистрНакопления.ЗаказыПокупателей.Обороты(, , , ) КАК ЗаказыПокупателейОбороты
    |		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |			ЗаказыПокупателейОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
    |			ЗаказыПокупателейОстатки.Номенклатура КАК Номенклатура,
    |			СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток) КАК ОстатокПоЗаказу,
    |			СУММА(0) КАК ОстатокВРезерве
    |		ИЗ
    |			РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки
    |		ГДЕ
    |			ЗаказыПокупателейОстатки.ЗаказПокупателя = &Заказ
    |		
    |		СГРУППИРОВАТЬ ПО
    |			ЗаказыПокупателейОстатки.ЗаказПокупателя,
    |			ЗаказыПокупателейОстатки.Номенклатура
    |		
    |		ОБЪЕДИНИТЬ ВСЕ
    |		
    |		ВЫБРАТЬ
    |			ТоварыВРезервеНаСкладахОстатки.ДокументРезерва,
    |			ТоварыВРезервеНаСкладахОстатки.Номенклатура,
    |			СУММА(0),
    |			СУММА(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток)
    |		ИЗ
    |			РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
    |		ГДЕ
    |			ТоварыВРезервеНаСкладахОстатки.ДокументРезерва = &Заказ
    |		
    |		СГРУППИРОВАТЬ ПО
    |			ТоварыВРезервеНаСкладахОстатки.Номенклатура,
    |			ТоварыВРезервеНаСкладахОстатки.ДокументРезерва) КАК ВложенныйЗапрос
    |		ПО ЗаказыПокупателейОбороты.ЗаказПокупателя = ВложенныйЗапрос.ЗаказПокупателя
    |			И ЗаказыПокупателейОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура
    |ГДЕ
    |	ЗаказыПокупателейОбороты.ЗаказПокупателя = &Заказ
    |
    |СГРУППИРОВАТЬ ПО
    |	ЗаказыПокупателейОбороты.ЗаказПокупателя,
    |	ЗаказыПокупателейОбороты.Номенклатура");
    
    запрос.УстановитьПараметр("Заказ",заказ);					  
    
    Результат = Запрос.Выполнить();
    тРезервы.Очистить();
    	
    Если Не Результат.Пустой() Тогда
    	Выборка = Результат.Выбрать();
    	Пока Выборка.Следующий() Цикл
    		НоваяСтрока 		= тРезервы.Добавить();
    		НоваяСтрока.Номенклатура 	= Выборка.Номенклатура;
    		НоваяСтрока.КоличествоВЗаказе = Выборка.КоличествоВЗаказе;
    		НоваяСтрока.ОстатокВРезерве 	= Выборка.ОстатокВРезерве;
    		НоваяСтрока.ОстатокКОтгрузке 	= Выборка.ОстатокПоЗаказу;
    	КонецЦикла; 
    КонецЕсли;

    Заполнение таблицы значений, очень быстро работает)))
    КоличествоВЗаказе в 2 раза больше получается

    SrK, 04 Февраля 2010

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

    −127.7

    1. 1
    Выбрать * из РегистрСведений.Таблица Где Таблица.ДатаПодтверждения >= ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))

    Это вот условие писал мой бывший начальник..

    KingOfShit, 29 Января 2010

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

    −134

    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
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    	
    ТекКвота = ДанныеСтроки.Ссылка;
    мЗапросДок = Новый Запрос;
    мЗапросДок.Текст = 
    "ВЫБРАТЬ
    |	ЕСТЬNULL(СУММА(СДотчетТовары.Количество), 0) КАК Количество
    |ИЗ
    |	Документ.СДотчет.Товары КАК СДотчетТовары
    |ГДЕ
    |	СДотчетТовары.Ссылка.Проведен = ИСТИНА
    |	И СДотчетТовары.КвотаОтчета = &Квота";			
    мЗапросДок.УстановитьПараметр("Квота",ТекКвота);
    			
    Выборка = мЗапросДок.Выполнить().Выбрать();
    Выборка.Следующий();
    ВДоке = Выборка.Количество;
    ОформлениеСтроки.Ячейки.СогласноСД.Значение = ?(ВДоке=0,"",ВДоке);
    мЗапросПОС = Новый Запрос;
    мЗапросПОС.Текст = 
    "ВЫБРАТЬ
    |	ЕСТЬNULL(СписаноПоПОСОбороты.КоличествоОборот, 0) КАК Количество
    |ИЗ
    |	РегистрНакопления.СписаноПоПОС.Обороты(, , , Квота = &Квота) КАК СписаноПоПОСОбороты";
    
    мЗапросПОС.УстановитьПараметр("Квота",ТекКвота);
    Выборка = мЗапросПОС.Выполнить().Выбрать();
    Выборка.Следующий();
    ВПОС = Выборка.Количество;
    ОформлениеСтроки.Ячейки.СогласноПОС.Значение = ?(ВПОС=0,"",ВПОС);
    			
    мЗапросРег = Новый Запрос;
    
    мЗапросРег.Текст = 
    "ВЫБРАТЬ
    |	ЕСТЬNULL(Квоты.КолВЗаказахПокупателя, 0) КАК КолВЗаказахПокупателя,
    |	ЕСТЬNULL(ЗаказПоставщику.КолВЗаказахПоставщику, 0) КАК КолВЗаказахПоставщику
    |ИЗ
    |	(ВЫБРАТЬ
    |		СУММА(ЕСТЬNULL(ЗаказПоставщикуТовары.Количество, 0)) КАК КолВЗаказахПоставщику
    |	ИЗ
    |		Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
    |	ГДЕ
    |		ЗаказПоставщикуТовары.КвотаЗаказа = &Квота) КАК ЗаказПоставщику,
    |	(ВЫБРАТЬ
    |		СУММА(ЕСТЬNULL(КвотыЗаказовПокупателейОстаткиИОбороты.КоличествоПриход, 0)) КАК КолВЗаказахПокупателя
    |	ИЗ
    |		РегистрНакопления.КвотыЗаказовПокупателей.ОстаткиИОбороты(
    |				,
    |				,
    |				,
    |				,
    |				Квота = &Квота
    |					И ВидКвоты = ЗНАЧЕНИЕ(Перечисление.ВидыКвот.ОтчетнаяКвота)) КАК КвотыЗаказовПокупателейОстаткиИОбороты) КАК Квоты";
    
    			
    мЗапросРег.УстановитьПараметр("Квота",ТекКвота);
    Выборка = мЗапросРег.Выполнить().Выбрать();
    ЕстьВыборка = Выборка.Следующий();
    КолВЗаказахПокупателя = ?(не ЕстьВыборка,0,Выборка.КолВЗаказахПокупателя);
    КолВЗаказахПоставщику = ?(не ЕстьВыборка,0,Выборка.КолВЗаказахПоставщику);
    
    ОформлениеСтроки.Ячейки.ВЗаказахПокупателя.Значение = КолВЗаказахПокупателя;
    ОформлениеСтроки.Ячейки.ВЗаказахПоставщику.Значение = КолВЗаказахПоставщику;
    
    КонецПроцедуры

    Чудный справочник, очень быстро открывается и прокручивается. Приходится ждать по 20 секунд)))

    KingOfShit, 14 Января 2010

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

    −213

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Если Пользователь.Родитель.КонтрольРазмещения = Истина Тогда
    	Возврат Истина;
    Иначе
    	Возврат Ложь;
    КонецЕсли;

    Лёгких путей не бывает :)

    KingOfShit, 14 Января 2010

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

    −122

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Функция ВыделитьНалог(СуммаСНалогом,Ставка)
            Если Ставка<>-100 Тогда
                    Возврат(Ставка*СуммаСНалогом/(100+Ставка));
            Иначе
                    Сообщить("Налог не рассчитан");
                    Возврат(0);
            КонецЕcли;
    КонецФункции

    В одном продукте, имеющем сертификат 1с Совместимо!

    Нет, с программерской точки зрения верно. Только как ставка налога может быть минус сто процентов? O.o

    nslz, 16 Декабря 2009

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

    −110

    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
    28. 28
    29. 29
    30. 30
    31. 31
    Процедура ТабличноеПоле1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
        // при выводе строки в ТабличноеПоле1, перебор ячеек строки
     
        Для Каждого Ячейка Из ОформлениеСтроки.Ячейки Цикл
            // если имя текущей ячейки "НормаВремени"
     
            Если Ячейка.Имя = "НормаВремениТекст" Тогда     
                // получить норму времени текущего поста охраны на текущую дату и вывести в соотв. ячейку Тч
     
                Запрос = Новый Запрос;
                Запрос.Текст =
                    "ВЫБРАТЬ
                    |    НормыВремениПоПостамСрезПоследних.Период,
                    |    НормыВремениПоПостамСрезПоследних.ПостОхраны,
                    |    НормыВремениПоПостамСрезПоследних.НормаВремени
                    |ИЗ
                    |    РегистрСведений.НормыВремениПоПостам.СрезПоследних(&ВыбДата) КАК НормыВремениПоПостамСрезПоследних
                    |ГДЕ
                    |    НормыВремениПоПостамСрезПоследних.ПостОхраны = &Пост";
                Запрос.УстановитьПараметр("ВыбДата",ТекущаяДата());
                Запрос.УстановитьПараметр("Пост",   ДанныеСтроки.Ссылка);
                ТекНормаВремени = Запрос.Выполнить().Выгрузить();    
                //ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока[Ячейка.Имя].Значение = ТекНормаВремени[0].НормаВремени;
     
                ОформлениеСтроки.Ячейки["НормаВремениТекст"].ОтображатьТекст = Истина;
                //ОформлениеСтроки.Ячейки["НормаВремениТекст"].Значение        = ТекНормаВремени[0].НормаВремени;
     
                ОформлениеСтроки.Ячейки["НормаВремениТекст"].Текст           = ТекНормаВремени[0].НормаВремени;
            КонецЕсли;
        КонецЦикла;
    КонецПроцедуры

    веселый цикл

    Vezunchik, 11 Декабря 2009

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

    −118.9

    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
    Модуль  объекта: Документ.ЗаявкаНаРасходованиеСредств
    
    ////////////////////////////////////////////////////////////////////////////////
    // ПРОЦЕДУРЫ И ФУНКЦИИ ДОКУМЕНТА
    
    //++Говнокодер
    #Если Клиент Тогда
    //--Говнокодер
    
    Процедура ОбработкаПроведения(Отказ, Режим)
    ...
    КонецПроцедуры
    
    //++Говнокодер
    #КонецЕсли
    //--Говнокодер

    - Документ проведен?
    База: Проведен
    Журнал регистрации: Проведен!
    - А где движения?!
    - А их нету, ибо документ проводился на сервере.

    Плакали всем отделом, всплыло случайно, когда перенесли проведение в привилегированный режим. А говнокодер уже год как с нами не работает, привет ему :)

    tr0y, 19 Ноября 2009

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

    −109.8

    1. 1
    2. 2
    3. 3
    4. 4
    Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    	ДанныеСтроки.Осталось = ДанныеСтроки.Поступление - СуммаСтроки;
    	Элемент.Колонки.Объем.ТекстПодвала = Товары.Итог("Объем");
    КонецПроцедуры

    Всё тот же Самоделкин. Обработка события при выводе строки.
    Догодайтесь, в чём изюминка этой процедуры?

    Kopchuga, 12 Октября 2009

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

    −156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Дораспределить = Новый ТаблицаЗначений();
    Дораспределить.Колонки.Добавить("Строка");
    Дораспределить.Колонки.Добавить("Количество");
    .....
    Дораспределить.Очистить();
    НовДораспределить = Дораспределить.Добавить();
    НовДораспределить.Строка = Дораспределить[0].Строка;
    НовДораспределить.Количество = Дораспределить[0].Количество - ОсталосьРаспределить;

    Новые приключения Самоделкина. На этот раз у него не прокатило, в последней строке валится с ошибкой.

    Kopchuga, 12 Октября 2009

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