Отладка кода в режиме отладки без перезагрузки клиента

06.03.12

Разработка - Универсальные функции

Позволяет многократно выполнять отлаживаемый код непосредственно в режиме отладчика не перегружая клиента

Иногда достаточно изменить 1-2 строки кода.Но для проверки всегда нужно перегрузить клиента и выполнить код заново. Можно конечно воспользоваться какой-нибудь консолью кода,выложенной на сайте, и отлаживать код в ней. Но для получения конечного результата нужны переменные исходного модуля. Есть еще замечательная функция Ду (на Мисте автор Гений 1С) ,куда можно передать переменные. Но код там нужно писать от руки , что непросто для большого куска. А если использовать буфер обмена Windows? То получится функция ДуБуфер, где код берем из буфера, описываем и присваиваем ему переменные и на выходе - результат выполнения измененного кода. Иными словами порядок работы таков

1) в отладчике поставили точку останова после отлаживаемого кода, т.е. видим результат его выполнения

2) изменили кода

3) скопировали код в буфер

4) в строке описали через параметры функции все необходимые входящие переменные, которые используются в отлаживаемом коде но назначаются не в нем (пример в функции)

5) так же в строке описали через параметры функции все исходящие переменные, результат которых мы хотим увидеть

6) вызвали функцию ДуБуфер - и увидели на выходе результат выполнения изменного кода

7) если результат не устраивает- повторили пункты 2,3,4,5,6

Разукрашка кода //infostart.ru/public/19856/

 


//вызов на картинке

// ДуБуфер(,"п0=вых;","инит=п1;","",инит)[0]

//на рисунке "пример вызова для части кода" пример вызова с несколькими параметрами
//модульрпчв.ВО().ДуБуфер(,"п0=вых;п1=сч;","инит=п2;выборка=п3;","","",инит,выборка)[0]

 

   
   Функция ДУбуфер(ВернутьМассив=неопределено, СписокПараметрыИсходящие,СписокПараметрыВходящие="",П0=Неопределено, П1=Неопределено,  П2=Неопределено, П3=Неопределено, П4=Неопределено,П5=Неопределено)  Экспорт

   
Код=GetClip();
   
мас= Новый Массив(6);

    Если
найти(код,"дубуфер")<>0 Тогда мас[0]="зацикленная ссылка в коде"; возврат мас; КонецЕсли;
   
исходныйКод=Код;
   
исполняемыйКод=СписокПараметрыВходящие+символы.ПС+Код+символы.ПС+СписокПараметрыИсходящие;
    Попытка
        выполнить
исполняемыйКод;
    Исключение
       
оО=описаниеОшибки();
       
мас[0]=оО+символы.пс+исполняемыйКод; возврат мас;
    КонецПопытки;

    Если
П0<>Неопределено Тогда мас[0]=п0; КонецЕсли;
    Если
П1<>Неопределено Тогда мас[1]=п1; КонецЕсли;
    Если
П2<>Неопределено Тогда мас[2]=п2; КонецЕсли;
    Если
П3<>Неопределено Тогда мас[3]=п3; КонецЕсли;
    Если
П4<>Неопределено Тогда мас[4]=п4; КонецЕсли;
    Если
П5<>Неопределено Тогда мас[5]=п5; КонецЕсли;
    Если
ВернутьМассив<>неопределено Тогда ВернутьМассив=мас; КонецЕсли;
    Возврат
мас;
КонецФункции
Функция  
GetClip() Экспорт
   
strTXT="";
   
objHTM=Новый COMОбъект("htmlfile");
   
strTXT=строка(objHTM.ParentWindow.ClipboardData.GetData("text"));
    возврат 
strTXT
КонецФункции

 

См. также

Вставляем картинку из буфера обмена (платформа 1С 8.3.24)

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    2655    0    John_d    8    

53

GUID в 1С 8.3 - как с ними быть

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    4590    atdonya    22    

45

Переоткрытие внешних обработок

Универсальные функции Платформа 1С v8.3 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    3950    ke.92@mail.ru    16    

61

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    8799    YA_418728146    6    

141

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2069    21    progmaster    7    

3

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    16139    133    sapervodichka    112    

129

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    7241    quazare    8    

109
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 7136 05.03.12 19:54 Сейчас в теме
2. antares_of 11 07.03.12 11:36 Сейчас в теме
Отладка без перезагрузки клиента, это нужная вещь, попробуем)
3. Necytij 07.03.12 21:34 Сейчас в теме
Интересная очень идея. И очень бы хотелось иметь такой инструмент, чтобы можно было отладку кода проводить "онлайн", как в интерпретаторах, но, честно говоря, мне кажется это подойдет только для мелкой рихтовки кода, когда сомневаешься в небольшой части кода, а так описывать даже 15-20 входящих переменных слишком накладно. Это ладно, если еще сам список во время отладки меняться не будет - 1 раз написал список входящих и копируешь опять же хоть из текстового редактора, но в полевых условиях собирать такую строку не очень удобно.
имхо, широкого применения обработка иметь не может. Но большое спасибо топикстартеру за ссылку на f ДУ... почитал, обогатился.
4. vec435 15 11.03.12 15:52 Сейчас в теме
(3) Necytij, действительно описывать множество переменных неудобно и отлаживаться можно частями, прописывая переменные в каждую часть. но 1)код-описание !временно! можно писать прямо в модуле 2) выложу обработку, где будет выгружаться код и переменные . через обработку будет удобнее отлаживать большие куски
5. vec435 15 11.03.12 16:13 Сейчас в теме
(3) Necytij, да и описывать нужно либо те переменные которые хочешь получить на выходе либо те которых нет в изменном коде .зачем 15-20 переменных?
6. genayo 12.03.12 14:42 Сейчас в теме
Интересно, будем посмотреть...
7. tormozit 7136 12.03.12 16:38 Сейчас в теме
Тем, кому идея действительно интересна и кто не боится объединить конфу с другой, рекомендую ИР http://infostart.ru/public/15126/
Там есть мощная консоль кода, которую можно вызывать во время отладки функциями Оп, Опс и др.
11. vec435 15 14.03.12 10:25 Сейчас в теме
(7) tormozit, В авторитете платформы ИР нет сомнений. Вещь необходимая любому разработчику. Но ,насколько я понял, передать в функции ОП,ОПС можно только определенный код, а не код из буфера.
12. tormozit 7136 14.03.12 12:45 Сейчас в теме
(11) ИР не платформа, а подсистема. По поводу автоматической вставки из буфера в случае открытия консоли кода (Оп, Опс и т.д.) кажется что это не такая уж и полезная "фича". Нажать CTRL+V в открывшемся окне большого труда не составляет. В твоей ДуБуфер эта "фича" действительно полезна, т.к. все делается неинтерактивно. В ИР есть еще Ду, но она скромнее, т.к. не позволяет подменять имена. Надо будет ее "проапгрейдить" тоже.
8. galinka1c8 12.03.12 22:03 Сейчас в теме
Интересная идея. Для отладки пригодится. Очень часто приходится менять что-то по мелочи, а не большие участки кода.
9. JER_MARK 13.03.12 06:48 Сейчас в теме
Речь идет про 8-ку. Насколько я знаю, если вы не меняли структуру базы (новый справочник, реквизит и т.д.), то изменив кусочек кода, можно обновиться динамически не выгоняя пользователей.
10. vec435 15 13.03.12 08:13 Сейчас в теме
(9) JER_MARK, можно обновиться динамически, но с функцией можно проверить изменный вариант тут же не обновляясь
13. tormozit 7136 27.04.12 09:17 Сейчас в теме
В ИР добавлена функция режима отладки Поп()

открытие фрагмента программы в консоли кода - Поп(ТекстПрограммы=), используется путем копирования в буфер обмена целостного фрагмента программы и вычисления "Вычислить(Поп())"

позволяет осуществить предварительное многократное выполнение кода с возможностью внесения изменений на ходу

http://www.youtube.com/watch?feature=player_embedded&v=btGHeiUAWEY#!
Оставьте свое сообщение