Снегопат

Обсуждение Снегопата
Текущее время: 23 апр 2024, 17:03

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Форматирование модуля
СообщениеДобавлено: 28 сен 2014, 18:18 
Не в сети

Зарегистрирован: 14 май 2014, 12:17
Сообщения: 64
Работая с конфигурациями, в которых до тебя поработали другие "спецы", часто сталкиваешься с говнокодом. Но мало того, что говнокод сам себе по себе говно. Он зачастую еще и написан в стиле "вырвиглаз". К счастью у нас есть снегопат и такой скрипт как formatModule.js. Но он иногда подглючивает(точнее не сам скрипт, а алгоритм обработки, которую он вызывает). В некоторых случаях удаляет последнюю строку выделенного текста, знак >= заменяет на =>, на что 1С начинает ругаться, и еще пару мелочей с самим форматированием. Вот я и взял на себя смелость его подправить.
Теперь говнокод легким движением руки превращается в..... все тот же говнокод. Но смотрится уже гораздо симпатичнее.


Вложения:
formatModule.zip [4.07 КБ]
Скачиваний: 398
Комментарий к файлу: Правила форматирования
НастройкаФорматирования.zip [1.63 КБ]
Скачиваний: 435
ФорматированиеТекста.epf [73.61 КБ]
Скачиваний: 649


Последний раз редактировалось alonehobo 10 окт 2014, 12:57, всего редактировалось 2 раз(а).
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форматирование модуля
СообщениеДобавлено: 29 сен 2014, 10:10 
Не в сети
Аватара пользователя

Зарегистрирован: 31 мар 2013, 17:30
Сообщения: 77
Откуда: Москва
А можно увидеть примеры кода "ДО" и "ПОСЛЕ" ?

_________________
С уважением, Артур.
PS. http://blog.livegig.ru/ - мой уютный бложик. Добро пожаловать, коллеги!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форматирование модуля
СообщениеДобавлено: 29 сен 2014, 10:46 
Не в сети

Зарегистрирован: 14 май 2014, 12:17
Сообщения: 64
ДО:
Код:
Для каждого ТекСтрока Из ДеревоРезультата.Строки Цикл
      Если НЕ ЗначениеЗаполнено(ТекСтрока.ФизЛицо) Тогда
      Продолжить;
   КонецЕсли;
   
   
   
   
НоваяСтрокаСотрудники = Сотрудники.Добавить();
НоваяСтрокаСотрудники.Сотрудник=ТекСтрока.ФизЛицо;
НоваяСтрокаСотрудники.Начислено= ТекСтрока.СуммаЗПИтог;
НоваяСтрокаСотрудники.КлючСтроки=НоваяСтрокаСотрудники.НомерСтроки;
      
      для каждого ТекСтрокаПоказатели з ТекСтрока.Строки цикл
         
         НоваяСтрокаРасшифровка = СотрудникиРасшифровка.Добавить();
         НоваяСтрокаРасшифровка.КлючСтроки = НоваяСтрокаСотрудники.КлючСтроки;
         НоваяСтрокаРасшифровка.ЗаказПокупателя = ТекСтрокаПоказатели.Показатель;
         НоваяСтрокаРасшифровка.ПроцентЗП = ТекСтрокаПоказатели.ЗначениеПоказателяИтог;
         НоваяСтрокаРасшифровка.СуммаЗП = ТекСтрокаПоказатели.СуммаЗПИтог;
         НоваяСтрокаРасшифровка.Начислено = НоваяСтрокаРасшифровка.СуммаЗП;
         НоваяСтрокаРасшифровка.СуммаЗПОкр = Окр(НоваяСтрокаРасшифровка.СуммаЗП);
      конеццикла;
      
      
      
   КонецЦикла;


ПОСЛЕ:

Код:
Для Каждого ТекСтрока Из ДеревоРезультата.Строки Цикл

    Если Не ЗначениеЗаполнено(ТекСтрока.ФизЛицо) Тогда
        Продолжить;
    КонецЕсли;

    НоваяСтрокаСотрудники            = Сотрудники.Добавить();
    НоваяСтрокаСотрудники.Сотрудник  = ТекСтрока.ФизЛицо;
    НоваяСтрокаСотрудники.Начислено  = ТекСтрока.СуммаЗПИтог;
    НоваяСтрокаСотрудники.КлючСтроки = НоваяСтрокаСотрудники.НомерСтроки;

    Для Каждого ТекСтрокаПоказатели з ТекСтрока.Строки Цикл

        НоваяСтрокаРасшифровка                 = СотрудникиРасшифровка.Добавить();
        НоваяСтрокаРасшифровка.КлючСтроки      = НоваяСтрокаСотрудники.КлючСтроки;
        НоваяСтрокаРасшифровка.ЗаказПокупателя = ТекСтрокаПоказатели.Показатель;
        НоваяСтрокаРасшифровка.ПроцентЗП       = ТекСтрокаПоказатели.ЗначениеПоказателяИтог;
        НоваяСтрокаРасшифровка.СуммаЗП         = ТекСтрокаПоказатели.СуммаЗПИтог;
        НоваяСтрокаРасшифровка.Начислено       = НоваяСтрокаРасшифровка.СуммаЗП;
        НоваяСтрокаРасшифровка.СуммаЗПОкр      = Окр(НоваяСтрокаРасшифровка.СуммаЗП);
    КонецЦикла;
КонецЦикла;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форматирование модуля
СообщениеДобавлено: 29 сен 2014, 10:48 
Не в сети

Зарегистрирован: 14 май 2014, 12:17
Сообщения: 64
Настроить формат под себя можно в самой обработке, открыв ее в управляемом приложении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форматирование модуля
СообщениеДобавлено: 29 сен 2014, 18:41 
Не в сети
Аватара пользователя

Зарегистрирован: 31 мар 2013, 17:30
Сообщения: 77
Откуда: Москва
Классная вещь, спасибо!
Только я так и не разобрался, как выставить настройки, чтобы пустые (хотя бы дублирующиеся) строчки убирались. Пробовал взводить/отпускать галочки во всех группах на закладке "Пустые строчки" - результат не меняется. В качестве тестового примера использовал Ваш.
А в остальном - офигенная разработка!

_________________
С уважением, Артур.
PS. http://blog.livegig.ru/ - мой уютный бложик. Добро пожаловать, коллеги!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форматирование модуля
СообщениеДобавлено: 29 сен 2014, 18:57 
Не в сети

Зарегистрирован: 14 май 2014, 12:17
Сообщения: 64
Спасибо Евгению (sosnae), это его работа. Я лишь слегка поправил.
Чтобы убрать пробелы используйте эти правила.


Вложения:
НастройкаФорматирования.zip [1.63 КБ]
Скачиваний: 411
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форматирование модуля
СообщениеДобавлено: 10 окт 2014, 13:10 
Не в сети

Зарегистрирован: 14 май 2014, 12:17
Сообщения: 64
Добавил в сам скрипт команду стандартного форматирования методом платформы после обработки по правилам, чтобы не было проблем с отступами


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Форматирование модуля
СообщениеДобавлено: 11 окт 2014, 14:35 
Не в сети

Зарегистрирован: 20 дек 2011, 10:31
Сообщения: 588
Откуда: Украина, Запорожье
Обновил репо. Спасибо.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB