Бухгалтерия / Говнокод #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 )

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

Бухгалтерия / Говнокод #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)

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

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
Функция СоответствиеСодержитКлюч(Соответствие, Ключ)
    
    Если НЕ Соответствие[Ключ] = Неопределено Тогда
        Возврат Истина;
    КонецЕсли;
    
    КоличествоЭлементов = Соответствие.Количество();
    Соответствие.Удалить(Ключ);
    
    Если КоличествоЭлементов = Соответствие.Количество() Тогда
        Возврат Ложь;
    КонецЕсли;
    
    Соответствие.Вставить(Ключ);
    Возврат Истина;
    
КонецФункции

Как тебе такое Илон (зачеркнуто) Нуралиев?!

hujaboy hujaboy, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
Функция ЗначениеКонстанты(ИмяКонстанты) Экспорт
 
 Если  ИмяКонстанты = "_ИмяФайловогоСервера" тогда
  возврат "jrumos03fscp010";
 КонецЕсли;
 
 Возврат Константы[ИмяКонстанты].Получить();
КонецФункции

Файловый сервер может быть только такой.

TrollNeedsDoll TrollNeedsDoll, (Updated )

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