- 1
- 2
- 3
- 4
- 5
- 6
- 7
Исходные коды на 1С!
На джаву перейти мы рады,
Но не стерплю такой утраты,
Я снова перейду на 1С
А мой товарищ одинокий
Нам закодирует EE
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−154
Исходные коды на 1С!
На джаву перейти мы рады,
Но не стерплю такой утраты,
Я снова перейду на 1С
А мой товарищ одинокий
Нам закодирует EE
Ну и кто сказал, что Маяковский умер?
−134
Для Каждого ТекущаяСтрока Из ОтработанноеВремя Цикл
ТекущаяСтрока.ИтогоЧасов=0;
ТекущаяСтрока.ИтогоЧасов=ТекущаяСтрока.ПервыйЧасов1+ТекущаяСтрока.ПервыйЧасов2+ТекущаяСтрока.ПервыйЧасов3+
ТекущаяСтрока.ПервыйЧасов4+ТекущаяСтрока.ПервыйЧасов5+ТекущаяСтрока.ПервыйЧасов6+ТекущаяСтрока.ПервыйЧасов7+
ТекущаяСтрока.ПервыйЧасов8+ТекущаяСтрока.ПервыйЧасов9+ТекущаяСтрока.ПервыйЧасов10+ТекущаяСтрока.ПервыйЧасов11+
ТекущаяСтрока.ПервыйЧасов12+ТекущаяСтрока.ПервыйЧасов13+ТекущаяСтрока.ПервыйЧасов14+ТекущаяСтрока.ПервыйЧасов15+
ТекущаяСтрока.ПервыйЧасов16+ТекущаяСтрока.ПервыйЧасов17+ТекущаяСтрока.ПервыйЧасов18+ТекущаяСтрока.ПервыйЧасов19+
ТекущаяСтрока.ПервыйЧасов20+ТекущаяСтрока.ПервыйЧасов21+ТекущаяСтрока.ПервыйЧасов22+ТекущаяСтрока.ПервыйЧасов23+
ТекущаяСтрока.ПервыйЧасов24+ТекущаяСтрока.ПервыйЧасов25+ТекущаяСтрока.ПервыйЧасов26+ТекущаяСтрока.ПервыйЧасов27+
ТекущаяСтрока.ПервыйЧасов28+ТекущаяСтрока.ПервыйЧасов29+ТекущаяСтрока.ПервыйЧасов30+ТекущаяСтрока.ПервыйЧасов31;
ТекущаяСтрока.ИтогоОклад=0;
ТекущаяСтрока.ИтогоОклад= ОКр(ТекущаяСтрока.ИтогоЧасов/ТекущаяСтрока.НормаЧасов*ТекущаяСтрока.Оклад,2);
ТекущаяСтрока.Выручка=0;
Если ТекущаяСтрока.ПервыйЧасов1>0 тогда
НайденнаяСтрока = РабочаяТаблица.Найти(1, "День");
Если НайденнаяСтрока = Неопределено Тогда
Иначе
ТекущаяСтрока.Выручка = ТекущаяСтрока.Выручка+НайденнаяСтрока.Продано;
КонецЕсли;
КонецЕсли;
Если ТекущаяСтрока.ПервыйЧасов2>0 тогда
НайденнаяСтрока = РабочаяТаблица.Найти(2, "День");
Если НайденнаяСтрока = Неопределено Тогда
Иначе
ТекущаяСтрока.Выручка = ТекущаяСтрока.Выручка+НайденнаяСтрока.Продано;
КонецЕсли;
КонецЕсли;
Если ТекущаяСтрока.ПервыйЧасов3>0 тогда
НайденнаяСтрока = РабочаяТаблица.Найти(3, "День");
Если НайденнаяСтрока = Неопределено Тогда
Иначе
ТекущаяСтрока.Выручка = ТекущаяСтрока.Выручка+НайденнаяСтрока.Продано;
КонецЕсли;
КонецЕсли;
Если ТекущаяСтрока.ПервыйЧасов4>0 тогда
НайденнаяСтрока = РабочаяТаблица.Найти(4, "День");
Если НайденнаяСтрока = Неопределено Тогда
Иначе
ТекущаяСтрока.Выручка = ТекущаяСтрока.Выручка+НайденнаяСтрока.Продано;
КонецЕсли;
КонецЕсли;
Если ТекущаяСтрока.ПервыйЧасов5>0 тогда
НайденнаяСтрока = РабочаяТаблица.Найти(5, "День");
Если НайденнаяСтрока = Неопределено Тогда
Иначе
ТекущаяСтрока.Выручка = ТекущаяСтрока.Выручка+НайденнаяСтрока.Продано;
КонецЕсли;
КонецЕсли;
************************************************************ и так далее :)
Почти 300 строк говнокода превращаются в 10 :D
Для Инд = 1 По 31 Цикл
Если ТекущаяСтрока["ПервыйЧасов" + Инд] > 0 Тогда
ТекущаяСтрока.ИтогоЧасов = ТекущаяСтрока.ИтогоЧасов + ТекущаяСтрока["ПервыйЧасов" + Инд];
НайденнаяСтрока = РабочаяТаблица.Найти(Инд, "День");
Если НайденнаяСтрока <> Неопределено Тогда
ТекущаяСтрока.Выручка = ТекущаяСтрока.Выручка+НайденнаяСтрока.Пр одано;
КонецЕсли;
КонецЕсли;
КонецЦикла;
−154
Мое решение является эффективным и уникальным.
Решение задачи базируется на принципе двойственности.
В первом стеке будем хранить сами числа, а во втором - результат XOR над ними.
[] []
push a ->[a] [a]
push b -> [b a] [a^b a]
pop -> b^(a^b) = a [a] [a]
Однако после такого pop пропадает b.
Как с этим бороться я расскажу через 24 часа.
Задача о двух стеках. Поэтапное решение для повышения слюноотделения.
−154
Задача о двух стеках. Как продвигается решение?
Через 2 часа будет рабочий вариант.
−153
Итак, у вас есть два стека с ограничением на размер - N. Стеки поддерживают операции push, pop, top.
pop пустого стека, как и push заполненного стека вызывает соответствующее исключение.
Необходимо из этих двух стеков смоделировать стек с таким же размером, но с дополнительным свойством -\
push заполненного стека вызывает затирание последнего элемента стека, push(41,[1,2,3]) -> [41,1,2] ,\
где N=3.
Время пошло. Язык программирования любой.
Да, это не говнокод, но 90% кандидатов не могут ее решить. (Наверное, потому, что язык собеседования - 1С)
−155
Я подхожу к терминалу и включаю 1С.
Сегодня пояснять ничего не надо.
Не звенит "Поясните мысль"
В желтом пламени гори, ненавижу, 1С!
Накипело
−136
лев(документ.Дата,10) //получает строку даты в виде "15.09.2011" :)))))))
Сети предоставили свою печатную форму.
−136
Процедура ПриОткрытии()
Таймер();
ПодключитьОбработчикОжидания("Таймер",1);
КонецПроцедуры
Процедура Таймер()
Если ИспользоватьНапоминание Тогда
Если ТекущаяДата() = ВремяНапоминания Тогда
Предупреждение(ТекстНапоминания);
КонецЕсли;
КонецЕсли;
Если НачалоДня(ТекущаяДата()) + 13*60*60 > ТекущаяДата() Тогда
ЗаголовокДляУстановки = Формат(Дата('00010101') + (НачалоДня(ТекущаяДата()) + 13*60*60 - ТекущаяДата()), "ДФ=HH:mm:ss");
Если Прав(ЭтаФорма.Заголовок,1) <> "\" и Прав(ЭтаФорма.Заголовок,1) <> "|" и Прав(ЭтаФорма.Заголовок,1) <> "/" и Прав(ЭтаФорма.Заголовок,1) <> "-" тогда
ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " \";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "\" Тогда
ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " |";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "|" Тогда
ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " /";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "/" Тогда
ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " --";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "-" Тогда
ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " \";
КонецЕсли;
ИначеЕсли НачалоДня(ТекущаяДата()) + 14*60*60 > ТекущаяДата() тогда
Если Прав(ЭтаФорма.Заголовок,1) <> "\" и Прав(ЭтаФорма.Заголовок,1) <> "|" и Прав(ЭтаФорма.Заголовок,1) <> "/" и Прав(ЭтаФорма.Заголовок,1) <> "-" тогда
ЭтаФорма.Заголовок = "??:??:??" + " \";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "\" Тогда
ЭтаФорма.Заголовок = "??:??:??" + " |";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "|" Тогда
ЭтаФорма.Заголовок = "??:??:??" + " /";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "/" Тогда
ЭтаФорма.Заголовок = "??:??:??" + " --";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "-" Тогда
ЭтаФорма.Заголовок = "??:??:??" + " \";
КонецЕсли;
ИначеЕсли НачалоДня(ТекущаяДата()) + 18*60*60 > ТекущаяДата() Тогда
ЗаголовокДляУстановки = Формат(Дата('00010101') + (НачалоДня(ТекущаяДата()) + 18*60*60 - ТекущаяДата()), "ДФ=HH:mm:ss");
Если Прав(ЭтаФорма.Заголовок,1) <> "\" и Прав(ЭтаФорма.Заголовок,1) <> "|" и Прав(ЭтаФорма.Заголовок,1) <> "/" и Прав(ЭтаФорма.Заголовок,1) <> "-" тогда
ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " \";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "\" Тогда
ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " |";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "|" Тогда
ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " /";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "/" Тогда
ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " --";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "-" Тогда
ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " \";
КонецЕсли;
Иначе
Если Формат(ТекущаяДата(), "ДФ=dddd") = "пятница" тогда
Если Прав(ЭтаФорма.Заголовок,1) <> ")" тогда
ЭтаФорма.Заголовок = "С Пятницей!!! :)";
Иначе
ЭтаФорма.Заголовок = "С Пятницей!!! xD";
КонецЕсли;
Иначе
Если Прав(ЭтаФорма.Заголовок,1) <> "\" и Прав(ЭтаФорма.Заголовок,1) <> "|" и Прав(ЭтаФорма.Заголовок,1) <> "/" и Прав(ЭтаФорма.Заголовок,1) <> "-" тогда
ЭтаФорма.Заголовок = "ХХ.ХХ.ХХ" + " \";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "\" Тогда
ЭтаФорма.Заголовок = "ХХ.ХХ.ХХ" + " |";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "|" Тогда
ЭтаФорма.Заголовок = "ХХ.ХХ.ХХ" + " /";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "/" Тогда
ЭтаФорма.Заголовок = "ХХ.ХХ.ХХ" + " --";
ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "-" Тогда
ЭтаФорма.Заголовок = "ХХ.ХХ.ХХ" + " \";
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Текст процедуры обработчика ожидания обработки, показывающей время до обеда и до окончания рабочего дня.
−154
Лично я 1С не люблю. И вообще лучше не говорить об этом, настроение портится...
Цикл ВЦикле Открывающая_Скобка От Ноль до Двадцать_Один Закрывающая_Скобка
Начало_цикла
Печать Кавычка Один С - Обратный_Слеш Кавычка Говно Обратный_Слеш Кавычка Кавычка Точка_С_Запятой
Конец_цикла
Конечно это фантазия, но представьте что случилос бы, если бы 1С писали люди, \
которые не смогли осилить не только английский язык, но и цифры и знаки пунктуации.
К тому же бухгалтерия предлагает отвратительнейшие задачи, которые предлагается решать на отвратительнейшем языке.
Бюрократический ад пишется на бюрократическом языке. Зачем английский язык, если есть русский?
Помоему это какая-то особая программа по порабощению русского народа. Русские дети хотели стать космонавтами,\
а их осадили прямо в кресло с мерцающим монитором и программой такой бюрократически-желтой иконкой.
Боже упаси вас от продукции этой компании!
−140
//делает паузу с округлением до целого числа секунд - 1000, 2000 и т.д.
//Использует ВводСтроки с таймаутом, который работает даже если окно теряет фокус ввода.
Процедура Sleep(Таймаут)
Предупреждение("Таймаут " + Строка(Таймаут) + " секунд", Таймаут, "Sleep");
ОбработкаПрерыванияПользователя();
КонецПроцедуры
Процедура КнопкаВыполнитьНажатие(Кнопка)
Если НЕ ВремяНачалаВыполнения = Дата(1,1,1) Тогда
Пока Истина = Истина Цикл
ОбработкаПрерыванияПользователя();
Sleep(45); //Шаг 45 секунд.
Если Час(ТекущаяДата()) = Час(ВремяНачалаВыполнения) И Минута(ТекущаяДата()) >= Минута(ВремяНачалаВыполнения) Тогда
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
//Далее идет обработка перепроведения документов
КонецПроцедуры
Интересная версия выполнить процедуру по времени