- 1
- 2
- 3
- 4
- 5
Процедура ПриОткрытии()
Если РольДоступна("ЗапретНаИспользованиеОбработкиПоискИЗаменаДублирующихсяЭлементов") Тогда
ЭтаФорма.Закрыть();
КонецЕсли;
КонецПроцедуры
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−158
Процедура ПриОткрытии()
Если РольДоступна("ЗапретНаИспользованиеОбработкиПоискИЗаменаДублирующихсяЭлементов") Тогда
ЭтаФорма.Закрыть();
КонецЕсли;
КонецПроцедуры
Забрал у пользователя права на использование поиска и замены дублирующихся элементов.
Зато быстро...
−137
Если НЕ ЗаполненНаОснованииДокумента Тогда
ИнициализироватьУсловияПродаж();
КонецЕсли;
ИнициализироватьУсловияПродаж();
Чтоб наверняка.
Типовая УТ 11.1.10.94, документ РеализацияТоваровУслуг, модуль объекта, стр.819-822
−159
Запрос = Новый Запрос();
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ
| Проекты.Ссылка КАК Проект, Проекты.Менеджер КАК Менеджер, Проекты.СтатусПроекта, Проекты.ТипПроекта, Проекты.ВидПродукции,
| Проекты.ДатаТретейПодписи, Проекты.ДатаНачалаСтадии, Проекты.РасчетнаяДатаОкончанияСтадии, Проекты.Приоритет
|ИЗ Справочник.Проекты КАК Проекты
|ГДЕ (Проекты.ДатаОтправкиТЗ >= &НачДата И Проекты.ДатаОтправкиТЗ <= &КонДата ИЛИ Проекты.ДатаОтправкиТЗ = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
| И (&ВыбМенеджер = ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) ИЛИ Проекты.Менеджер = &ВыбМенеджер)
| И (&ВыбСтатусПроекта = ЗНАЧЕНИЕ(Перечисление.Статусы.ПустаяСсылка) ИЛИ Проекты.СтатусПроекта = &ВыбСтатусПроекта)
| И Проекты.ПометкаУдаления = &ЗначПометкиНаУдаление";
Запрос.УстановитьПараметр("НачДата",НачДата);
Запрос.УстановитьПараметр("КонДата",КонДата);
Запрос.УстановитьПараметр("ВыбМенеджер",ВыбМенеджер);
Запрос.УстановитьПараметр("ВыбСтатусПроекта",ВыбСтатусПроекта);
Запрос.УстановитьПараметр("ЗначПометкиНаУдаление",ложь);
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Менеджер");
ТЗ.Колонки.Добавить("Проект");
ТЗ.Колонки.Добавить("ТипПроекта");
ТЗ.Колонки.Добавить("ВидПродукции");
ТЗ.Колонки.Добавить("ДатаТретейПодписи");
ТЗ.Колонки.Добавить("ДатаНачалаСтадии");
ТЗ.Колонки.Добавить("РасчетнаяДатаОкончанияСтадии");
ТЗ.Колонки.Добавить("ПлановаяДатаОтправкиТЗ");
ТЗ.Колонки.Добавить("Статус"); //Статус проекта
ТЗ.Колонки.Добавить("Приоритет"); //Статус проекта
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если (ВыборкаДетальныеЗаписи.СтатусПроекта = Перечисления.Статусы.Выполнено) Тогда
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.РасчетнаяДатаОкончанияПроекта) = Ложь Тогда
Продолжить;
КонецЕсли;
Если СокрЛП(ВыборкаДетальныеЗаписи.ДатаОтправкиТЗ) = "01.01.0001 0:00:00" Тогда
если (ВыборкаДетальныеЗаписи.РасчетнаяДатаОкончанияПроекта-60*60*24*45 >= НачДата) и (ВыборкаДетальныеЗаписи.РасчетнаяДатаОкончанияПроекта-60*60*24*45<= КонДата) Тогда
Иначе
продолжить;
КонецЕсли;
КонецЕсли;
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Проект = ВыборкаДетальныеЗаписи.Проект;
НоваяСтрока.Менеджер = ВыборкаДетальныеЗаписи.Менеджер;
НоваяСтрока.ВидПродукции = ВыборкаДетальныеЗаписи.ВидПродукции;
НоваяСтрока.ТипПроекта = ВыборкаДетальныеЗаписи.ТипПроекта;
НоваяСтрока.ДатаТретейПодписи = ВыборкаДетальныеЗаписи.ДатаТретейПодписи;
НоваяСтрока.РасчетнаяДатаОкончанияСтадии = ВыборкаДетальныеЗаписи.РасчетнаяДатаОкончанияСтадии;
НоваяСтрока.ДатаНачалаСтадии = ВыборкаДетальныеЗаписи.ДатаНачалаСтадии;
НоваяСтрока.Статус = ВыборкаДетальныеЗаписи.СтатусПроекта;
НоваяСтрока.ПлановаяДатаОтправкиТЗ = ВыборкаДетальныеЗаписи.РасчетнаяДатаОкончанияПроекта-60*60*24*45;//-45 дней
НоваяСтрока.Приоритет = ВыборкаДетальныеЗаписи.Приоритет;
КонецЦикла;
тз.Сортировать("Менеджер,ТипПроекта возр, Приоритет Убыв,Проект");
РФ = РеквизитФормыВЗначение("Отчет");
Макет = РФ.ПолучитьМакет("ПечатьПроектов");
ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
ОбластьСтроки = Макет.ПолучитьОбласть("Строка");
ОбластьТипаПроекта = Макет.ПолучитьОбласть("ТипПроекта");
ОблатстьОтложенныхПроектов = Макет.ПолучитьОбласть("Отложенные");
ОбластьМенеджеры = Макет.ПолучитьОбласть("МЕНЕДЖЕР");
ТабДок = Новый ТабличныйДокумент;
ТабДок.Очистить();
ТабДок.Вывести(ОбластьШапки);
Если тз.Количество()>0 Тогда
ТекущийТипПроекта = 0; ТекущийМенеджер = 0; пн = 0;
Для Каждого ТекущаяСтрока Из тз Цикл
Если ТекущаяСтрока.Статус = Перечисления.Статусы.Отложено Тогда
продолжить;
КонецЕсли;
Если (ТекущийМенеджер = 0) или (ТекущийМенеджер <> ТекущаяСтрока.Менеджер) Тогда
ТекущийМенеджер = ТекущаяСтрока.Менеджер;
ОбластьМенеджеры.Параметры.тМенеджер = ТекущийМенеджер;
ТабДок.Вывести(ОбластьМенеджеры);
КонецЕсли;
Если (ТекущийТипПроекта = 0) или (ТекущийТипПроекта <> ТекущаяСтрока.ТипПроекта) Тогда
ТекущийТипПроекта = ТекущаяСтрока.ТипПроекта;
ОбластьТипаПроекта.Параметры.тТипПроекта = ТекущийТипПроекта;
ТабДок.Вывести(ОбластьТипаПроекта);
КонецЕсли;
пн = пн + 1;
ОбластьСтроки.Параметры.ПН = пн;
ОбластьСтроки.Параметры.тПроектАртикул = СокрЛП(ТекущаяСтрока.ВидПродукции) + Символы.ПС + СокрЛП(ТекущаяСтрока.проект.Наименование);
ОбластьСтроки.Параметры.тПроектРасшифровка = ТекущаяСтрока.проект;
ОбластьСтроки.Параметры.тПлановаяДатаОтправкиТЗ = формат(ТекущаяСтрока.ПлановаяДатаОтправкиТЗ,"ДФ=dd.MM.yyyy");//-45 дней от расчетной даты окончания
ОбластьСтроки.Параметры.тДатаТретейПодписи = СокрЛП(Формат(ТекущаяСтрока.ДатаТретейПодписи,"ДФ=dd.MM.yyyy"));
ТабДок.Вывести(ОбластьСтроки);
КонецЦикла;
Попытка
ТабДок.Области.Строка.АвтоВысотаСтроки = Истина;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ПолеСправа = 0;
ТабДок.ПолеСлева = 0;
ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(1,,2,);
ТабДок.ФиксацияСверху = 2;
Исключение
КонецПопытки;
КонецЕсли;
ТД = ТабДок;
ТД.Напечатать();
Серверная процедура в 8.2. Автор - "семёрочник-многостаночник". Переписываю и рыдаю...
Ужимал как мог, чтобы вместилось.
−82
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если НЕ ВвестиСтроку(Комментарий, "Укажите комментарий к запрещению: ", 255) Тогда
ОбщегоНазначения.СообщитьОбОшибке("Не указан комментарий к запрещению!", Отказ, Заголовок);
Форма = ЭтотОбъект.ПолучитьФорму("ФормаДокумента");
Если Форма.Открыта() Тогда
Форма.Закрыть();
КонецЕсли;
Возврат;
КонецЕсли;
Если СтрДлина(Комментарий) < 11 Тогда
ОбщегоНазначения.СообщитьОбОшибке("Комментарий слишком короткий!", Отказ, Заголовок);
Возврат;
КонецЕсли;
КонецПроцедуры
И пусть транзакция подождет. Дорогой, у тебя слишком короткий комментарий.
−96
Если ДеревоXML.Строки[0].Строки[0].ЗначениеXMLЭлементаДанных = "0" Тогда
СтатусДоставки="0";
ИначеЕсли ДеревоXML.Строки[0].Строки[0].ЗначениеXMLЭлементаДанных = "1" Тогда
СтатусДоставки="1";
ИначеЕсли ДеревоXML.Строки[0].Строки[0].ЗначениеXMLЭлементаДанных = "2" Тогда
СтатусДоставки="2";
ИначеЕсли ДеревоXML.Строки[0].Строки[0].ЗначениеXMLЭлементаДанных = "3" Тогда
ДопЗначение=ДеревоXML.Строки[0].Строки[1].ЗначениеXMLЭлементаДанных;
СтатусДоставки="3"+ДопЗначение;
ИначеЕсли ДеревоXML.Строки[0].Строки[0].ЗначениеXMLЭлементаДанных = "4" Тогда
СтатусДоставки="4";
КонецЕсли;
−121
КодТек = Каст(ID);
Возвр = "{";
ТекПользоваетель Контрагенты.НайтиПоКоду(КодТек);
Если ТекПользователь = Контрагенты.ПустаяСсылка тогда
возврат 1;//Пользователь не найден
конецЕсли;
ТекЛев = Контрагенты.НайтиПоКоду(ТекПользователь.ЛеваяНога);
Если не ТекЛев = Контрагенты.ПустаяСсылка тогда
Возвр=Возвр+"""cur_left"":{"+
"""id"":"""+ТекЛев.ID+""","+
"""last_name"":"""+ТекЛев.Фамилия+""","+
"""first_name"":"""+ТекЛев.Имя+""","+
"""middle_name"":"""+ТекЛев.Отчество+"""},";
ТекЛевЛев = Контрагенты.НайтиПоКоду(ТекЛев.ЛеваяНога);
Если не ТекЛевЛев = Контрагенты.ПустаяСсылка тогда
Возвр=Возвр+"""cur_left_left"":{"+
"""id"":"""+ТекЛевЛев.ID+""","+
"""last_name"":"""+ТекЛевЛев.Фамилия+""","+
"""first_name"":"""+ТекЛевЛев.Имя+""","+
"""middle_name"":"""+ТекЛевЛев.Отчество+"""},";
конецЕсли;
ТекЛевПрв = Контрагенты.НайтиПоКоду(ТекЛев.ПраваяНога);
Если не ТекЛевПрв = Контрагенты.ПустаяСсылка тогда
Возвр=Возвр+"""cur_left_right"":{"+
"""id"":"""+ТекЛевПрв.ID+""","+
"""last_name"":"""+ТекЛевПрв.Фамилия+""","+
"""first_name"":"""+ТекЛевПрв.Имя+""","+
"""middle_name"":"""+ТекЛевПрв.Отчество+"""},";
конецЕсли;
конецЕсли;
ТекПрв = Контрагенты.НайтиПоКоду(ТекПользователь.ПраваяНога);
Если не ТекПрв = Контрагенты.ПустаяСсылка тогда
Возвр=Возвр+"""cur_right"":{"+
"""id"":"""+ТекПрв.ID+""","+
"""last_name"":"""+ТекПрв.Фамилия+""","+
"""first_name"":"""+ТекПрв.Имя+""","+
"""middle_name"":"""+ТекПрв.Отчество+"""},";
ТекПрвЛев = Контрагенты.НайтиПоКоду(ТекПрв.ЛеваяНога);
Если не ТекПрвЛев = Контрагенты.ПустаяСсылка тогда
Возвр=Возвр+"""cur_right_left"":{"+
"""id"":"""+ТекПрвЛев.ID+""","+
"""last_name"":"""+ТекПрвЛев.Фамилия+""","+
"""first_name"":"""+ТекПрвЛев.Имя+""","+
"""middle_name"":"""+ТекПрвЛев.Отчество+"""},";
конецЕсли;
ТекПрвПрв = Контрагенты.НайтиПоКоду(ТекПрв.ПраваяНога);
Если не ТекПрвПрв = Контрагенты.ПустаяСсылка тогда
Возвр=Возвр+"""cur_right_right"":{"+
"""id"":"""+ТекПрвПрв.ID+""","+
"""last_name"":"""+ТекПрвПрв.Фамилия+""","+
"""first_name"":"""+ТекПрвПрв.Имя+""","+
"""middle_name"":"""+ТекПрвПрв.Отчество+"""},";
конецЕсли;
конецЕсли;
ДлСтр = ДлинаСтроки(Возвр);
Если ДлСтр=1 тогда
возврат 2;//Ноги пусты
иначе
Возрв = Лев(Возвр, ДлСтр-1)+"}";
возврат Возвр;
конецЕсли;
1С - хорошая среда. В этой среде очень просто и весело писать говнокод, причем с вполне серьезной мордой.
−125
ТекущийПользователь = Справочники.Контрагенты.НайтиПоКоду(НовыйПользователь.Спонсор); //Выдергиваем указанного спонсора чтобы запихать ему в ногу
Курсор = ТекущийПользователь.НастройкаКурсорНоги;//Определяет в какую ногу будут попадать новые рефералы
Итератор = 0;
Пока Истина цикл
Спонсор = ТекущийПользователь;//Небольшой финт
Если Итератор = 0 тогда
Если Курсор = "Левая" тогда
ТекущийПользователь = Справочники.Контрагенты.НайтиПоКоду(ТекущийПользователь.ЛеваяНога);
Иначе
ТекущийПользователь = Справочники.Контрагенты.НайтиПоКоду(ТекущийПользователь.ПраваяНога);
КонецЕсли;
Иначе
ТекущийПользователь = Справочники.Контрагенты.НайтиПоКоду(ТекущийПользователь.ПраваяНога); //Всех в "Правую ногу"
КонецЕсли;
Если ТекущийПользователь = Справочники.Контрагенты.ПустаяСсылка тогда
Если Итератор = 0 тогда
Если Курсор = "Левая" тогда
Спонсор.ЛеваяНога = ТекущийПользователь;
Иначе
Спонсор.ПраваяНога = ТекущийПользователь;
КонецЕсли;
Иначе
Спонсор.ПраваяНога = ТекущийПользователь;
КонецЕсли;
Прервать;//Успешное завершение
КонецЕсли;
КонецЦикла;
−119
{""code"":"""+Строка(Результат.ID)+""","+
"""gender"":"""+Результат.Пол+""","+
"""dob"":"""+Результат.ДатаРождения+""","+
"""passport"":"""+Результат.ПаспортныеДанные+""","+
"""address"":"""+Результат.Адрес+""","+
"""phone"":"""+Результат.Телефон+""","+
"""skype"":"""+Результат.Skype+""","+
"""email"":"""+Результат.Email+""","+
"""last_name"":"""+Фамилия+""","+
"""first_name"":"""+Имя+""","+
"""middle_name"":"""+Отчество+""","+
"""ref_first_name"":"""+ИмяСпонсора+""","+
"""ref_last_name"":"""+ФамилияСпонсора+""","+
"""ref_middle_name"":"""+ОтчествоСпонсора+""","+
"""ref_id"":"""+Строка(Результат.РефералID)+""","+
"""money"":"""+СтрЗаменить(Строка(Результат.БалансРуб),",",".")+
""","+"""balls"":"""+СтрЗаменить(Строка(Результат.БалансБалл),",",".")+""","+
"""pack"":"""+Результат.Пакет+""","+
"""password"":"""+Результат.Пароль+""""+"}";
"Простая библиотека для кодирования JSON"
−119
функция КрасиваяДата ( Дата )
Стр = "";
Д = День (Дата);
М = Месяц (Дата);
Г = Год (Дата);
Если М = 1 тогда
мес = "января";
ИначеЕсли М = 2 тогда
мес = "февраля";
ИначеЕсли М = 3 Тогда
мес = "марта";
ИначеЕсли М = 4 Тогда
мес = "апреля";
ИначеЕсли М = 5 Тогда
мес = "майя";
ИначеЕсли М = 6 Тогда
мес = "июня";
ИначеЕсли М = 7 Тогда
мес = "июля";
ИначеЕсли М = 8 Тогда
мес = "августа" ;
ИначеЕсли М = 9 Тогда
мес = "сентебря";
ИначеЕсли М = 10 Тогда
мес = "октебря";
ИначеЕсли М =11 Тогда
мес = "ноября";
ИначеЕсли М =12 Тогда
мес = "декобря";
КонецЕсли;
КДата = Строка (Д) + " " + мес + " " + Строка(Г) + " г.";
Возврат КДата;
КонецФункции
Встретил сегодня такую конструкцию в отчете. Орфография передана без изменения
−119
РасходныйКассовыйОрдер ГДЕ (НЕ РасходныйКассовыйОрдер.ВидОперации В
(ВЫБРАТЬ
ВидыОперацийРКО.Ссылка
ИЗ
Перечисление.ВидыОперацийРКО КАК ВидыОперацийРКО
ГДЕ
ВидыОперацийРКО.Ссылка = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРКО.ВыплатаЗаработнойПлатыРаботнику)))
Обнаружил вот это чудо в ограничении почти всех ролей на ЧТЕНИЕ.
Древняя УПП 1.2 сильно допиленная.
Теперь сижу и горюю о том, сколько времени придётся потратить удаляя это из всех ролей...