Снегопат

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

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




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 05 авг 2014, 09:22 
Не в сети

Зарегистрирован: 26 май 2014, 13:53
Сообщения: 83
Одна из самых нужных мне вещей - средства рефакторинга в 8.2, как известно, отсутствуют.
Был неприятно удивлен наличием детских багов в скрипте refactoring.js.
Например, если выделяем метод и говорим, что параметры передавать надо по "Знач", то само место вызова тоже получает добавки "Знач", что, понятно, ошибочно.

Код:
А = 1;
Б = 2;

НовыйМетод(Знач Б, Знач А); // здесь не должно быть "Знач" у параметров

// этот метод выделен скриптом рефакторинга
Процедура НовыйМетод(Знач Б, Знач А)
    ;
КонецПроцедуры



Это из самого страшного, но есть и другие сырости.
В целом скрипт больше похож на демонстрацию концепта, а не на рабочий вариант. Им кто-то пользуется?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 авг 2014, 08:56 
Не в сети

Зарегистрирован: 26 май 2014, 13:53
Сообщения: 83
Похоже, что никто не пользуется. А если я его перепишу - будете пользоваться?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 авг 2014, 12:41 
Не в сети

Зарегистрирован: 19 сен 2011, 11:14
Сообщения: 103
EvilBeaver писал(а):
Похоже, что никто не пользуется. А если я его перепишу - будете пользоваться?


Конечно будем. И даже готовы генерировать новые идеи по функционалу скрипта


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 авг 2014, 16:25 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
EvilBeaver писал(а):
Похоже, что никто не пользуется. А если я его перепишу - будете пользоваться?

Пользуемся как раз выделением метода.
Но ошибки есть, но не так часто, чтобы взяться и самому переписать :)
Если перепишешь, будем рады.
Тестовых кейсов могу накидать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 авг 2014, 10:39 
Не в сети

Зарегистрирован: 24 авг 2011, 15:32
Сообщения: 722
Конечно будем. Текущий скрипт у меня не взлетел по причине периодических конфликтов и недопониманий со SciColorer-ом. Потом про него вообще забыл.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 авг 2014, 11:33 
Не в сети

Зарегистрирован: 26 май 2014, 13:53
Сообщения: 83
artbear писал(а):
EvilBeaver писал(а):
Похоже, что никто не пользуется. А если я его перепишу - будете пользоваться?

Тестовых кейсов могу накидать.


Да, сделай, пожалуйста.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 сен 2014, 11:38 
Не в сети

Зарегистрирован: 19 фев 2013, 10:29
Сообщения: 64
На вике страницы скрипта не нашел, здесь вроде тестов хотели - вот некорректно обрабатывающаяся ситуация (код приведен не полностью):
Код:
Процедура ВосстановитьЗначенияРучныхКорректировокТабличнойЧасти(ИмяТЧ, СкорректированныеСтроки)
   Перем НеобходимоПредупредитьОбИзмененияхБУ, СтрокаДляКорректировки, МассивСтрокДляКорректировки, СкорректированнаяСтрока;
   Перем СписокКорректируемыхКолонок;//список колонок, которые могут корректироваться пользователем, их корректируем, остальные сверяем
   Перем СпецСумма;//Сумма долгосрочного и краткосрочного для 91, 99, потом для проценнтов и тд
   
   МассивКорректируемыхКолонок = ПолучитьМассивКорректируемыхКолонок();
   #Если _ Тогда
      МассивКорректируемыхКолонок = Новый Массив;
   #КонецЕсли
   Для каждого  СкорректированнаяСтрока Из СкорректированныеСтроки Цикл
      НеобходимоПредупредитьОбИзмененияхБУ = Ложь;
      Отбор = ПолучитьКлючСтроки(СкорректированнаяСтрока);
      МассивСтрокДляКорректировки = ЭтотОбъект[ИмяТЧ].НайтиСтроки(Отбор);
      Если МассивСтрокДляКорректировки.Количество() = 0 тогда
         СтрокаДляКорректировки = ЭтотОбъект[ИмяТЧ].Добавить();
      ИначеЕсли МассивСтрокДляКорректировки.Количество() = 1 тогда
         СтрокаДляКорректировки = МассивСтрокДляКорректировки[0];
      Иначе
         ВызватьИсключение "201409101233 Нашлось несколько строк с одним ключем";
      КонецЕсли;   

Выделяю строки с "отбор =" до конца блока. Автоматом получается
Код:
Функция ПолучитьСтрокуДляКорректировки(ИмяТЧ)
   Отбор = ПолучитьКлючСтроки(СкорректированнаяСтрока);
   МассивСтрокДляКорректировки = ЭтотОбъект[ИмяТЧ].НайтиСтроки(Отбор);
   Если МассивСтрокДляКорректировки.Количество() = 0 тогда
      СтрокаДляКорректировки = ЭтотОбъект[ИмяТЧ].Добавить();
   ИначеЕсли МассивСтрокДляКорректировки.Количество() = 1 тогда
      СтрокаДляКорректировки = МассивСтрокДляКорректировки[0];
   Иначе
      ВызватьИсключение "201409101233 Нашлось несколько строк с одним ключем";
   КонецЕсли;   
   Возврат СтрокаДляКорректировки;
КонецФункции

То есть теряется параметр "СкорректированнаяСтрока" несмотря на то, что выше эта переменная явно объявлена как локальная переменная модуля (в первой строке "Перем").


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 окт 2014, 06:50 
Не в сети

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


Вложения:
Image 2.png
Image 2.png [ 9.09 КБ | Просмотров: 28784 ]
Image 3.png
Image 3.png [ 3.82 КБ | Просмотров: 28784 ]
refactoring1.zip [6.81 КБ]
Скачиваний: 1010
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 окт 2014, 11:01 
Не в сети

Зарегистрирован: 26 май 2014, 13:53
Сообщения: 83
alonehobo писал(а):
Добавил по аналогии с выделением метода - выделение переменной;

Отлично. Добавьте в основной репозиторий, пожалуйста.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 окт 2014, 11:11 
Не в сети

Зарегистрирован: 14 май 2014, 12:17
Сообщения: 64
Не имею возможности


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2, 3  След.

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


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

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


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

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