- 1
Приведите реальный пример программы на 1С
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−3
Приведите реальный пример программы на 1С
Вот прямо типичный пример задачи, где я должен взять именно 1С.
+1
Функция ДобавитьКДатеМесяц(НачальнаяДата, Количество)
РезультатФункции = Дата("00010101");
ЗапросПериода = Новый Запрос;
ЗапросПериода.УстановитьПараметр("ДатаНачала", НачальнаяДата);
ЗапросПериода.УстановитьПараметр("Количество", Количество);
ЗапросПериода.Текст =
"ВЫБРАТЬ
| ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, &Количество) КАК ДатаСмещения
|";
РезультатЗапросПериода = ЗапросПериода.Выполнить().Выбрать();
Если РезультатЗапросПериода.Следующий() Тогда
РезультатФункции = РезультатЗапросПериода.ДатаСмещения;
КонецЕсли;
Возврат РезультатФункции;
КонецФункции
+1
Функция УбратьПробел(стрЧисло)
//убирает пустой пробел
нСтр = "";
Для п=1 По СтрДлина(стрЧисло) Цикл
р = Сред(стрЧисло,п,1);
Если р = "1" ИЛИ р = "2" ИЛИ р = "3" ИЛИ р = "4" ИЛИ р = "5" ИЛИ р = "6" ИЛИ р = "7" ИЛИ р = "8" ИЛИ р = "9" ИЛИ р = "0" ИЛИ р = "," Тогда
нСтр = нСтр+р;
КонецЕсли;
КонецЦикла;
Возврат нСтр;
КонецФункции
Senior
0
Выборка = Запрос.Выполнить.Выбрать();
Пока Выборка.Следующий() цикл
Петух = Выборка.Хуй;
Прервать;
конеццикла;
классика
−1
ВЫБОР КОГДА ПОДСТРОКА(Поле, 1, 1) <> ""-"" ТОГДА
ПОДСТРОКА(Поле, 1, 1)
ИНАЧЕ """"
КОНЕЦ
+
ВЫБОР КОГДА ПОДСТРОКА(Поле, 2, 1) <> ""-"" ТОГДА
ПОДСТРОКА(Поле, 2, 1)
ИНАЧЕ """"
КОНЕЦ
+
...
+
ВЫБОР КОГДА ПОДСТРОКА(Поле, 100, 1) <> ""-"" ТОГДА
ПОДСТРОКА(Поле, 100, 1)
ИНАЧЕ """"
КОНЕЦ
Реализация СтрЗаменить() в запросе
0
Если ПараметрыСеанса.ГС_ГлобальныеПараметры.МинусОдинДеньПриПерезалоге
И ДокументОснование.Метаданные().Имя <> "Соби_ЧастичноеПогашениеКредита" И ДокументОснование.Метаданные().Имя <> "ГС_ПерезалогКредита" Тогда
ПроцентПоКредитуВДень = (ПроцентПоКредитуВДень) / КоличествоДнейКредитования * (КоличествоДнейКредитования-1);
СуммаПоКредиту = Окр((СуммаКредита*(ПроцентПоКредитуВДень)/100),2,1) * (КоличествоДнейКредитования);
Если ПроцентПоКредитуВДень < УсловиеКредитования.МинимальныйПроцентПоКредиту/(КоличествоДнейКредитования-1) Тогда
ПроцентПоКредитуВДень = УсловиеКредитования.МинимальныйПроцентПоКредиту/(КоличествоДнейКредитования-1);
СуммаПоКредиту = Окр((СуммаКредита*(ПроцентПоКредитуВДень)/100),2,1) * (КоличествоДнейКредитования-1);
КонецЕсли;
Если СуммаПоКредиту < УсловиеКредитования.МинимальнаяСуммаПроцентовПоКредиту Тогда //отыграем мин сумму % по кредиту из усл кред
СуммаПоКредиту = УсловиеКредитования.МинимальнаяСуммаПроцентовПоКредиту;
КонецЕсли;
КонецЕсли;
Обратите внимание на условие ЕСЛИ. Такого говнища, я еще не видел!
+1
//Создадим типизированные колонки в ТЗ
Запрос = Новый Запрос("ВЫБРАТЬ
| CRM_ЗначенияРеквизитовТрафика.РеквизитТрафика КАК РеквизитТрафика,
| CRM_ЗначенияРеквизитовТрафика.ЗначениеРеквизита КАК ЗначениеРеквизита,
| CRM_ЗначенияРеквизитовТрафика.ИдентификаторТрафика
|ИЗ
| РегистрСведений.CRM_ЗначенияРеквизитовТрафика КАК CRM_ЗначенияРеквизитовТрафика
|ГДЕ
| CRM_ЗначенияРеквизитовТрафика.ИдентификаторТрафика ЕСТЬ NULL");
РеквизитыТрафика = Запрос.Выполнить().Выгрузить();
//Удалим "лишние записи" на всякий случай
РеквизитыТрафика.Очистить();
//Заполним реквизиты трафика
//Логин клиента из онлайнконсультанта
НовоеСвойство = РеквизитыТрафика.Добавить();
НовоеСвойство.ИдентификаторТрафика = Идентификатор;
НовоеСвойство.РеквизитТрафика = ПланыВидовХарактеристик.CRM_РеквизитыТрафика.ОнлайнКонсультантЛогинКлиента;
НовоеСвойство.ЗначениеРеквизита = Описание.ЛогинКлиента;
//Запись в регистр
НЗ = РегистрыСведений.CRM_ЗначенияРеквизитовТрафика.СоздатьНаборЗаписей();
НЗ.Отбор.ИдентификаторТрафика.Установить(Идентификатор);
НЗ.Прочитать();
НЗ.Загрузить(РеквизитыТрафика);
Нз.Записать();
Зачем столько раз читать регистр не понятно. Для чего вообще нужна типизированная таблица если используется прочитать? Одни вопросы.
0
<КоммерческаяИнформация ВерсияСхемы="2.03" ДатаФормирования="2016-08-11">
<ПакетПредложений>
<Ид>0f6acf08-0501-11e5-a1ed-000ea6f880f2#</Ид>
<Наименование>Пакет предложений</Наименование>
<ИдКаталога>0f6acf08-0501-11e5-a1ed-000ea6f880f2</ИдКаталога>
<ИдКлассификатора>0f6acf08-0501-11e5-a1ed-000ea6f880f2</ИдКлассификатора>
<ТипыЦен>
<ТипЦены>
<Ид>0f6acf0e-0501-11e5-a1ed-000ea6f880f2</Ид>
<Наименование>Rozn</Наименование>
<Валюта>UAH</Валюта>
<Налог>
<Наименование>НДС</Наименование>
<УчтеноВСумме>false</УчтеноВСумме>
</Налог>
</ТипЦены>
<ТипЦены>
<Ид>0f6acf0d-0501-11e5-a1ed-000ea6f880f2</Ид>
<Наименование>Zakup</Наименование>
<Валюта>UAH</Валюта>
<Налог>
<Наименование>НДС</Наименование>
<УчтеноВСумме>false</УчтеноВСумме>
</Налог>
</ТипЦены>
</ТипыЦен>
<Предложения>
<Предложение>
<Ид>1eb6ad86-a729-11e2-be44-000a5e5fa127</Ид>
<Артикул>0084</Артикул>
<Артикулл>00000002839</Артикулл>
<Наименование>COLORPLAST Автобус "Бусик №1"</Наименование>
<БазоваяЕдиница Код="2009" НаименованиеПолное="Штука" МеждународноеСокращение="">шт</БазоваяЕдиница>
<Цены>
<Цена>
<Представление>61,88 UAH за шт</Представление>
<ИдТипаЦены>0f6acf0e-0501-11e5-a1ed-000ea6f880f2</ИдТипаЦены>
<ЦенаЗаЕдиницу>61.88</ЦенаЗаЕдиницу>
<Валюта>UAH</Валюта>
<Единица>шт</Единица>
<Коэффициент>1</Коэффициент>
</Цена>
<Цена>
<Представление>44,2 UAH за шт</Представление>
<ИдТипаЦены>0f6acf0d-0501-11e5-a1ed-000ea6f880f2</ИдТипаЦены>
<ЦенаЗаЕдиницу>44.2</ЦенаЗаЕдиницу>
<Валюта>UAH</Валюта>
<Единица>шт</Единица>
<Коэффициент>1</Коэффициент>
</Цена>
</Цены>
<Количество>24</Количество>
</Предложение>
<СодержитТолькоИзменения>false</СодержитТолькоИзменения>
</ПакетПредложений>
</КоммерческаяИнформация>
−1
ВЫРАЗИТЬ(ВЫРАЗИТЬ(РасчетыСКлиентамиОстатки.ЗаказКлиента КАК Документ.РеализацияТоваровУслуг).ЗаказКлиента КАК Документ.ЗаказКлиента) КАК ЗаказКлиента
Типично
Конфигурация 1С ERP Украина.
0
ВЫБРАТЬ РАЗЛИЧНЫЕ
ВЫРАЗИТЬ(Работы.Ссылка КАК Документ.ЗаказНаряд) КАК СсылкаЗН,
ДЦ.Ссылка КАК ДилерскийЦентр
ИЗ
Документ.ЗаказНаряд.Работы КАК Работы
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.CRM_ДилерскиеЦентры КАК ДЦ
ПО (ЛОЖЬ)
ГДЕ
Работы.Ссылка.ДатаЗакрытия >= &ДатаНачала
И Работы.Ссылка.ДатаЗакрытия < &ДатаОкончания
И ДЦ.Ссылка.ПометкаУдаления = ЛОЖЬ
;
Язык запросов 1С. При таком соединение запрос запрос всегда будет пустым.