- 1
- 2
- 3
- 4
//Если Ответ = КодВозвратаДиалога.Нет Штирлиц решил не писать, чтобы запутать врага
Если НЕ Ответ = КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−4
//Если Ответ = КодВозвратаДиалога.Нет Штирлиц решил не писать, чтобы запутать врага
Если НЕ Ответ = КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Если Ответ = КодВозвратаДиалога.Нет Штирлиц решил не писать, чтобы запутать врага
−2
Возврат;
КонецПроцедуры
Процедуры!!!
+3
Остатки.Очистить();
ДокиОстатков = Остатки.Скопировать();
ДокиОстатков.Свернуть("НомерВС");
середина функции, никаких если, и прочих ветвлений, условий исключений...
+1
Для каждого стр из Объект.УчётВремени цикл
НРВ = 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;
РВ = Время - НРВ;
стр.РВ = РВ;
стр.Время = Время;
КонецЦикла;
Вроде работает
+2
Функция ТекстЗапросаДляРасчетаСостоянийОбеспеченияЗаказа()
ТекстЗапроса = "
|ВЫБРАТЬ
| ЗаказКлиентаТовары.Ссылка КАК Заказ,
| МАКСИМУМ(ВЫБОР
| КОГДА ЗаказКлиентаТовары.ВариантОбеспечения В (ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.Требуется), ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.НеТребуется))
| И ЗаказКлиентаТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ) КАК ОбеспечениеТребуется,
...
Выбирай хоть "Требуется", хоть "Не требуется" - нам все равно!
Типовая УТ 11.3.4.93, регистр сведений СостоянияЗаказовКлиентов, модуль менеджера.
+3
&НаКлиенте
Процедура ИзменитьПометкуУдаления(Команда)
...
Если ПУ(ссылкаНаОтчет) = Истина
Тогда
текстВопроса = "Снять с """ + ссылкаНаОтчет + """ пометку на удаление?";
Иначе
текстВопроса = "Пометить """ + ссылкаНаОтчет + """ на удаление?";
КонецЕсли;
Если Вопрос(текстВопроса, РежимДиалогаВопрос.ДаНет, 0) = КодВозвратаДиалога.Да
Тогда
СПУ( ссылкаНаОтчет, Не(ПУ(ссылкаНаОтчет)));
КонецЕсли;
ОбновитьСписок();
КонецПроцедуры
&НаСервере
Функция ПУ(ссылка)
Возврат ссылка.ПометкаУдаления;
КонецФункции
&НаСервере
Процедура СПУ(ссылка, значение)
о = Документы.РегламентированныйОтчет.Выбрать();
Пока о.Следующий() Цикл
если о.Ссылка = ссылка тогда
оо = о.ПолучитьОбъект();
оо.ПометкаУдаления = значение;
оо.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Установка пометки на удаление во внешней обработке от одного интегратора. Дважды происходит получение признака пометки удаления из ссылки. Код процедуры СПУ даже комментировать трудно.
+3
&НаКлиенте
Процедура Заполнить(Команда)
КоличествоСтрок = ПроверитьКоличествоСтрок();
….
КонецПроцедуры
&НаСервере
Функция ПроверитьКоличествоСтрок()
ТаблицаТабеля = ЭтотОбъект.ТаблицаЧасов.Выгрузить();
Возврат ТаблицаТабеля.Количество();
КонецФункции
Шедевр от одного крупного франчайзи.
+3
мДата = Дата(Год(Объект.Дата), Месяц(Объект.Дата), 1, 0, 0, 0);
НачалоМесяца(Объект.Дата)? Нет, это же так скучно и избито!
−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 базах данн
+4
Если Отладка Тогда
ЗаписьXML.ЗаписатьТекст(СокрЛП(КодИнтернетЗаказа));
Иначе
ЗаписьXML.ЗаписатьТекст(СокрЛП(КодИнтернетЗаказа));
КонецЕсли;
Безысходность. Судьба предрешена. Бедный Йорик.