1. 1C / Говнокод #29287

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    Процедура ОбновитьТокен() Экспорт 
    	АдресСайта="api.***.***";
    	АдресЗапроса="/openapi/v2/auth/access";
    	РазделительТелаЗапроса = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");	
    	ContentType = "multipart/form-data; charset=UTF-8; boundary=" + РазделительТелаЗапроса;
    	ТекстОтправки = "";
    	ДобавитьПараметрВТелоЗапроса(ТекстОтправки, "bundle_code", 	"com.***.***", РазделительТелаЗапроса);
    	ДобавитьПараметрВТелоЗапроса(ТекстОтправки, "integration_id", 	"***", РазделительТелаЗапроса);
    	ДобавитьПараметрВТелоЗапроса(ТекстОтправки, "client_id", 	"***", РазделительТелаЗапроса);
    	ДобавитьПараметрВТелоЗапроса(ТекстОтправки, "code", 	"***", РазделительТелаЗапроса);
    	ДобавитьПараметрВТелоЗапроса(ТекстОтправки, "type", "access", РазделительТелаЗапроса);
    		
    	СтруктураДанныхСоздания = Новый Структура;
    	СтруктураДанныхСоздания.Вставить("ТелоЗапроса", ТекстОтправки);
    	
    	СтруктураДанныхСоздания.Вставить("АдресЗапроса",АдресЗапроса);
    	
    	SSL = Новый ЗащищенноеСоединениеOpenSSL();
    
        HTTPСоединение = Новый HTTPСоединение(АдресСайта,,,,,180,SSL);
        ЗапросHTTP = Новый HTTPЗапрос(АдресЗапроса);
        ЗапросHTTP.Заголовки["Cache-Control"]	= "no-cache";
        ЗапросHTTP.Заголовки["Content-type"]	= ContentType;
    	
    	ЗапросHTTP.УстановитьТелоИзСтроки(СтруктураДанныхСоздания.ТелоЗапроса,"UTF-8",ИспользованиеByteOrderMark.НеИспользовать);
    	ОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(ЗапросHTTP); 
    	Если ОтветHTTP.КодСостояния = 200 Тогда
    	НашОтвет=ОтветHTTP.ПолучитьТелоКакСтроку();
    	ЧтениеJSON = новый ЧтениеJSON;
    	ЧтениеJSON.УстановитьСтроку(НашОтвет);
    	НашиДанные =ПрочитатьJSON(ЧтениеJSON);
    	
    	
    	
    		Токен = НашиДанные.access_token;
    		//Сообщить("Норм . Наш токен "+ НашиДанные.access_token);
    		НашТовар = Справочники.Номенклатура.НайтиПоКоду("01760").ПолучитьОбъект(); 
    		НашТовар.Комментарий = Токен;
    		НашТовар.Записать();
    
    	Иначе 
    		Сообщить("Не норм "+ОтветHTTP.КодСостояния+" "+НашиДанные.message);
    	КонецЕсли; 
    	
    	
    КонецПроцедуры

    Грех не поделиться

    evreybiysk, 15 Октября 2026

    Комментарии (1)
  2. 1C / Говнокод #29231

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    ЗарплатныйПроект = Справочники.ЗарплатныеПроекты.ПустаяCсылка(); 
    	Запрос = Новый Запрос();
    	Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
    	|	ЗарплатныеПроекты.Ссылка КАК ЗарплатныйПроект
    	|ИЗ
    	|	Справочник.ЗарплатныеПроекты КАК ЗарплатныеПроекты";
    	Если НЕ Запрос.Выполнить().Пустой() Тогда
    		Рез = Запрос.Выполнить().Выбрать();
    		Рез.Следующий(); 
    		ЗарплатныйПроект = Рез.ЗарплатныйПроект;
    	КонецЕсли;

    Муки получения зарплатного проекта.

    Bazooka, 11 Февраля 2026

    Комментарии (5)
  3. 1C / Говнокод #29200

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    &НаКлиенте
    Процедура ЗаполнитьЧасы(Команда)
    	
    	ЗаполнитьРаспределение(1);
    
    КонецПроцедуры
    
    
    &НаКлиенте
    Процедура ЗаполнитьРаспределение(Команда) 
    	ЗаполнитьРаспределениеНаСервере();  
    КонецПроцедуры
    
    &НаСервере
    Процедура ЗаполнитьРаспределениеНаСервере()
    	 ...

    Стажер добавлял процедуру ЗаполнитьЧасы

    ilyatim23, 21 Ноября 2025

    Комментарии (0)
  4. 1C / Говнокод #29145

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Функция ЧислоВСтрокуБезПробелов(Число) Экспорт
    	 Возврат СтрЗаменить(Строка(Число), Символы.НПП, "");
    КонецФункции
    
    Чем не подходит Формат???

    evreybiysk, 11 Июня 2025

    Комментарии (5)
  5. 1C / Говнокод #29108

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    //Правила для КД2 дял перехода с УТ10.3 на УТ 11
    
    Если Источник.Ссылка.Владелец.ВидНоменклатуры.ТипНоменклатуры <> Перечисления.ТипыНоменклатуры.Товар
       И Источник.Ссылка.Владелец.ВидНоменклатуры.ТипНоменклатуры <> Перечисления.ТипыНоменклатуры.Услуга Тогда
    	Отказ = Истина;
    КонецЕсли;
    
    Если Источник.Ссылка.Владелец.ЕдиницаХраненияОстатков = Источник.Ссылка И Источник.Ссылка.Владелец.ЕдиницаХраненияОстатков.Коэффициент = 1 Тогда
    	Отказ = Истина;
    КонецЕсли;

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

    k-yurii, 27 Марта 2025

    Комментарии (2)
  6. 1C / Говнокод #29107

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 26 Марта 2025

    Комментарии (1)
  7. 1C / Говнокод #29103

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 12 Марта 2025

    Комментарии (4)
  8. 1C / Говнокод #29068

    0

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

    Bazooka, 26 Декабря 2024

    Комментарии (9)
  9. 1C / Говнокод #28996

    0

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

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

    NioGoth, 08 Октября 2024

    Комментарии (3)
  10. 1C / Говнокод #28993

    0

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

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

    ilyatim23, 30 Сентября 2024

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