1. 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

    Комментарии (1)
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 1C / Говнокод #28944

    +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
    Функция Это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, 20 Мая 2024

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

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

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

    hujaboy, 16 Мая 2023

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

    0

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

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

    TrollNeedsDoll, 11 Января 2023

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

    −7

    1. 1
    ВремяВыезда = Строка(Формат(ВыборкаМаршШапка[0].ВремяВыезда, "ДФ=ЧЧ")) + ":" + Строка(Формат(ВыборкаМаршШапка[0].ВремяВыезда, "ДФ=мм")) + " выезд из гар.";

    Выводит время без секунд

    serving12, 04 Октября 2022

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