Консоль выполнения произвольных текстов модуля







Обработка "Консоль выполнения произвольных текстов модуля" предназначена для разработки шаблонов, отладки, визуального конструирования текстов модулей системы 1С:Предприятие.

При администрировании информационной базы программисты вынуждены тратить время на создание обработок, которые будут запущены только один раз. А уже через день после использования найти их бывает сложно — часто ли мы задумываемся, прежде чем дать осмысленное название заведомо временному файлу.

Эта обработка хранит дерево текстов модулей, помогает их систематизировать, модифицировать и использовать по мере необходимости.

Для того, чтобы автоматизировать наиболее трудоемкие действия программиста, она включает вспомогательные инструменты:

  1. Визуальные конструкторы:
    1. Конструктор запроса (системный)
    2. Конструктор таблицы значений
    3. Конструктор объекта ссылочного типа универсальный
    4. Конструктор документа
    5. Конструктор справочника
    6. Конструктор набора записей регистров (любых)
  2. Дерево метаданных текущей конфигурации, механизм drag’n’drop
  3. Возможность произвольной обработки данных с использованием встроенных обработок.

Вы все еще создаете разовые обработки (для обычного приложения)? Попробуйте использовать консоль модулей — уверен, Вам понравится.

93 Comments

  1. alexer

    наверно так встали звезды, что всех на подобные разработки потянуло 🙂

    Reply ↓
  2. tomvlad

    (1) Ага, посмотрел на это http://www.infostart.ru/public/61535/ и подумал, что моя наверное не хуже, полгода уже активно используется, и, возможно многим пригодится. Аналогичных конструкторов, например, ни у кого не видел.

    Reply ↓
  3. alexer

    может в скором будущем воще от конфигуратора откажемся 😀

    Reply ↓
  4. tomvlad

    (3) А и правда, зачем для написания какой-нибудь ерундовой обработки лезть в конфигуратор?

    Reply ↓
  5. Арчибальд

    (0) Ага, с одноразовыми обработками — беда 🙁

    Мне для обучения/экспериментирования — самое то 😎

    Reply ↓
  6. tomvlad

    (5) Буду рад, если пригодится. Файл с примером лежит отдельно (если нужно).

    Reply ↓
  7. WiseSnake

    (2) Да 100 лет уже тут лежит 🙂

    Ну Ваши наверно подобротей будут сделаны, хотя я к своей привык, юзаю активно уже больше года…

    Reply ↓
  8. tomvlad

    (7) Цели у разработок разные. Тут — универсальный комбайн, здесь — простота использования и помощь в написании за счет применения конструкторов. Ни о каких отчетах в принципе речи не идет, если не формировать их программно из встроенного языка, но это наверное было бы уже извращение.

    Reply ↓
  9. NDM

    😉 Нужно переименовать функции и процедуры которые уже есть в типовых, иначе:

    ПриОткрытии:

    {ВнешняяОбработка.КонсольТекстовМодулей(527,9)}: Процедура или функция с указанным именем уже определена (ПолучитьОписаниеТиповСтроки)

    Функция <<?>>ПолучитьОписаниеТиповСтроки(ДлинаСтроки) Экспорт

    {ВнешняяОбработка.КонсольТекстовМодулей(545,9)}: Процедура или функция с указанным именем уже определена (ПолучитьОписаниеТиповЧисла)

    Функция <<?>>ПолучитьОписаниеТиповЧисла(Разрядность,РазрядностьДробнойЧасти=0) Экспорт

    {ВнешняяОбработка.КонсольТекстовМодулей(559,9)}: Процедура или функция с указанным именем уже определена (ПолучитьОписаниеТиповДаты)

    Функция <<?>>ПолучитьОписаниеТиповДаты(ЧастиДаты) Экспорт

    Reply ↓
  10. tomvlad

    (9) Странно, нигде в актуальных типовых ЗУП,БП,КА,УПП,РТ не нашел такую функцию глобальных модулей. Что за конфигурация, релиз?

    Reply ↓
  11. Mortal

    Скачал. «+». Пока не смотрел (не успел), но, имхо, будет удобно для тренировок: сравнивать модули обработок и т.д. Спасибо.

    Reply ↓
  12. tomvlad

    Всем пардон, вкралась досадная ошибка, приводившая к невозможности сформировать новый файл шаблонов. Ошибку исправил, обновил.

    Reply ↓
  13. marsohod

    После перепроведения документов на закладке «Результат выполнения» она присоединила снизу еще кусок формы с «Доступные обработки» и «Выбранные обработки». Выбираю «Отменить проведение документов» и получаю предупреждение «Данная обработка недоступна для типа <Документы>».

    Что бы это значило? 😮

    Reply ↓
  14. tomvlad

    (13) Исправил

    Reply ↓
  15. tomvlad

    Может кто-то выскажется о работе конструкторов?

    Reply ↓
  16. e.kogan

    Просьба всё-таки переформулировать пункты «Конструктор документа» и «Конструктор справочника» ❓ ❓ ❓ Я-то уж разогналась, что кто-то нашёл, как из предприятия конфигурацию на лету менять… 😀

    Reply ↓
  17. tomvlad

    (16) И на что переформулировать? «Конструктор формирования кода создания нового документа / поиска существующего»? Пусть уж лучше так остается.

    Reply ↓
  18. Ivon

    Поставил плюс, но есть некоторые НО:

    1) иногда при составлении кода обработка впихивает в код процедуры и функции, которых нет в конфигурации, такие как ПолучитьОписаниеТиповСтроки и т.п.;

    2) вот если бы еще реализовать точки останова — тогда было бы самое оно. Просто написать код и посмотреть, как он выполняется — конечно хорошо, но когда результат не тот, который ожидался — требуется отладка промежуточных итогов. А их нет.

    Reply ↓
  19. D!m

    Малаца

    Reply ↓
  20. e.kogan

    (17) Ну хоть вставить слово «экземпляра» 😎

    Reply ↓
  21. direktorSan

    Неплохая разработка. Нашел много хороших идей!

    Надо будет применить их в своей. 😉

    Reply ↓
  22. den_vladimir

    Чета я походу не в теме как из режима предприятия выполнять модули! Буду смотреть! +1!

    Reply ↓
  23. Русский

    Отличная обработка 🙂

    Reply ↓
  24. mini_root

    Посмотрел, плюсую

    Конфигуратор не заменит — нету отладки, нельзя модифицировать метаданные и пр. Но для мелких вещей пойдет: прототипирование, тестирование…. Кстати, на основе этой идеи можно сделать систему юнит тестов для эски….

    Ты там где в коде вызывается «Выполнить» добавь еще набор функций типа assert* (ЭтоИстина, ЭтоРавно, ЭтоНеПусто), если условие не выполняется — выбрасывается исключение.

    Пример:

    Функция ЭтоИстина(<результат некоего выражения типа boolean>, <название проверки>)

    ….

    КонецФункции

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

    И собственно система внешних юнит тестов готова, причем конфигурацию менять не надо — все будет делаться внешними средствами.

    Еще можно переработать систему вставки готового кода для типовых случаев в расширяемую макросистему.

    Reply ↓
  25. mini_root

    (24) Нашел шаблоны, вопрос с макросистемой снят 🙂

    Reply ↓
  26. tomvlad

    (25) Шаблоны пока не работают так как нужно, буду дорабатывать.

    Reply ↓
  27. mini_root

    (26) Не возражаешь, если я чуть-чуть ее доработаю, в плане использования для тестирования?

    Reply ↓
  28. tomvlad

    (27) Да ради бога, вот если бы еще доработал контекстную подсказку и шаблоны …. А то пока совершенно нет времени ими заниматься.

    Reply ↓
  29. Трактор

    Прикольно. Практического применения пока не вижу, подумаю.

    Reply ↓
  30. tomvlad

    (29) Пример практического применения:

    1. Имелось около сотни различных мелких обработок для различных типовых (и не очень конфигураций). Т.к. конфигурации периодически изменялись, обновлялись обработки также было необходимо держать в актуальном состоянии. Иногда лезь в конфигуратор приходилось из-за изменения вызовов общих модулей или разной прочей ерунды. В результате систематизации имеем несколько файлов модулей для каждой конфигурации для упорядоченного хранения нужных текстов + возможность изменения их на лету.

    2. Составление текстов — просто ли вспомнить имя нужного реквизита при составлении кода? А дерево метаданных тут же. 🙂

    3. Просто ли создать документ / справочник? Вспомнить названия реквизитов, табличных частей? Конструктор облегчит Вам жизнь. Функции, вызываемые с помощью конструктора успешно используются более 2-лет в нашей коммерческой разработке «Помощник перехода на использование подсистем расчета заработной платы и кадрового учета в прикладных решениях фирмы «1С» на технологической платформе «1С:Предприятие 8» с конфигураций «Камин:Расчет заработной платы (все версии)»». Весь процесс создания документа (справочника) сводится к созданию структуры полей поиска данного объекта, структуры реквизитов и табличных частей, причем большую часть работы Конструктор документа (Конструктор справочника) сделает за Вас.

    P.S. Достаточно?

    Reply ↓
  31. mini_root

    (28) http://slil.ru/28260688 чуть-чуть исправленная версия

    Добавлены функции-assert’ы (ЭтоИстина, ЭтоРавно). Добавлена возможность задавать код, который будет выполняться перед выполнением основного кода, и после него (может использоваться например, для создания, удаления тестовых записей). Все сохраняется/загружается.

    Reply ↓
  32. Трактор

    >> Достаточно?

    Достаточно.

    Тут мне вспоминаются примочки к 7.7. Народ пользовал их и пищал от них. Я как-то обходился штатными средствами. Здесь ситуация похожа.

    Конструктор таблицы значений да, полезен. Я всего дважды создавал тз для помещения во временную таблицу, но эти два раза были тоскливыми. Наверное в следующий раз воспользуюсь твоей обработкой.

    Обработка прикольная. Но для начала её использования нужно отойти от некоторых привычек. И не факт что скорость сильно увеличится. Для меня, например, заполнение перечня реквизитов документов не самая сложная задача. Труднее понять чем их заполнять. Откуда брать данные. Составить запрос, да так чтобы конструктором запроса не покоцать комментарии.

    Буду размышлять о том как в неё перетащить свои одноразовые обработки. И много ли их у меня.

    Reply ↓
  33. mini_root

    (32) Чегой-то я не подумал, тут же новая система с метриками и бонусами планируется… В общем, кто скачает исправленную версию со slil.ru — скачайте также оригинальную с этой страницы.

    Reply ↓
  34. mini_root

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

    Reply ↓
  35. stasyan

    Писал себе подобную вещь, иногда пользуюсь. А вот твою, на первый взгляд, с более профессиональным подходом написанную сейчас посмотрю. Люблю такие вещи, спасибо!

    Reply ↓
  36. stasyan

    В «Управление торговлей» падает на имена процедур общего модуля при открытии:

    {ВнешняяОбработка.КонсольТекстовМодулей(527,9)}: Процедура или функция с указанным именем уже определена (ПолучитьОписаниеТиповСтроки)

    Функция <<?>>ПолучитьОписаниеТиповСтроки(ДлинаСтроки) Экспорт

    {ВнешняяОбработка.КонсольТекстовМодулей(527,9)}: Процедура или функция с указанным именем уже определена (ПолучитьОписаниеТиповСтроки)

    Функция <<?>>ПолучитьОписаниеТиповСтроки(ДлинаСтроки) Экспорт

    {ВнешняяОбработка.КонсольТекстовМодулей(527,9)}: Процедура или функция с указанным именем уже определена (ПолучитьОписаниеТиповСтроки)

    Функция <<?>>ПолучитьОписаниеТиповСтроки(ДлинаСтроки) Экспорт

    Поправь, пожалуйста!

    Reply ↓
  37. chang

    без телепата скучно 🙁

    Reply ↓
  38. tomvlad

    (38) Так напиши, я разве против. У tormozit’a есть замечательная контекстная подсказка. Остается попросить его разрешения использовать. Прикрутишь, выложишь — тебе столько народа спасибо скажет…

    Reply ↓
  39. chang

    без отладки грустно 🙁

    Reply ↓
  40. tomvlad

    (40) Суровым челябинским одинэсникам отладчик не нужен 🙂

    Reply ↓
  41. chang

    (39) я не хаю, вы молодец! Но вижу смысл применения только один: поднялся в кабинет к глав.буху на пять этажей по лестнице, она мне показывает ошибки в программе, ну а пофигуратор забыл выключить у себя, а проверить надо.. эх, если бы еще он внешние обработки править мог! 🙂

    Reply ↓
  42. Арчибальд

    (41) Чуточку флуда: вот ни разу отладчиком не пользовался за 40 лет 😀

    Reply ↓
  43. Трактор

    (43) Ого! Служебными сообщениями задолбаешься отлаживать.

    Reply ↓
  44. Арчибальд

    (44) а что делать, если первые 20 лет их просто не было. 😎

    Reply ↓
  45. NDM

    (9) конфа на базе УПП для Украины (старая)

    Reply ↓
  46. akama2001

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

    Reply ↓
  47. AntiL

    Обработка написано добро…

    Очень нехватает функции подбора кода при вводе кода по комбинации клавиш «Ctrl+ПРОБЕЛ»

    Reply ↓
  48. NDM

    Не все «Классы» метаданных корректно занесены, см.

    Reply ↓
  49. tormozit

    Мое разрешение на подсказку не нужно. Я ее же и писал для всех. Вот только ее легко подключить можно только в рамках конфигурации, но не внешней обработки.

    Reply ↓
  50. Tsprogrammist1

    Ни мог не поставить + 😀

    Reply ↓
  51. liouria

    Не работает цикл «Для счетчик = 0 ПО … » — не происходит изменения значения счетчика.

    Тот же самый кусок кода в составе конфигурации — работает без проблем.

    Reply ↓
  52. tomvlad

    (52) Юрий, у Вас ошибка в коде. Приведите фрагмент целиком.

    Reply ↓
  53. Stepa86

    (0) А почему шаблоны текста не *.st используются, а вшитые в обработку? или используются???

    Reply ↓
  54. Alex_Smolensky

    отличная штука, спасибо!

    Reply ↓
  55. artbear

    (0) Опиши последние изменения, плиз.

    Вижу, что сейчас версия 2.0.0.18 от 30.12.09, а описана только 2.0.0.15

    Reply ↓
  56. artbear

    (35) Что-нибудь получилось с новой версией?

    Reply ↓
  57. artbear

    (0) В связи с обращением к запросам и алгоритмам невозможно давать произвольное имя запроса или алгоритма, разрешено только имя в формате идентификатора 1С.

    ИМХО либо запрети создавать «плохие» имени, либо в доке/справке/подсказке опиши подобное поведение

    Reply ↓
  58. artbear

    (0) Баг — при копировании в дереве текстов модулей не копируются алгоритмы и запросы 🙁

    Текст и параметры копируются, а остальное нет.

    Совсем не гуд.

    версия 2.0.0.18

    Reply ↓
  59. artbear

    (0) Еще баг — действия по нажатию кнопки Выполнить сверху рядом с кнопкой Параметры отличаются от действия F7 или контекстное меню на имени текста и выборе Выполнить.

    По Выполнить — алгоритмы и запросы работают, а по Ф7 нет 🙁 — выдаются синтаксические ошибки.

    Reply ↓
  60. artbear
    Reply ↓
  61. artbear

    (59+) Еще очень серьезный баг: иногда алгоритмы и запросы просто пропадают, в основном это происходит после простых переключений/активаций разных строк в дереве текстов 🙁

    Reply ↓
  62. mini_root

    (57) Не, я щас кроме основной работы занимаюсь время от времени только этим

    http://code.google.com/p/one-c-connectors/

    Reply ↓
  63. tomvlad

    (58)(59)(60)(62) Исправил

    Reply ↓
  64. tomvlad

    (56) В релизах старше 2.0.0.15 изменения касаются только исправления выявленных ошибок.

    Reply ↓
  65. artbear

    (64) Просьба писать данные по текущему релизу — хотя бы версию и дату.

    ИМХО Для этого идеально подходит блог 🙂

    Reply ↓
  66. artbear

    (65) По (61) что можешь сказать?

    Не хочешь превратить свою консоль в еще и в инструмент юнит-тестирования 🙂 ?

    Reply ↓
  67. artbear

    (64) Спасибо.

    Но еще ошибки есть:

    при переносе элемента в другую группу у этого элемента исчезают и алгоритмы, и запросы 🙁

    Поправишь?

    Reply ↓
  68. tomvlad

    (67) Исправил

    (68) Нет, пока не хочу, да и времени нет

    Reply ↓
  69. Istur

    Если зайти в конструктор запроса, то выдает ошибку. При этом запрос выполняется, с этим проблем нет. В режиме конфигуратора ошибки нет.

    В принципе эта ошибка не существенна.

    Reply ↓
  70. feel063

    Ещё бы что-нибудь подобное для управляемых форм))

    Reply ↓
  71. pmtvv

    молодец, хорошая обработка

    Reply ↓
  72. Поручик

    (72) Выполнение кода в тонком клиенте http://infostart.ru/public/78340/

    Reply ↓
  73. unknown181538

    Спасибо!

    Reply ↓
  74. yavedmin

    Спасибо! Очень понравилась.

    Reply ↓
  75. AChelentano

    Спасибо. Пользуюсь постоянно.

    Статус бар допишите только пожалуйста. Я у себя сделал. Другим тоже может пригодиться.

    Reply ↓
  76. kirillsas

    После перепроведения документов на закладке «Результат выполнения» она присоединила снизу еще кусок формы с «Доступные обработки» и «Выбранные обработки». Выбираю «Отменить проведение документов» и получаю предупреждение «Данная обработка недоступна для типа <Документы>».

    Что бы это значило?

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

    Текст и параметры копируются, а остальное нет.

    Совсем не гуд.

    версия 2.0.0.18

    Reply ↓
  77. МимохожийОднако

    (77) AChelentano, сбрось сюда свой вариант. Может, кому пригодится.

    Reply ↓
  78. AlexKoso

    судя по скринам — чтото феерическое. Автор берегись, я выхожу на путь тестирования 🙂

    Reply ↓
  79. tormozit

    Подписался

    Reply ↓
  80. andru_dv

    Попробую в деле этот инструмент. По результатам отпишусь.

    Reply ↓
  81. correct_coding

    (81) +1

    Reply ↓
  82. angy

    Обработка прикольная , только в том плане что конфиг не надо открывать а все остальное можно написать в обычной консоле запросов + куча багов, идея хорошая, когда быстро нужно чего то исправить а в остальном пользы мне кажется мало, это лично мое мнение. Работа проделана колосальная автору респект…

    Reply ↓
  83. fomix

    Добрый день! Скачал для 8.1 и 8.2. А есть ли разница в них?!

    Пока пробую для 8.2 на толстом клиенте. Запустил конструктор объекта ссылочного типа и на тебе:

    1. галочки на всех закладках ставятся, но не снимаются.

    2. так и не понял как создается текст модуля заполнения объекта, поиска реквизитов и т.п.

    3. не заполняются реквизиты табличных частей.

    Это что — бета версия или конструктор доделай сам?! Однаааако….

    Reply ↓
  84. tehas

    однозначно плюс, вещь мощная =)

    Reply ↓
  85. ksvd

    Вот спасибо! Пригодилась для выполнения кода по отключению от интернет-поддержки при запуске Бухгалтерии 2.0

    Reply ↓
  86. frc

    (0) не понял — это для создания кода (таблицы-справочники), или для выполнения кода?

    Reply ↓
  87. alonehobo

    Добавил в консоль контекстную подсказку.

    Reply ↓
  88. Vix

    полезная штука! плюсую

    Reply ↓
  89. alext88

    хорошая вещь

    Reply ↓
  90. alex_sear

    спасибо tomvlad, alonehobo

    Reply ↓
  91. ShantinTD

    странно, куда потерял сие чудо? скачивал же уже! За хорошую вещь не жалко еще один $m отдать.

    Reply ↓
  92. ChessCat

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

    Например стандартная задача.

    Есть определенный регистр. Регистраторы сделали по нему движения.

    Необходимо получить движения по регистру и что то в них поменять без перепроведения документов.

    С помощью этой консоли на обычных формах подобная задача решалась очень легко написанием куска кода и выполнением его через консоль.

    А как решить эту задачу на управляемых формах ?

    Reply ↓
  93. hiduk

    А я всегда думал, что пост фикс «(8.2)» в имени обработки означает, что она под управляемые формы:(

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *