Помощник создания внешних печатных форм


Простенькая обработка генерирует набросок кода модуля объекта внешней печатной формы. Прописывает переменные, соответствующие реквизитам выбранного типа документа и присваивает им значение "СсылкаНаОбъект.[ИмяРеквизита]".

   Простенькая обработка генерирует набросок кода модуля объекта внешней печатной формы. Прописывает переменные, соответствующие реквизитам выбранного типа документа и присваивает им значение «СсылкаНаОбъект.[ИмяРеквизита]».

   Полученный текст можно скопировать в буфер, либо сохранить как текстовик.

P.S.: Обработка простая, но не бесполезная. Мне пригодилась. Может кому-то тоже поможет)
P.S.2: Это моя первая обработка, тем более публикация на инфостарте. Просьба не тратить слишком много помидоров)

32 Comments

  1. tango

    +: когда встроенную фичу вытаскиваешь вовне, надо переопределить ссылки на реквизиты, предложенная шняга немножко здесь автоматизирует, респект

    Reply
  2. dolter

    если уж так, то сделай структуру с реквизитами и заполняй запросом )

    и красивше и быстрее ))

    Reply
  3. SeiOkami

    (2) dolter, ну не быстрее точно)

    а может ли внешняя обработка создавать и сохранять внешнюю обработку?

    Reply
  4. SERJ_1CC

    Хорошая мысль, думаю можно развить ее дальше…

    Reply
  5. SeiOkami

    (4) SERJ_1CC, Да, у меня уже есть идея как)

    Reply
  6. glek

    ей богу, наверное это все таки не ЕРТ

    Reply
  7. AlexO

    Идея, лежащая на поверхности, но редко у кого хватает усидчивости её доделать вместо копи-паста из нужного места 🙂

    А вообще, 1С с её тупым и уникальным на каждый объект кодом обработки давно пора сделать вот такой помощник ввода типовых конструкций — все равно это нагромождение «нужных» инструкций в 80% случаев есть копи-паст от одной до бесконечности строк…

    Reply
  8. AlexO

    (3)

    только на диске если создавать её готовым файлом-копией уже существующей обработки и обращаться к ней как к временно созданному объекту… отсюда тормознутость и малоприменимость… а код и обработку событий объектов в 1С нельзя создать в принципе вне конфигуратора — здесь нет ООП.

    (0)

    Обработка простая, но не бесполезная.

    Да, полностью согласен, одна из немногих подобных среди горы мусора и тысяч воинственных неучей от 1С на ис в последнее время… 🙁

    Reply
  9. SeiOkami

    (8) AlexO, я ничего не копипастил, просто пришла в голову идея — сделал обработку.

    Можно в обработку поместить пустую шаблон-обработку с макетом «Параметры_Авторегистрации», реквизитом СсылкаНаОбъект составного типа, чтобы потом сохранять её. Но вот как изменить в ней модуль программно я не нашел. Неужели нет никаких способов?

    А обработка эта уже не раз меня выручала ) хотя чуть еще доделать надо

    Reply
  10. SeiOkami

    (8) AlexO, я, можно сказать, неуч сам. 1С занимаюсь третий месяц, поэтому многого не знаю =)

    Reply
  11. AlexO

    (9)

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

    в 1С — нет, это не ООП.

    Можно только в определенном месте задать инструкцию «Выполнить» и подсунуть кусок произвольного кода на выполнение.

    Сами модули править программно нельзя.

    Reply
  12. SeiOkami

    (11) AlexO, ок, а можно ли программно вытянуть текст процедуры/функции из модуля документа?

    Reply
  13. AlexO

    (10)

    я, можно сказать, неуч сам

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

    Плюс перевод всего и вся в плоскость денег.

    Reply
  14. AlexO

    (13)

    нет, нельзя.

    Это не ООП, где можно текст выгрузить, проанализировать, и снова загрузить обратно как текст 🙂

    В 8.3 1С обещает загрузку-выгрузку конфигураций в XML, и студенты уже воем воют, как здорово будет править конфигурации в XML.

    Но, думаю, там будет просто выгрузка навроде архива, без контроля и разрешения на изменение.

    Ведь даже вопрос с поверхности — как проконтролировать синтаксис такой XML, ведь надо её развернуть в среде 1С и там уже сравнивать и смотреть по объектам и правильность использования синтаксиса (что и делает конфигуратор-платформа сейчас), — сразу ставит крест на возможности правки конфигураций в текстовом виде.

    А ведь есть еще вопрос совместимости правок с исполнением кода… с предыдущим кодом.. т.е. нужен полноценный Конфигуратор на XML — вы думаете, 1С такое по плечу? 🙂

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

    Reply
  15. pumbaE

    (13) v8unpack — пример V8Reader (с расширенным анализом форм) Upd.

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

    Reply
  16. AlexO

    (15) pumbaE,

    вы V8Reader и консоль вне конфигуратора запускаете?

    В текстовом редакторе? 🙂

    Да и даже V8Reader не позволяет анализировать код, а только «подсовывать» в указанные места чуть-чуть своего 🙂

    Reply
  17. pumbaE

    (14) AlexO, при загрузке из xml структура объектов проверяется, код естественно нет, для этого есть отдельный пункт в конфигурации проверка модулей.

    Конфигурация спокойно правиться в xml перенос добавленного объекта прошел на практике удачно(с ролями пришлось только повозиться все таки merge для xml файла затруднен).

    Reply
  18. pumbaE

    (16) AlexO, в конфигураторе я из снегопата с текстом работаю.

    Анализировать код 1С — что вы имеете ввиду? Построить синтаксическое дерево ?

    Reply
  19. AlexO

    (17) pumbaE,

    для этого есть отдельный пункт в конфигурации проверка модулей.

    правильнро, потому 1С — не ООП. И не может вне своей среды гибко воспринимать что-либо извне.

    И это ставит крест на программном изменении кода в принципе.

    перенос добавленного объекта прошел на практике удачно

    это в 8.3 уже? так и сейчас копи-паст объекта из конфы в конфу проходит вполне удачно.

    Ну тогда покажите, как 1С справилась с двумя проблемами, описанными выше 🙂

    Наверное, полностью переделала Конфигуратор и поумнела? :))

    Reply
  20. pumbaE

    (19) AlexO,

    потому 1С — не ООП

    я не спорю.

    это в 8.3 уже? так и сейчас копи-паст объекта из конфы в конфу проходит вполне удачно

    да в 8.3, копи-паст на заменит merge из git .

    Ну тогда покажите, как 1С справилась с двумя проблемами, описанными выше 🙂

    можно уточнить какие, а то я потерялся.

    Reply
  21. AlexO

    (18) pumbaE,

    я из снегопата с текстом работаю

    с текстом модуля? или просто с текстом из буфера ОС в режиме редактирования модуля?

    Сделайте в Снегопате выгрузку модуля в текст, правку и загрузку обратно без привлечения конфигуратора

    (без имитации действий пользователя «открыть конфигуратор — модуль — скопировать текст — править — сохранить конфу…»)

    Да хотя о чем я.. вы разве не знаете, что это Снегопат встроен в Конфигуратор, а не конфигуратор — в Снегопат? 🙂

    Построить синтаксическое дерево ?

    ну если код в виде дерева уже есть в 1С… 🙂

    Reply
  22. AlexO

    (21) pumbaE,

    можно уточнить какие, а то я потерялся.

    вопросы из (14)

    Reply
  23. AlexO

    Грубо говоря, в Конфигураторе 1С не предусмотрены «входы-выходы» для вмешательства извне в него. И предусмотрено никогда не будет. Иначе 1С должна полностью раскаяться, посыпать голову пеплом, и начать делать (впервые за все 20 лет своего существования) нормальные серьезные продукты, а не поделки.

    Все. Этим вопрос изменения кода программно полностью закрывается.

    Reply
  24. pumbaE

    (23) AlexO, хм я плохо понимаю вашу мысль: извне редактировать теперь (8.3) можно , только инструментов нет, не считая текстового редактора, т.е. я имею ввиду — выгрузили файлы конфигурации, исправили, загрузили (compile 🙂 ) , загрузка не прошла значит ошиблись где-то, редактируем правильно, загружаем — чем не редактирование извне ?

    Reply
  25. AlexO

    (24) pumbaE,

    выгрузили файлы конфигурации, исправили, загрузили

    так и как собираетесь проверять корректность? Запускать каждый раз 1С-предприятие-конфигуратор, притом, что вы абсолютно не видите, что где и зачем меняете? 🙂 так тогда разработка станет на два порядока дольше 🙂

    загрузка не прошла значит ошиблись где-то, редактируем правильно

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

    Т.е. сделать-то можете, но это будет уже не работа с 1С 🙂

    Reply
  26. AlexO

    (24) pumbaE,

    только инструментов нет

    и не будет, т.к. никто не напишет аналоог конфигуратора (платформы) 1С для разбора и работы с XML-конфигурацией (да плюс еще и данные же надо как-то подключать — иначе смысл такой конфы, не за ради же самой себя она пишется?), а сама 1С никогда не пустит никого в свои исходники. А без послабления «входа» в исходники — вмешательство в код платформы (и конфигуратора) невозможно.

    Reply
  27. pumbaE

    (25) AlexO, Я вижу где и что меняю. Почему вы считаете, что нельзя увидеть это модуль документа или модуль формы документа N я не знаю название говорит вроде само за себя Document.ФиксацияБюджетов.ObjectModule.txt

    Как же тогда люди на c пишут программы в hex редакторе работают?

    (26) Ну знаю по крайней мере одного человека, который пишет синтаксический анализ кода 1С и планирует плагин для emacs сделать 🙂

    Reply
  28. AlexO

    (27) pumbaE,

    Document.ФиксацияБюджетов.ObjectModule.txt

    ну так я и байт один могу поменять в палатформе, и тоже ничего не будет 🙂

    Но это если я знаю, что это именно тот самый байт. А вот чтобы это узнать — потребуется месяц на изучение.

    А потом, чтобы узнать, где же другой байт находится — еще месяц…

    Ну знаю по крайней мере одного человека

    ну удачи ему после 10 лет работ над этим не получить в конце иск от 1С о нарушении прав 🙂

    Reply
  29. AlexO

    (27) pumbaE, да что я вам рассказываю.. да предложите хотя бы тому же Сереге Осипову вот та вот в тексте разрабатывать конфы — узнаете тысячу способов, как далеко можно ходить, и много нового о себе (в том числе, и как о программисте) :))

    (для тех, кто не знает — Сергей у нас на данный момент убежденный апологет и проповедник «RAD-разработка от 1С foreve»).

    Reply
  30. pumbaE

    (28) AlexO, Не понимаю, я вам про текстовый файл, вы мне про байт в платформе.

    (29) о себе всегда интересно узнать из чужих уст.

    p.s.: Я вас не понимаю. Переходите на персоналии. Послать к Осипову, по моему мнению — это тоже самое что и послать на х… Давайте заканчивать наш спор неизвестно о чем.

    Reply
  31. AlexO

    (30) pumbaE,

    Послать к Осипову, это послать…

    почему же так сразу? ну Евгению Люлюк предложите так конфы писать, что ли…

    Я предложил обратится к Осипову по этому вопросу только потому, что я по поводу написания конфигураций в текстовом редакторе не так эмоционален, ибо даже и не собираюсь так делать 🙂

    я вам про текстовый файл

    вот именно, что ТЕКСТОВЫЙ РЕДАКТОР, написание конфигурации в котором чуть проще, чем на байтах 🙂

    в конфигураторе я из снегопата

    кстати, я предложил Орефкову не жадничать, и продать мне Снегопат дешевше — не уступил 🙂

    Так что Снегопаты-телепаты — оно все и без них нормально пишется…. в рамках бардака 1С, естественно… 🙂

    Reply
  32. SeiOkami

    Выпустил новую версию http://infostart.ru/public/155206/

    По навороченей будет) теперь еще и сама создает файл обработки с кодом модуля, макетом и параметрами_авторегистрации =)

    Reply

Leave a Comment

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