- 1
- 2
- 3
- 4
- 5
Для й = 1 По КонДата-НачДата+1 Цикл
ТекДата = НачДата+й-1;
ДокТ.ВыбратьДокументы(ТекДата, ТекДата);
Пока ДокТ.ПолучитьДокумент() = 1 Цикл
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−119.4
Для й = 1 По КонДата-НачДата+1 Цикл
ТекДата = НачДата+й-1;
ДокТ.ВыбратьДокументы(ТекДата, ТекДата);
Пока ДокТ.ПолучитьДокумент() = 1 Цикл
Копаясь в самописной конфе, с которой сейчас работаю, дописываю, и усердно исправляю чей-то быдлокод, временами нахожу просто уникальные творения.
Пожалуй это творение - вершина извращенной фантазии)
Думаю комментарии излишни)) автор перебирает дни, а потом отдельно по каждому дню делает выборку событий
−133.2
ТаблицаДоговоров = ДоговораМенеджера.Выгрузить();
ТаблицаДоговоров.Свернуть("Договор");
ЗапросПоДоговорам = новый Запрос;
ЗапросПоДоговорам.УстановитьПараметр("НаДату", Дата);
ЗапросПоДоговорам.УстановитьПараметр("СписокДоговоров", ТаблицаДоговоров.ВыгрузитьКолонку("Договор"));
ЗапросПоДоговорам.Текст =
"ВЫБРАТЬ
| ОтветственныеПоДоговорамСрезПоследних.Договор,
| ОтветственныеПоДоговорамСрезПоследних.Приложение,
| ОтветственныеПоДоговорамСрезПоследних.ВидОтветственного,
| ОтветственныеПоДоговорамСрезПоследних.Ответственный,
| СтатусыДоговоровСрезПоследних.Статус,
| ПриложенияДоговоровСрезПоследних.КонецПриложения
|ИЗ
| РегистрСведений.ОтветственныеПоДоговорам.СрезПоследних(&НаДату, Договор В (&СписокДоговоров)) КАК ОтветственныеПоДоговорамСрезПоследних
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДоговоров.СрезПоследних(&НаДату, Договор В (&СписокДоговоров)) КАК СтатусыДоговоровСрезПоследних
| ПО ОтветственныеПоДоговорамСрезПоследних.Договор = СтатусыДоговоровСрезПоследних.Договор
| И ОтветственныеПоДоговорамСрезПоследних.Приложение = СтатусыДоговоровСрезПоследних.Приложение
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПриложенияДоговоров.СрезПоследних КАК ПриложенияДоговоровСрезПоследних
| ПО ОтветственныеПоДоговорамСрезПоследних.Договор = ПриложенияДоговоровСрезПоследних.Договор
| И ОтветственныеПоДоговорамСрезПоследних.Приложение = ПриложенияДоговоровСрезПоследних.Приложение";
ТаблицаДоговоровИСтатусов = ЗапросПоДоговорам.Выполнить().Выгрузить();
так вот пишет наш ведущий программист. Зачем сворачивать???
−131.6
ТаблицаДоговоров = ДоговораМенеджера.Выгрузить();
ТаблицаДоговоров.Свернуть("Договор");
ЗапросПоДоговорам = новый Запрос;
ЗапросПоДоговорам.УстановитьПараметр("НаДату", Дата);
ЗапросПоДоговорам.УстановитьПараметр("СписокДоговоров", ТаблицаДоговоров.ВыгрузитьКолонку("Договор"));
ЗапросПоДоговорам.Текст = "ВЫБРАТЬ
| ОтветственныеПоДоговорамСрезПоследних.Договор,
| ОтветственныеПоДоговорамСрезПоследних.Приложение,
| ОтветственныеПоДоговорамСрезПоследних.ВидОтветственного,
| ОтветственныеПоДоговорамСрезПоследних.Ответственный,
| СтатусыДоговоровСрезПоследних.Статус,
| ПриложенияДоговоровСрезПоследних.КонецПриложения
|ИЗ
| РегистрСведений.ОтветственныеПоДоговорам.СрезПоследних(&НаДату, Договор В (&СписокДоговоров)) КАК ОтветственныеПоДоговорамСрезПоследних
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДоговоров.СрезПоследних(&НаДату, Договор В (&СписокДоговоров)) КАК СтатусыДоговоровСрезПоследних
| ПО ОтветственныеПоДоговорамСрезПоследних.Договор = СтатусыДоговоровСрезПоследних.Договор
| И ОтветственныеПоДоговорамСрезПоследних.Приложение = СтатусыДоговоровСрезПоследних.Приложение
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПриложенияДоговоров.СрезПоследних КАК ПриложенияДоговоровСрезПоследних
| ПО ОтветственныеПоДоговорамСрезПоследних.Договор = ПриложенияДоговоровСрезПоследних.Договор
| И ОтветственныеПоДоговорамСрезПоследних.Приложение = ПриложенияДоговоровСрезПоследних.Приложение";
ТаблицаДоговоровИСтатусов = ЗапросПоДоговорам.Выполнить().Выгрузить();
так вот пишет наш ведущий программист. Зачем сворачивать???
−369.1
Процедура СформироватьТаблицуГрафика()
//Заполнение месяцев
Для НомерМесяца = 1 По 12 Цикл
НомерГода = Число(Прав(Год(ТекущаяДата()), 1));
ДатаМесяца = Дата(НомерГода, НомерМесяца, 1);
ДнейВМесяце = День(КонецМесяца(ДатаМесяца));
НоваяСтрока = КалендарьНаборЗаписей.Добавить();
НазваниеМесяца = Формат(ДатаМесяца, "ДФ=""ММММ""");
НоваяСтрока.Установить(0, НазваниеМесяца);
НоваяСтрока.НомерМесяца = НомерМесяца;
КонецЦикла;
КонецПроцедуры
Помимо дикости написанного, эта штука не работает в 2010 году.
Зарплата и Управление Персоналом 2.5.18.3
−125.8
Сумма = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(
СуммаВал,
ВалютаДокумента,
ВалютаВзаиморасчетов,
МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаДокумента,Дата).Курс,
МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаВзаиморасчетов,Дата).Курс,
МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаДокумента,Дата).Кратность,
МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаВзаиморасчетов,Дата).Кратность);
Решение имеет статус 1С:Совместно.
Один из ведущих партнеров 1С.
Такой код во многих местах.
−126.4
НСтрока = ДокументОбъект.Товары.Добавить();
НСтрока.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт",,,НСтрока.Номенклатура);
−108.4
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ОтраженоВОперУчете = Истина;
ОтражатьВБухгалтерскомУчете = Истина;
ОтражатьВНалоговомУчете = Истина;
Если НЕ ДокументОснование = Неопределено Тогда
ЭлементыФормы.Проект.Значение = ДокументОснование.Проект;
КонецЕсли;
КонецПроцедуры // ПередОткрытием()
Автор хотел что бы все документы обязательно проводились по БУ УУ и НУ... И хотел что бы при вводе на основании заполнялось поле проект. Ну почти получилось:))))
−126.5
ТаблПоле.Очистить();
Если (ТаблПоле.Количество() > 0) Тогда
Возврат;
КонецЕсли;
А вдруг после очистки таблицы значений там всё-таки остались строки?
−117.1
ТекВрем = Час(ТекущаяДата())*60+Минута(ТекущаяДата());
ВремКурсов = 60;
Если ТекВрем >= ВремКурсов Тогда
ВремКурсов = ВремКурсов + 24*60 - ТекВрем;
Иначе
ВремКурсов = ВремКурсов - ТекВрем;
КонецЕсли;
ВремКурсов = 1;
ПодключитьОбработчикОжидания("ЗагрузкаВалютИПересчетУЕ", ВремКурсов*60);
Вычисляем ВремКурсов, а затем присваиваем этой переменной единицу и умножаем на 60. Рациональность, чорт побери! :-D
−114.9
запрос = новый запрос("ВЫБРАТЬ
| ЗаказыПокупателейОбороты.ЗаказПокупателя,
| ЗаказыПокупателейОбороты.Номенклатура,
| СУММА(ЗаказыПокупателейОбороты.КоличествоПриход) КАК КоличествоВЗаказе,
| СУММА(ВложенныйЗапрос.ОстатокПоЗаказу) КАК ОстатокПоЗаказу,
| СУММА(ВложенныйЗапрос.ОстатокВРезерве) КАК ОстатокВРезерве
|ИЗ
| РегистрНакопления.ЗаказыПокупателей.Обороты(, , , ) КАК ЗаказыПокупателейОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ЗаказыПокупателейОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
| ЗаказыПокупателейОстатки.Номенклатура КАК Номенклатура,
| СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток) КАК ОстатокПоЗаказу,
| СУММА(0) КАК ОстатокВРезерве
| ИЗ
| РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки
| ГДЕ
| ЗаказыПокупателейОстатки.ЗаказПокупателя = &Заказ
|
| СГРУППИРОВАТЬ ПО
| ЗаказыПокупателейОстатки.ЗаказПокупателя,
| ЗаказыПокупателейОстатки.Номенклатура
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТоварыВРезервеНаСкладахОстатки.ДокументРезерва,
| ТоварыВРезервеНаСкладахОстатки.Номенклатура,
| СУММА(0),
| СУММА(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток)
| ИЗ
| РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
| ГДЕ
| ТоварыВРезервеНаСкладахОстатки.ДокументРезерва = &Заказ
|
| СГРУППИРОВАТЬ ПО
| ТоварыВРезервеНаСкладахОстатки.Номенклатура,
| ТоварыВРезервеНаСкладахОстатки.ДокументРезерва) КАК ВложенныйЗапрос
| ПО ЗаказыПокупателейОбороты.ЗаказПокупателя = ВложенныйЗапрос.ЗаказПокупателя
| И ЗаказыПокупателейОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура
|ГДЕ
| ЗаказыПокупателейОбороты.ЗаказПокупателя = &Заказ
|
|СГРУППИРОВАТЬ ПО
| ЗаказыПокупателейОбороты.ЗаказПокупателя,
| ЗаказыПокупателейОбороты.Номенклатура");
запрос.УстановитьПараметр("Заказ",заказ);
Результат = Запрос.Выполнить();
тРезервы.Очистить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
НоваяСтрока = тРезервы.Добавить();
НоваяСтрока.Номенклатура = Выборка.Номенклатура;
НоваяСтрока.КоличествоВЗаказе = Выборка.КоличествоВЗаказе;
НоваяСтрока.ОстатокВРезерве = Выборка.ОстатокВРезерве;
НоваяСтрока.ОстатокКОтгрузке = Выборка.ОстатокПоЗаказу;
КонецЦикла;
КонецЕсли;
Заполнение таблицы значений, очень быстро работает)))
КоличествоВЗаказе в 2 раза больше получается