-
−165
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл
...
ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних.Номенклатура
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
| И ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("ТипЦен",Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000001"));
Запрос.УстановитьПараметр("Номенклатура",ПараметрыПозиции.Номенклатура);
Цена = Запрос.Выполнить().Выбрать();
Цена.Следующий();
Если Цена.Цена <> Неопределено Тогда
ОбластьДанных.Параметры.Цена = Цена.Цена;
Если ЗначениеЗаполнено(ПараметрыПозиции.КфМест) Тогда
ОбластьДанных.Параметры.ЦенаМеста = Цена.Цена * ПараметрыПозиции.КфМест;
КОнецЕсли;
СумИтог = СумИтог + Цена.Цена * ПараметрыПозиции.Количество;
ОбластьДанных.Параметры.Сумма = Цена.Цена * ПараметрыПозиции.Количество;
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
КонецЦикла;
Прям классика жанра) Запрос в цикле, и условие к виртуальной таблице регистра сведений)
adc5,
13 Июня 2014
-
−127
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
Function Розница()
If Покупатель.Выбран() = 1 Then
If Покупатель.Вид() = "ПунктДоставки" Then
If Покупатель.Владелец.ТипЦенОтгрузки = Enum.ТипыОтпускныхЦен.Розничные Then
Return 1;
Else
Return 0;
EndIf;
Else
Return 0;
EndIf;
Else
Return 0;
EndIf;
EndFunction
Сегодня наткнулся на такой вот кусок кода
TekhnoLife,
10 Июня 2014
-
−130
- 1
- 2
- 3
- 4
- 5
Запрос.Текст = "
|...
| И УслугиОказанные.Проведен = &Истина
|...";
Запрос.УстановитьПараметр("Истина", Истина);
Вот как бывает когда людям платят за количество строк.
Коллега нашёл в отчёте из БГУ 1.0.
Voittamaton,
04 Июня 2014
-
−125
- 1
- 2
- 3
- 4
- 5
- 6
Процедура ПриОткрытии()
Если ЭтоНовый() И НЕ РольДоступна("СуперАдмин") Тогда
ЭтаФорма.Закрыть();
Возврат;
КонецЕсли;
КонецПроцедуры
УТ 10.3. Такие перлы добавлены почти во все документы конфигурации
105_306330_ru,
28 Мая 2014
-
−123
- 1
- 2
- 3
- 4
- 5
- 6
ИначеЕсли Отправитель = "h*@**k.ua" Тогда
НовыйДокумент.Услуга = Справочники.Услуги.НайтиПоКоду("0000000029");
ИначеЕсли Отправитель = "*******@**k.ua" Тогда
НовыйДокумент.Услуга = Справочники.Услуги.НайтиПоКоду("0000000029");
НовыйДокумент.Ответственный = Справочники.Сотрудники.НайтиПоКоду("0000000063");
КонецЕсли;
alexinzaz,
23 Мая 2014
-
−132
- 1
- 2
- 3
- 4
- 5
- 6
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() И Выборка.Количество() > 0 Тогда
Возврат Выборка.ПлощадьДома;
Иначе
Возврат 0;
КонецЕсли;
проверка пустая ли выборка по одному из принципов:
"больше лучше, чем меньше", "доверяй, но проверяй", "семь раз отмерь, один отрежь"
Olna,
21 Мая 2014
-
−126
- 1
- 2
- 3
- 4
Запрос = Новый Запрос("
|ВЫБРАТЬ ПЕРВЫЕ 1000
|.....");
ВыборкаДанных = Запрос.Выполнить().Выгрузить();
Код из правила выгрузки данных с произвольным запросом.
Ведущий программист: "Блин, почему каждый раз выгружается разное количество объектов? Это же мистика!!!"
Voittamaton,
06 Мая 2014
-
−166
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
Функция ЭтоБуква(Буква)
Возврат Найти("еоатинркулмДСвПдОсКцчыгзпбТНИьБФхВяРАЗЭйУЕГМЦжщЙШЩЫЛЯЧЬХЪЖЮЁёшъфэюQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm", Буква) > 0;
КонецФункции
Функция ЭтоЦифра(Буква)
Возврат Найти("1234567890", Буква)>0;
КонецФункции // ЭтоЦифра()
Функция ЭтоБукваИлиЦифра(Символ)
Возврат Найти("еоатинркулмДСвПдОсКцчыгзпбТНИьБФхВяРАЗЭйУЕГМЦжщЙШЩЫЛЯЧЬХЪЖЮЁёшъфэюQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890", Символ) > 0;
КонецФункции // ЭтоБукваИлиЦифра()
Из типовой конфигурации БГУ 2.0.
На первый взгляд реализация забавна :-) Но, в общем-то, это не является говнокодом: просмотрев в гугле различные "рейтинги букв", получил примерно то же самое.
Тем не менее, можно решить вопрос с помощью проверки кода символа.
Voittamaton,
01 Мая 2014
-
−162
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
Процедура ОбождатьПятьСекунд()
Время1 = ТекущаяДата();
Пока ТекущаяДата() <= Время1 + 5 Цикл
КонецЦикла;
КонецПроцедуры
Процедура ОбождатьМенуту()
Н = 1;
Пока Н <= 12 Цикл
ОбождатьПятьСекунд();
Н = Н + 1;
КонецЦикла;
КонецПроцедуры
Процедуры ВыгрузитьВСайт(КоличествоМенут)
Н = 1;
Пока Н <= КоличествоМенут Цикл
ОбождатьМенуту();
Н = Н + 1;
КонецЦикла;
СформероватьОправитьХМЛ();
КонецПроцедуры
В пятницу на собеседование пришёл программист.
Задание было следующим: по определённым правилам сформировать XML-файл для выгрузки в интернет-кабинет. Выгрузка должна была производиться с определённой периодичностью. В клиент-серверной версии нужно было создать регламентное задание.
С заполнением XML-файла программист справился согласно требованиям.
Но, к сожалению, парень не умел работать с регламентными заданиями, поэтому в качестве решения сделал внешнюю обработку с обработчиком ожидания, которая запускалась в отдельном сеансе.
Орфография сохранена :-)
Voittamaton,
12 Апреля 2014
-
−163
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
ВЫБОР
КОГДА ПеремещениеТоваровТовары.ЕдиницаИзмерения = ПеремещениеТоваровТовары.Номенклатура.ЕдиницаХраненияОстатков
ТОГДА ПеремещениеТоваровТовары.Количество * ПеремещениеТоваровТовары.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * ПеремещениеТоваровТовары.Номенклатура.бит_п_МассаНетто
КОГДА ПеремещениеТоваровТовары.ЕдиницаИзмерения = ПеремещениеТоваровТовары.Номенклатура.ЕдиницаДляОтчетов
ТОГДА ПеремещениеТоваровТовары.Количество * ПеремещениеТоваровТовары.Номенклатура.ЕдиницаДляОтчетов.Коэффициент * ПеремещениеТоваровТовары.Номенклатура.бит_п_МассаНетто
КОГДА ПеремещениеТоваровТовары.ЕдиницаИзмерения = ПеремещениеТоваровТовары.Номенклатура.ЕдиницаИзмеренияМест
ТОГДА ПеремещениеТоваровТовары.Количество * ПеремещениеТоваровТовары.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент * ПеремещениеТоваровТовары.Номенклатура.бит_п_МассаНетто
КОГДА ПеремещениеТоваровТовары.ЕдиницаИзмерения = ПеремещениеТоваровТовары.Номенклатура.бит_п_ЕдиницаПаллет
ТОГДА ПеремещениеТоваровТовары.Количество * ПеремещениеТоваровТовары.Номенклатура.бит_п_ЕдиницаПаллет.Коэффициент * ПеремещениеТоваровТовары.Номенклатура.бит_п_МассаНетто
КОНЕЦ
iMoxa,
02 Апреля 2014