-
+1
- 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
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
foreach ($child as $ch) {
if ($ch->nodeName === 'w:style') {
$sum++;
if ($ch->hasAttributes()) {
/** @var DOMAttr $attribute */
foreach ($ch->attributes as $attribute) {
if ($attribute->name === 'styleId') {
if ($attribute->value == $sTempStyle) {
/** @var DOMElement $styleNode */
foreach ($ch->childNodes as $styleNode) {
if (isset($styleNode->tagName) && $styleNode->tagName === 'w:basedOn') {
$basedOn = $styleNode->getAttribute('w:val');
$properties = $this->wordStyle2Array($basedOn, $tagName, $properties);
}
if (isset($styleNode->tagName) && $styleNode->tagName === $tagName) {
$elements = $styleNode->childNodes;
/** @var DOMElement $element */
foreach ($elements as $element) {
if (isset($element->tagName)) {
switch ($element->tagName) {
case 'w:color':
if ($element->hasAttribute('w:val')) {
$properties['color']['hex'] = '#' . $element->getAttribute
('w:val');
}
break;
case 'w:rFonts':
if ($element->hasAttribute('w:ascii')) {
$properties['font_family'] = $element->getAttribute('w:ascii');
}
break;
//кейсы - бесконечные как осень в России
}
}
}
}
}
}
}
}
}
}
Чувак, мы слышали ты любишь плодить уровни вложенности, поэтому мы написали switch в if в foreach в if в foreach в if в if в foreach в if в if в foreach, кажется.
mad_money,
24 Февраля 2016
-
−99
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Запрос.УстановитьПараметр("Бумага", Справочники.Номенклатура.НайтиПоКоду("g0000000012"));
Запрос.УстановитьПараметр("Пленка", Справочники.Номенклатура.НайтиПоКоду("g0000000382"));
Запрос.УстановитьПараметр("Тиснение", Справочники.Номенклатура.НайтиПоКоду("g0000000481"));
Запрос.УстановитьПараметр("Фольга", Справочники.Номенклатура.НайтиПоКоду("g0000000459"));
Запрос.УстановитьПараметр("Полуфабрикат", Справочники.Номенклатура.НайтиПоКоду("g0000001919"));
Запрос.УстановитьПараметр("Ламинация1", Справочники.Номенклатура.НайтиПоКоду("g0000000074"));
Запрос.УстановитьПараметр("Ламинация2", Справочники.Номенклатура.НайтиПоКоду("g0000001292"));
Возможно стоило использовать предопределенные элементы? Или справочник виды номенклатуры? Или свойства и категории объектов? Или создать своё перечисление? ДА БЛИН ЧТО УГОДНО ТОЛЬКО НЕ ЭТО!!!
levxxx,
24 Февраля 2016
-
−100
- 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
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
//
//Функция проверяет наличие товара на складе для проведения документа
Функция СверкаОстатковТовараПоСкладу(Док)Экспорт
Отказ=Ложь;
ВыбСклад="";
ЗаказВРеализации=неопределено;
ЭтоЗаказ=Ложь;
Если ТипЗнч(Док)=Тип("ДокументСсылка.ЗаказПокупателя") Тогда
ВыбСклад=Док.СкладГруппа;
ЭтоЗаказ=Истина;
ИначеЕсли ТипЗнч(Док)=Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
ВыбСклад=Док.Склад;
Если СокрЛП(Док.Сделка)<>"" Тогда
Если ТипЗнч(Док.Сделка)=Тип("ДокументСсылка.ЗаказПокупателя") Тогда
ЗаказВРеализации=Док.Сделка;
КонецЕсли;
КонецЕсли;
Иначе
Возврат Отказ;
КонецЕсли;
ТаблТовара=Док.Товары.Выгрузить();
Если ТипЗнч(ТаблТовара)=Тип("ТаблицаЗначений") Тогда
СписокНом=ТаблТовара.ВыгрузитьКолонку("Номенклатура");
Если ЭтоЗаказ ИЛИ ЗаказВРеализации=неопределено Тогда //Заказ или реализация не на основании заказа
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&КонДата, Склад = &Склад) КАК ТоварыНаСкладахОстатки
|ГДЕ
| ТоварыНаСкладахОстатки.Номенклатура В ИЕРАРХИИ(&Номенклатура)
|
|СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура";
Запрос.УстановитьПараметр("Номенклатура",СписокНом);
Запрос.УстановитьПараметр("КонДата",Док.Дата);
Запрос.УстановитьПараметр("Склад",ВыбСклад);
Рез=Запрос.Выполнить().Выгрузить();
ТаблТовара.Свернуть("Номенклатура,ЕдиницаИзмерения,Коэффициент","Количество");
Для каждого Стр из ТаблТовара Цикл
СтрОстаток=Рез.Найти(Стр.Номенклатура,"Номенклатура");
Если СтрОстаток=Неопределено Тогда //Нет остатка товара
Сообщить("Остаток товара: "+СокрЛП(Стр.Номенклатура)+" на складе: "+СокрЛП(ВыбСклад)+" =0");
Отказ=Истина;
// Прервать;
Иначе
Остаток=СтрОстаток.КоличествоОстаток;
Если Остаток<(Стр.Количество*Стр.Коэффициент)Тогда
Сообщить("Остаток товара: "+СокрЛП(Стр.Номенклатура)+" на складе: "+СокрЛП(ВыбСклад)+" ="+СокрЛП(Остаток)+" требуется ="+СокрЛП(Стр.Количество*Стр.Коэффициент));
Отказ=Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Иначе //Реализация на основании заказа
ТаблТовара.Свернуть("Номенклатура,ЕдиницаИзмерения,Коэффициент","Количество");
ТоварВЗаказе=ЗаказВРеализации.Товары.Выгрузить();
Для каждого Стр из ТаблТовара Цикл
СтрЗаказ=ТоварВЗаказе.Найти(Стр.Номенклатура,"Номенклатура");
Если СтрЗаказ=Неопределено Тогда //Нет остатка товара
Сообщить("Требуется: "+СокрЛП(Стр.Номенклатура)+" "+СокрЛП(Стр.Количество*Стр.Коэффициент)+" в заказе: "+" =0 "+СокрЛП(Стр.Номенклатура.ЕдиницаХраненияОстатков));
Отказ=Истина;
// Прервать;
Иначе
Остаток=(СтрЗаказ.Количество*СтрЗаказ.Коэффициент);
Если Остаток<(Стр.Количество*Стр.Коэффициент)Тогда
Сообщить("Требуется: "+СокрЛП(Стр.Номенклатура)+" "+СокрЛП(Стр.Количество*Стр.Коэффициент)+" в заказе: "+" = "+СокрЛП(Остаток)+" "+СокрЛП(Стр.Номенклатура.ЕдиницаХраненияОстатков));
Отказ=Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Возврат Отказ;
КонецФункции
!!!!!!!!!!!!!!!!!!
saturn5,
22 Февраля 2016
-
−99
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
Процедура СводПродажКоличество_Свод()
ТаблицаПродаж.Очистить();
//Здесь с учетом возвратов
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ТоварыОрганизацийОбороты.Номенклатура,
| ТоварыОрганизацийОбороты.КоличествоРасход КАК Количество
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Обороты(&Период1, &Период2, Период, Склад = &Склад) КАК ТоварыОрганизацийОбороты";
Запрос.УстановитьПараметр("Период1" , НачалоДня(НачДата));
Запрос.УстановитьПараметр("Период2" , КонецДня(КонДата));
Запрос.УстановитьПараметр("Склад" , СкладПриемник);
Рез=Запрос.Выполнить().Выбрать();
Пока Рез.Следующий() Цикл
Нов=ТаблицаПродаж.Добавить();
Нов.Номенклатура=Рез.Номенклатура;
Нов.Количество=Рез.Количество;
КонецЦикла;
ТаблицаПродаж.Свернуть("Номенклатура","Количество");
КонецПроцедуры
Вот так некоторые суровые красноярские 1С-ники феерически говнокодят в вакууме!
saturn5,
22 Февраля 2016
-
−1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
$_LOADER['cmps'] = @file ($_LOADER['follow']);
if ($_LOADER['cmps'])
{
unset($_LOADER['cmps'][0]);
$_LOADER['count'] = count ($_LOADER['cmps']);
while ($_LOADER['cmp'] < $_LOADER['count'])
{
$_LOADER['cmp']++;
$_LOADER['cmp_path'] = GLISS_DIR.'cmpnnt/'.trim($_LOADER['cmps'][$_LOADER['cmp']]);
require_once ($_LOADER['cmp_path']);
}
}
Мой код пятилетней давности. Я раньше не искал легких путей, foreach для мажоров, while для тру кодеров!!11!
mr-lekafe,
22 Февраля 2016
-
−2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
function get_addon()
{
$_ADDON = func_get_args();
$this_addon = GLISS_ADDIR.'addon/'.$_ADDON[0].'/index.php';
if (is_file($this_addon))
include_once $this_addon;
else echo'<pre>Дополнение "'.$_ADDON[0].'" не найдено!</pre>';
}
Мой код пятилетней давности. Использовать передаренные аргументы напрямую? Пффф, ну что за мейнстрим. Лучше использовать вот такой велосипед(3 строка), во ВСЕЙ КОДОВОЙ БАЗЕ.
mr-lekafe,
22 Февраля 2016
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
#pragma strict
function Start () {
function OnMouseDown (); {
if(name=="new") { Application.LoadLevel("procedural"); }
if(name=="set") { }
if(name=="exit") { Application.Quit(); }
}
}
mittorn,
21 Февраля 2016
-
+1
- 1
- 2
- 3
- 4
<span style="font-size: 16px; line-height: 12px;">
<b style="color: rgb(255, 102, 102);background-color:rgb(255, 204, 204);">
<span <a href="news/"><b style="color:rgb(153, 102, 0);">Новости</b></span>
________________________________________________________</b></span>
html код на одном сайте
t3dev,
21 Февраля 2016
-
−97
- 1
- 2
- 3
- 4
- 5
Если Стрк.Контрагент.ИНН = "7702691545" Тогда
ТекДок.Грузополучатель = Справочники.Контрагенты.НайтиПоКоду("000401789");
ИначеЕсли ПоХенкелю Тогда
ТекДок.Грузополучатель = Заявка.Контрагент;
КонецЕсли;
Навряд ли конечно кто-то из тех кто пишет такой код, читает этот сайт, но всё же обращаюсь к ним. Вот скажите, есть какой-то негласный принцип так писать? У вас какой-то орден масонский, где вас так учат делать? Расскажите же про свой негласный кодекс хорошего программиста! Просто я много где поработал, и постоянно в коде такое говно, написанное разными людьми. Генезис такого говна понятен: приходит тупорылый менеджер и приносит не менее тупорылую хотелку, но ведь вы программист, а значит вы должны видеть за деревьями лес.
В каждой задаче нужно видеть за деревьями лес - вот принцип хорошего кода. Если менеджер пришёл 1 раз, он 100% придёт ещё раз, и принесёт подобную задачу. Не лучше ли сейчас немножко посидеть, написать ХОРОШО а в следующий раз решить подобную задачу за 1 минуту и дальше сидеть и пинать говно? Не лучше?!
Что значит хорошо? Хорошо, это когда ваше решение шире задачи, а задача которую вам дали всего лишь частный случай того функционала, который вы реализовали. 1 - Мыслить нужно шире.
Так же надо чётко разделять ту информацию которая хранится в базе, и имена переменных. Если наименование контрагента "Хенкель" то какого члена в тексте делает переменная "КонтрагентХенкель"?! Предопределенные элементы - это максимум хардкода, который приемлем. Вы вообще слышали про компиляцию? Компиляция процесс необратимый, и часто её делать нежелательно, поэтому максимум параметров надо выносить во всевозможные настройки и параметры, чтобы можно было их поменять на ходу. Ладно. Вы всё равно нифига не поймёте.
levxxx,
20 Февраля 2016
-
0
- 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
unsigned int FileScanner::smartBruteForce(QByteArray &haystack, QByteArray &needle)
{
unsigned int count = 0;
unsigned int dataSize = haystack.size();
unsigned int needleSize = needle.size();
unsigned int needleSizeCut = needleSize - 1;
char* dp = haystack.data();
char* np = needle.data();
char lastNeedle = *(np + needleSize - 1);
for(unsigned int i = 0; i < dataSize - needleSize + 1; i++)
{
if(*(dp + (i + needleSizeCut)) != lastNeedle) //This is smart technology ))))
continue;
unsigned int j;
for(j = 0; j < needleSize; j++)
{
if(*(dp + (i + j)) != *(np + j))
break;
}
if(j == needleSize)
count++;
}
return count;
}
laMer007,
20 Февраля 2016