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

    −16

    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
    Небольшой гуру-тест по сопровождению типовых конфигураций.
    
    
    Есть запрос, который получает себестоимость и выручку документа возврата товара от клиента (процедура ТекстЗапросаТаблицаВыручкаИСебестоимостьПродаж в модуле менеджера документа):
    
    
    ТекстЗапроса = "
    ....
     | - ВидыЗапасов.СуммаСНДСУпр          КАК СуммаВыручки,
    ....
     | ВЫБОР КОГДА ВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
     |  ИЛИ ВидыЗапасов.ДокументРеализации = НЕОПРЕДЕЛЕНО
     | ТОГДА
     |  - ВидыЗапасов.СуммаСНДСУпр
     | ИНАЧЕ
     |  0
     | КОНЕЦ КАК Себестоимость,
    
    
    Для удобства сопровождения текст запроса меняется далее в коде, а не в самом запросе, в конструкции вида:
    
    
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "... что искать ...",
    ".. на что заменять...");
    
    
    Нужно заменить использование ВидыЗапасов.СуммаСНДСУпр так, чтобы СуммаВыручки не изменилась, а Себестоимость изменилась, допустим на число 666 (для гуру-теста).
    
    
    Это частая задача для УТ11, т.к. там не реализована возможность конкретного указания себестоимости, если возврат осущесвлятся без документа продажи (например, за прошлые периоды, до ввода начальных остатков), в этих случаях УТ11 принимает себестоимость возврата, равную цене продажи, а это не совсем правильно.
    
    
    В этом случае есть один хитрый трюк, чтобы без использования регулярных выражений добиться замены себестоимости на заданное число. Вопрос - как? Думаем.

    Немножко обо мне:
    Действующий пикапер. Честно соблазнил 174 женщин и купил 42 феи (на август 2015)
    Использует функциональную 5 бальную шкалу оценок женщин.
    Известный 1сник с кличкой Гений 1С. Получает от 120 тыщ.
    Изобрел фонд «Секс за ваши» - занимаюсь сексом с проститутками за счет пожертвований фанатов.
    Изобрел Религию Дембеля.

    Genius1C, 17 Июня 2016

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

    −97

    1. 1
    НачисляетсяВЦеломЗаМесяц = СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ФиксированнойСуммой ИЛИ БазовыйПериодПрошлыйМесяц;

    Типовая конфигурация ЗКБУ, увидев такой код немного смутило или лыжи не едут или ...

    rus_LAN, 15 Июня 2016

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

    −98

    1. 1
    2. 2
    3. 3
    4. 4
    К стандартным добавили реквизиты
    ИНН2
    КПП2
    записали туда тоже самое что и ИНН и КПП

    helperapple, 14 Июня 2016

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

    −97

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ
    		|	РАЗНОСТЬДАТ(&Дата1, &Дата2, МЕСЯЦ) КАК РезультатРазность";
    Запрос.УстановитьПараметр("Дата1",СтрТЧ.ДатаНачала);
    Запрос.УстановитьПараметр("Дата2",СтрТЧ.ДатаОкончания);
    Результат = Запрос.Выполнить().Выгрузить();
    КолвоМесяцев = Результат[0].РезультатРазность+1;

    Классика жанра. Ходим на сервер, чтобы посчитать разность дат. Ну да, сервер же у нас целыми днями воздух гоняет, заняться ему больше нечем. Давайте 2+2 складывать начнем через сервак.
    Причем, б*ть, через сервер приложений, который в свою очередь погонит запрос на сервер MSSQL.

    mrbus, 08 Июня 2016

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

    −103

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    Таб = Документ.ПолучитьОбъект().РаботникиОрганизаций;
    Таб.Очистить();
    // блабла...
    
    Таб = Документ.ПолучитьОбъект().РаботникиОрганизаций;
    Раб = Таб.Добавить();
    // Далее идет заполнение строки ТЧ...
    
    Док = Документ.ПолучитьОбъект();
    Док.Записать(РежимЗаписиДокумента.Проведение);

    "А чо у миня ничо ни записываецца????!!!!1111"
    "Ну у миня документ через COM-соединение... наверное изза этово..."
    Ну или, проще говоря, стандартная баба с красным дипломом программиста...

    mrbus, 07 Июня 2016

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

    −98

    1. 1
    ЭтоДокумент = Метаданные.Документы.Содержит(ЭтотОбъект.Метаданные())

    Примечательно, что вызывается из модуля формы документа, больше нигде процедура с ЭТИМ не используется.
    В документе проверяем, что это документ :/

    Moonlight, 03 Июня 2016

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

    −100

    1. 1
    Если  (ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Содержит(Метаданные.Роли.Префикс_Кадровик)) тогда

    Франчайзи видимо не всегда знают о РольДоступна()

    znsoft, 02 Июня 2016

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

    −99

    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
    Код выполняется в форме документа заказ покупателя
    если Не проведен тогда
    	сообщить ("Сопоставлять нужно только после Заполнить и провести");
    	возврат;
    КонецЕсли;
    Заказссылка = этотОбъект.Ссылка;	
    ТчЗаказаПокупателя = этотОбъект.Товары;
    для каждого РедактируемаяСтрока из ТчЗаказаПокупателя цикл
    	стр =""+РедактируемаяСтрока.Размещение;						
    	если  значениеЗаполнено(стр) и Тип("ДокументСсылка.ЗаказПокупателя") =ТипЗнч(ЗаказСсылка) и Тип("ДокументСсылка.ЗаказПоставщику")=ТипЗнч(РедактируемаяСтрока.Размещение)		
    	тогда		
    		Док_ЗаказПоставщику =РедактируемаяСтрока.Размещение.получитьОбъект();	
    		тч = Док_ЗаказПоставщику.товары;

    tixis1c, 30 Мая 2016

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

    −99

    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
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("НоменклатурнаяГруппа", Объект.Ссылка);
    	
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	Номенклатура.Код,
    |	Номенклатура.Ссылка КАК Номенклатура
    |ИЗ
    |	Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |	Номенклатура.НоменклатурнаяГруппа.Ссылка = &НоменклатурнаяГруппа
    |
    |УПОРЯДОЧИТЬ ПО
    |	Номенклатура";
    	
    ТаблицаТоваров = Запрос.Выполнить().Выгрузить();
    
    СписокГруппы.Загрузить(ТаблицаТоваров);

    БП 3.0.43.174 (но не только), типовое заполнение формы номенклатурной группы номенклатурой.

    OdinAss, 26 Мая 2016

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

    −100

    1. 1
    ТекТаблицаСвойств = СсылкаНаОбьект.Свойства.Выгрузить().Скопировать(СсылкаНаОбьект.Свойства.НайтиСтроки(ТекОтбор));

    Выгружаем строки из табличной части, используя отбор.

    CMblCL, 18 Мая 2016

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