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







Обработка "Консоль выполнения произвольных текстов модуля" предназначена для разработки шаблонов, отладки, визуального конструирования текстов модулей системы 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 не будет опубликован. Обязательные поля помечены *