Бухгалтерия / Говнокод #29108 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
//Правила для КД2 дял перехода с УТ10.3 на УТ 11

Если Источник.Ссылка.Владелец.ВидНоменклатуры.ТипНоменклатуры <> Перечисления.ТипыНоменклатуры.Товар
   И Источник.Ссылка.Владелец.ВидНоменклатуры.ТипНоменклатуры <> Перечисления.ТипыНоменклатуры.Услуга Тогда
	Отказ = Истина;
КонецЕсли;

Если Источник.Ссылка.Владелец.ЕдиницаХраненияОстатков = Источник.Ссылка И Источник.Ссылка.Владелец.ЕдиницаХраненияОстатков.Коэффициент = 1 Тогда
	Отказ = Истина;
КонецЕсли;

Что может пойти не так?

k-yurii k-yurii, (Updated )

Комментарии (2, +2)

Бухгалтерия / Говнокод #29107 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
&НаСервере
Процедура ПриОткрытииНаСервере()

    Заказ = Документы.ЗаказИнтернетМагазина.ПолучитьСсылку(Объект.Ссылка.УникальныйИдентификатор());
    ОбъектЗаказ = Заказ.ПолучитьОбъект();

    ДатаНач = ОбъектЗаказ.Дата;
    ДатаКон = ТекущаяДата();

    ИзмененыДанные = Ложь;

    Для Каждого Стр Из ОбъектЗаказ.Товары Цикл
        Если Стр.ДокументПеремещения.СостояниеПеремещения = Перечисления.СостоянияПеремещенийИМ.ОтправленоСХаба Тогда
            ПеремещениеЗак = Стр.ДокументПеремещения.Ссылка;
            Выборка = Документы.СборкаПеремещения.Выбрать(ДатаНач, ДатаКон);
            Пока Выборка.Следующий() Цикл
                ОбъектСборки = Выборка.ПолучитьОбъект();
                Для Каждого СтрСборка Из ОбъектСборки.TU Цикл
                    Если СтрСборка.Перемещение = ПеремещениеЗак Тогда
                        Стр.ВременныйДокументСборки = Выборка.Ссылка;
                        ИзмененыДанные = Истина;
                        Прервать;
                    КонецЕсли;
                КонецЦикла;
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;

    Если ИзмененыДанные Тогда
        ОбъектЗаказ.Записать();
    КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
  ПриОткрытииНаСервере();
КонецПроцедуры

BiLBelarus BiLBelarus, (Updated )

Комментарии (1, +1)

Бухгалтерия / Говнокод #29103 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
#Область Работа_с_JSON
//Функция ВыгрузитьНоменклатуруJSON()
//Назначение: выгрузка номенклатуры в шину
//Входящие параметры:
// - ВходящиеДанные - таблица значений, заполненной информацией о номенклатуре
// - ПараметрыПодключения - структура с описанием подключения к web-сервису
//Возвращаемое значение:
// Строка в формате JSON с описанием результата
Функция ВыгрузитьНоменклатуруJSON(ВходящиеДанные, ПараметрыПодключения) Экспорт
	//Формируем строку в формате JSON на основе входящих данных
	Текст = Новый ТекстовыйДокумент();
	Текст.ДобавитьСтроку("[");
	Массив = Новый Массив;
	Для к = 0 По ВходящиеДанные.Количество() - 1 Цикл
		НоваяСтрока = Новый Структура("UID, Name, VC, Brand, Add, Barcode", 
			ВходящиеДанные[к].UID, 
			ВходящиеДанные[к].Name, 
			ВходящиеДанные[к].VC,
			ВходящиеДанные[к].Brand,
			Новый Структура("Color, Size",
				ВходящиеДанные[к].Color,
				ВходящиеДанные[к].Size),
			ВходящиеДанные[к].Barcode);
		ЗаписьJSON = Новый ЗаписьJSON;
		ЗаписьJSON.УстановитьСтроку();
		ЗаписатьJSON(ЗаписьJSON, НоваяСтрока);
		Строка = ЗаписьJSON.Закрыть();
		Текст.ДобавитьСтроку(Строка);
		Если к < ВходящиеДанные.Количество() - 1 Тогда
			Текст.ДобавитьСтроку(",");
		КонецЕсли;
	КонецЦикла;
	Текст.ДобавитьСтроку("]");
	ПакетJSON = Текст.ПолучитьТекст();
	ФайлСертификатКлиентаФайл = ПолучитьИмяВременногоФайла("pfx");
	МакетСертификатКлиентаФайл = ПолучитьМакет("СертификатКлиентаФайл");
	МакетСертификатКлиентаФайл.Записать(ФайлСертификатКлиентаФайл);
	ЗащищенноеСоединениеOpenSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаФайл(ФайлСертификатКлиентаФайл));
	//Производим подключение к web-сервису.
	//1) Создаем WSОпределение
	Определение    		= Новый WSОпределения(ПараметрыПодключения.МестоположениеWSDLфайла, ПараметрыПодключения.Пользователь,  ПараметрыПодключения.Пароль,,,ЗащищенноеСоединениеOpenSSL);
	//2) Создаем WSПрокси
	Прокси      		= Новый WSПрокси(Определение, "http://SantOn", "SantOnApi", "SantOnApiSoap",,,ЗащищенноеСоединениеOpenSSL);
	Прокси.Пользователь	= ПараметрыПодключения.Пользователь;
	Прокси.Пароль		= ПараметрыПодключения.Пароль;
	//Отправляем строку на обработку в функцию "FullLoadJs" web-сервиса
	Попытка
		РезультатОперации = Прокси.FullLoadJs(ПакетJSON);
	Исключение
		Сообщить(ОписаниеОшибки());
		РезультатОперации = "";
	КонецПопытки;
	//Выход из функции и передача результата вызывающему методу
	Возврат Новый Структура("РезультатОперации, ИсходныеДанные", РезультатОперации, ПакетJSON);
КонецФункции

Обработка сантехника онлайн

evreybiysk evreybiysk, (Updated )

Комментарии (4, +4)

Бухгалтерия / Говнокод #29068 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
Если Пользователи.ТекущийПользователь() = Справочники.Пользователи.НайтиПоРеквизиту("ИдентификаторПользователяИБ", 
		Новый УникальныйИдентификатор("4479997c-b5d3-4928-a870-47fdf5bb1977")) 
		ИЛИ Пользователи.ТекущийПользователь() = Справочники.Пользователи.НайтиПоРеквизиту("ИдентификаторПользователяИБ", 
		Новый УникальныйИдентификатор("a1c3d77c-e00e-11e7-6d89-fa163e419b69")) Тогда				
		
		ЗапретНайден = ДИТ_ПолучитьЗапретИзмененияДанных();
				
		Если ЗапретНайден Тогда
			ДИТ_УстановитьТолькоПросмотрДляПользователя();			
		КонецЕсли;
		
	КонецЕсли;

Bazooka Bazooka, (Updated )

Комментарии (9, +9)

Бухгалтерия / Говнокод #28996 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
//Таб пропущенные
	УсловиеОтбора = "ABANDON";
	ДлинаСтрОтбора = 32;
	Для с=1 По ДлинаСтрОтбора - СтрДлина(УсловиеОтбора) Цикл
		УсловиеОтбора = УсловиеОтбора + " ";
	КонецЦикла;		
	ТабПропущенные = Таб_queue.Скопировать(Новый Структура("Событие",УсловиеОтбора));
	
	//Таб всё же дозвонились
	УсловиеОтбора = "CONNECT";
	ДлинаСтрОтбора = 32;
	Для с=1 По ДлинаСтрОтбора - СтрДлина(УсловиеОтбора) Цикл
		УсловиеОтбора = УсловиеОтбора + " ";
	КонецЦикла;	
	ТабДозвонились = Таб_queue.Скопировать(Новый Структура("Событие",УсловиеОтбора));

В таблице какого то черта стояла фиксированная строка длинной 32 символа.
Вот так "изящно" обошли это.

NioGoth NioGoth, (Updated )

Комментарии (3, +3)

Бухгалтерия / Говнокод #28993 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
		|	КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
		|	ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Значение КАК Значение
		|ИЗ
		|	РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(, Период <= &ДатаРег) КАК КадроваяИсторияСотрудниковСрезПоследних,
		|	РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(, Период <= &ДатаРег) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних
		|ГДЕ
		|	КадроваяИсторияСотрудниковСрезПоследних.Сотрудник = &Сотрудник
		|	И ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Показатель = &Показатель
		|	И ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Сотрудник = &Сотрудник";
	
	Запрос.УстановитьПараметр("ДатаРег", Объект.ДатаОперации);
	Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
	Запрос.УстановитьПараметр("Показатель", Справочники.ПоказателиРасчетаЗарплаты.НайтиПоНаименованию("Тарифная ставка (часовая)"));
	РезультатЗапроса = Запрос.Выполнить();

Довелось допиливать за студентом со стажем 1 год.
Всякое видел, но к таким извращениям не был готов... особенно условию с периодом
Уже молчу про предопределенный показатель и отсутствие связей

ilyatim23 ilyatim23, (Updated )

Комментарии (5, +5)

Бухгалтерия / Говнокод #28944 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
Функция ЭтоVIN(Знач Значение, Знач ПробелыЗапрещены = Истина) Экспорт 
	
	Если ТипЗнч(Значение) <> Тип("Строка") Тогда
		Возврат Ложь;
	КонецЕсли;   
	
	Если Не ПробелыЗапрещены Тогда
		Значение = СтрЗаменить(Значение, " ", "");
	КонецЕсли;
	
	Возврат ЗначениеЗаполнено(Значение)
	И (СтрДлина(Значение) = 17)
	И 	
	// Если содержит только цифры, то в результате замен должна быть получена пустая строка.
	// Проверять при помощи ПустаяСтрока нельзя, так как в исходной строке могут быть пробельные символы.
	СтрДлина(  
	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(	СтрЗаменить(
	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(	СтрЗаменить(
	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( 
	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
	СтрЗаменить( СтрЗаменить( СтрЗаменить( 
	Значение, "0", ""), "1", ""), "2", ""), "3", ""), "4", ""), "5", ""), "6", ""), "7", ""), "8", ""), "9", "")
	, "A", ""), "B", ""), "C", ""), "D", ""), "E", ""), "F", ""), "G", ""), "H", ""), "J", ""), "K", ""), "L", ""), "M", "")
	, "N", ""), "P", ""), "R", ""), "S", ""), "T", ""), "U", ""), "V", ""), "W", ""), "X", ""), "Y", ""), "Z", "")) = 0; 
	
КонецФункции

Функция определяет является ли строка VIN, метода выбрана забавная - в строке удаляются все допустимые символы, то что осталось, по мнению автора - мусор, т.е. vin невалидный. Видимо просто проверить каждый символ на вхождение в допустимый алфавит это слишком просто ;).

VladC VladC, (Updated )

Комментарии (16, +16)