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

    −1

    1. 1
    2. 2
    Возврат;	
    КонецПроцедуры

    Процедуры!!!

    qwertyk, 18 Октября 2017

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

    0

    1. 1
    2. 2
    3. 3
    Остатки.Очистить();
    ДокиОстатков = Остатки.Скопировать();
    ДокиОстатков.Свернуть("НомерВС");

    середина функции, никаких если, и прочих ветвлений, условий исключений...

    qwertyk, 18 Октября 2017

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

    0

    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
    Для каждого стр из Объект.УчётВремени цикл
    			НРВ = 0;
    			Если 
    				НачалоДня(стр.ДатаНачала) <> НачалоДня(стр.ДатаОкончания) 
    			Тогда
    				НРВ = НРВ + (стр.ДатаОкончания - Стр.ДатаНачала) /60 /60
    			ИначеЕсли //Начало и окончание задачи до начала рабочего дня
    				(Час(стр.ДатаНачала) < 10 или ( Час(стр.ДатаНачала) = 10 и Минута(стр.ДатаНачала) <=30)) и 
    				(Час(стр.ДатаОкончания) < 10 или ( Час(стр.ДатаОкончания) = 10 и Минута(стр.ДатаОкончания) <=30))
    			Тогда
    				НРВ = НРВ +  ((стр.ДатаОкончания - стр.ДатаНачала) /60 /60)
    			ИначеЕсли //Начало задачи до начала рабочего дня, окончание во время рабочего дня
    				(Час(стр.ДатаНачала) < 10 или ( Час(стр.ДатаНачала) = 10 и Минута(стр.ДатаНачала) <=30)) и 
    				(Час(стр.ДатаОкончания) < 19 и (Час(стр.ДатаОкончания) > 11 или ( Час(стр.ДатаОкончания) = 10 и Минута(стр.ДатаОкончания) > 30)))
    			Тогда
    				НРВ = НРВ +  ((НачалоДня(стр.ДатаОкончания) + ((10*60)*60) + 1800 - стр.ДатаНачала) /60 /60)
    			ИначеЕсли   //Начало задачи в рабочее время и окончание задачи в нерабочее время
    				(Час(стр.ДатаНачала) < 19 и (Час(стр.ДатаНачала) > 11 или ( Час(стр.ДатаНачала) = 10 и Минута(стр.ДатаНачала) > 30))) и
    				Час(Стр.ДатаОкончания) >= 19
    			Тогда
    				НРВ = НРВ +  (стр.ДатаНачала - (НачалоДня(стр.ДатаОкончания) + ((19*60)*60))) /60 /60
    			ИначеЕсли
    				Час(стр.ДатаНачала) >= 19 и Час(стр.ДатаОкончания) >= 19  
    			Тогда
    				НРВ = (стр.ДатаОкончания - Стр.ДатаНачала) /60 /60
    				
    			КонецЕсли;
    			стр.НРВ = НРВ;	
    				
    			Время = (стр.ДатаОкончания - стр.ДатаНачала) /60 /60;
    			РВ = Время - НРВ;
    			стр.РВ = РВ;
    			стр.Время = Время;
    			
    			
    		КонецЦикла;

    Вроде работает

    spaceashot, 18 Октября 2017

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

    0

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

    Выбирай хоть "Требуется", хоть "Не требуется" - нам все равно!

    Типовая УТ 11.3.4.93, регистр сведений СостоянияЗаказовКлиентов, модуль менеджера.

    romanvk, 13 Октября 2017

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

    0

    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
    &НаКлиенте
    Процедура ИзменитьПометкуУдаления(Команда)
    	...
    	Если ПУ(ссылкаНаОтчет) = Истина 
    	Тогда
    		текстВопроса = "Снять с """ + ссылкаНаОтчет + """ пометку на удаление?";
    	Иначе 
    		текстВопроса = "Пометить """ + ссылкаНаОтчет + """ на удаление?";
    	КонецЕсли;
    	Если Вопрос(текстВопроса, РежимДиалогаВопрос.ДаНет, 0) = КодВозвратаДиалога.Да
    	Тогда
    		СПУ( ссылкаНаОтчет, Не(ПУ(ссылкаНаОтчет)));                                      	
    	КонецЕсли; 
    	ОбновитьСписок();
    КонецПроцедуры
    
    &НаСервере
    Функция ПУ(ссылка)
    	Возврат ссылка.ПометкаУдаления;
    КонецФункции
    
    &НаСервере
    Процедура СПУ(ссылка, значение)
    	о = Документы.РегламентированныйОтчет.Выбрать();
    	Пока о.Следующий() Цикл 	
    		если о.Ссылка = ссылка тогда
    			оо = о.ПолучитьОбъект();
    			оо.ПометкаУдаления = значение;
    			оо.Записать();
    		КонецЕсли;	
    	КонецЦикла;
    КонецПроцедуры

    Установка пометки на удаление во внешней обработке от одного интегратора. Дважды происходит получение признака пометки удаления из ссылки. Код процедуры СПУ даже комментировать трудно.

    maalssy, 05 Октября 2017

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

    0

    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
    &НаКлиенте
    Процедура Заполнить(Команда)
    	
    	КоличествоСтрок = ПроверитьКоличествоСтрок();
    	….	
    
    КонецПроцедуры
    
    &НаСервере
    Функция ПроверитьКоличествоСтрок()
    	ТаблицаТабеля = ЭтотОбъект.ТаблицаЧасов.Выгрузить();
    	Возврат ТаблицаТабеля.Количество();
    КонецФункции

    Шедевр от одного крупного франчайзи.

    SpitfireIX, 23 Августа 2017

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

    +1

    1. 1
    мДата = Дата(Год(Объект.Дата), Месяц(Объект.Дата), 1, 0, 0, 0);

    НачалоМесяца(Объект.Дата)? Нет, это же так скучно и избито!

    NachtLied, 12 Августа 2017

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

    −1

    1. 1
    2. 2
    3. 3
    https://github.com/covrom/gonec
    
    1C:Enterprise-like language interpreter written in Go https://covrom.github.io/gonec/

    ГОВНЕЦ (govnec)
    Интерпретатор и платформа создания микросервисов на 1С-подобном языке

    Цели

    Интерпретатор создан для решения программистами 1С множества задач, связанных с высокопроизводительными распределенными вычислениями, создания вэб-сервисов и вэб-порталов для работы тысяч пользователей, работы с высокоэффективными базами данных с использованием синтаксиса языка, похожего, но не ограниченного возможностями языка 1С.

    Включив такой интерпретатор в свое решение, Вы можете предоставить высокий уровень сервиса для своих клиентов, который обгонит решения не только ваших конкурентов на рынке 1С, но и конкурентных платформ в enterprise.

    Интерпретатор разрабатывается “от простого к сложному”. На начальных этапах будет включена базовая функциональность многопоточных вычислений и сетевых сервисов. В перспективе планируется организация работы с различными базами данных и визуализация управляемых форм, созданных в конфигураторе.

    Еще никогда не были так просто доступны программистам 1С возможности:

    * Создать микросервис с произвольным сетевым протоколом, развернуть его на linux, в docker контейнере или кластере kubernetes
    * Выполнить сложную многопоточную вычислительную задачу для десятков тысяч подключающихся пользователей за миллисекунды
    * Взаимодействовать с пользователем через web-браузер с минимальным трафиком
    * Сохранять и получать данные с максимально доступной скоростью в key-value базах данн

    j123123, 12 Августа 2017

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Если Отладка Тогда
    				ЗаписьXML.ЗаписатьТекст(СокрЛП(КодИнтернетЗаказа));
    			Иначе
    				ЗаписьXML.ЗаписатьТекст(СокрЛП(КодИнтернетЗаказа));
    			КонецЕсли;

    Безысходность. Судьба предрешена. Бедный Йорик.

    M1CE, 08 Августа 2017

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Если ЭтоНовыйОбъект Тогда
    		Если Найти(НРег(ЭтотОбъект.ТекстЗаявки),"принтер") > 0 Тогда
    			ЭтотОбъект.ВидОбращения = Справочники.ИТ_ПричинаОбращения.НайтиПоНаименованию("Принтер");
    		КонецЕсли;
    	КонецЕсли;

    Если в тексте заявки есть "принтер", значит это по принтеру, если в тексте "Замените картридж" - peaceDa рулю.

    M1CE, 02 Августа 2017

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