Авто добавление процедур (кода) в типовые конфигурации (парсер)

05.07.13

Разработка - Инструментарий разработчика

Автоматическое добавление процедур и функции, а так же любого кода в типовые конфигурации (парсер).

Скачать исходный код

Наименование Файл Версия Размер
Авто обновление конфигурации.cf
.cf 58,71Kb
83
.cf 58,71Kb 83 Скачать
Прмер работы
.wmv 9,22Mb
4
.wmv 9,22Mb 4 Скачать

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

В типовых конфигурациях стараюсь придерживаться следующих правил:

1. Писать свой отчеты и обработки (возможно на базе типовых), не трогая типовых.

2. Печатные формы документов, только подключаемые.

3. Добавление элементов форм, только программное.

4. Писать свой "удобные документы", которые либо делают нужные движение по регистрам, либо создают типовые документы, для нужных движений.

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

Выложил конфигурацию "Авто обновление конфигурации.cf", в ней только один справочник "Авто обновление конфигурации", он только и нужен. Этот справочник можно скопировать и вставить в любую конфигурацию, чтобы работать с ним.

Принцип работы:

1. Выгрузить файлы конфигурации из типовой конфигурации. Можно и из рабочей базы.

2. Заполнить вашими процедурами справочник "Авто обновление конфигурации", сделать из него выгрузку.

3. Загрузить файлы конфигурации, в рабочую базу.

Что умеет это парсер:

  1. Добавлять свои процедуры и функции
  2. Добавлять предопределенные процедуры, если их нет в форме
  3. Добавлять в существующие процедуры свой код, в начало или конец. Если надо создать код в начале и в конце одновременно, то следует это делать двумя строками.
  4. Добавлять код в середину процедуры, нужно привязаться к уникальному коду и указать процедуру. При этом обязательно ставить флаг «Вставить в любой текст».
  5. Добавлять код в начало раздела, например переменные
  6. Добавлять код в конец раздела, раздел основной программы
  7. Удалять  ненужный код, вставляя на его место свой. При этом обязательно ставить флаг «Вставить в любой текст».
  8. Вернуть модуль в исходное состояние, целиком копируется типовой модуль.
  9. Копировать процедуры (строки) из другого элемента справочника «Авто обновление конфигурации». Я у себя создал определенны шаблоны и копирую их почти в каждый новый элемент «Авто обновление конфигурации».
  10. Функция «Сдвиг», используется для вставки кода «В любое место», но со сдвигом.
  11. Текст сопоставления (текст который будет встречаться до или после текущего), используется для сложных вставок. Когда нужно привязать не к одному уникальному коду внутри процедуры, а к нескольким.

 

Инструкция:

  1. Необходимо заполнить параметры, разовая работа:

1.1   Путь к каталогу файлов конфигурации – Путь к текстам модулей типовой конфигурации

1.2   Путь к каталогу файлов результата – Путь к обработанным результатам, должен отличаться от 1.1

1.3   Текст авто комментария – ваш комментарии в процедурах, до и после изменения, например //Код Емельянова А.

  1. Добавление документа. Встаем на группу «Документы», добавляем группы, документ, например «ABCКлассификацияПокупателей», можете писать имена сами (как в конфигураторе без пробелов), можете выбрать из выпадающего списка.
  2. Добавление модулей. Встаем на вновь созданную группу «ABCКлассификацияПокупателей», добавляем элемент справочника  «Авто обновление конфигурации». Записываем имя модуля, имя модуля должно быть таким же как создает конфигуратор после «Выгрузить файлы конфигурации», для этого есть конструктор, кнопка «Конструктор имени модуля». Там нужно выбрать только реквизит «Форма».
  3. Заполняем строки элемента. Каждая строка это процедура или код в процедуру.
  4. Галочка «Выгружать», отвечает за то выгружать код или нет.
  5. Галочка «Никогда не выгружать», ставиться например в шаблонах. Она нужна потому-что есть функция которая включает во всех элементах «Выгружать».
  6. Галочка «Создать файл в случае отсутствия».  Например есть справочник «АдресныеСокращения» и у него нет формы элементы, а хотите туда код написать. В данный момент для него конфигуратор модуля не выгружал. Ставим этот флаг, для создания этого модуля.
  7. Описание формы редактирования.

8.1   Имя процедуры\функции. Пишем имя процедуры или функции целиком, со всеми переменными, скобками, экспортом.

8.2   Текст вставки – ваш код.

8.3   Имя предопределенной процедуры – выбирается в том случае если нужно вставлять код в предопределенные процедуры форм (у меня не все описаны, но можно дописать самому), описаны только те которые использовал за 4 года работы. При выборе атвтоматом заполняется Имя процедуры\функции.

8.4   Флаг «Предопределённая процедура» - ставиться если нужно создать предопределённую процедуру которой нет.

8.5   «Вставлять текст в начало процедуры\функции» - указывает куда вставлять код в начало или в конец

8.6   «Вставить в любой текст.» - Используется для вставки кода в любое место процедуры, (код указывать в «Имя процедуры\функции») при этом надо указать в какую процедуру «Вставить в процедуру\функцию:», если этого не указать то код будет вставлен при первом совпадение.

8.7   «Удалить текст». Все как для пункта 8.6 только найденный текст будет удален.

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

 

Пример работы в видео, 10 Мб, около 8 минут, без звука.

http://youtu.be/2N941XVz04w

 

Парсер писал для себя, попросили показать. Написал его года 4 назад. Года 2 как уже внутрь кода не лезу, все что мне нужно работает.  Для простых вещей «Что умеет парсер» с 1 по 9 пункт работает без проблем. Для пункта 4 требуются определенные навыки. 10 и 11 пункт работает, но использую редко и требует навыков.

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

 

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    124944    683    389    

732

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

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

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    7771    24    6    

42

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    4284    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2280 руб.

14.01.2013    178646    1084    0    

862

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99624    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18389    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23857    16    15    

33

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28323    3    10    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CaSH_2004 372 06.07.13 03:50 Сейчас в теме
Вот это правильный способ доработки конфигураций и их обновления, всем рекомендую!
Как минимум за идею +, реализацию смотреть нет смысла т.к. сам давно такой себе сделал, может попроще, но пока устраивает.
Кстати, видео-ролик не заработал!
13jaguar; +1
2. Емельянов Алексей 158 06.07.13 08:56 Сейчас в теме
Попробую вставить заново, пока в текст добавил ссылку.
http://youtu.be/2N941XVz04w
По видео проще увидеть, что получилось, чем разбираться.
+
3. Yashazz 4723 07.07.13 13:20 Сейчас в теме
Эхма, костыли это всё. Эффективные, но костыли. Тоже себе такой делал, но имхо, должна уметь сама платформа.
+
4. zqzq 23 09.07.13 08:22 Сейчас в теме
Мне одному кажется что как минимум половина функционала уже реализовано в платформе? М модули можно по-процедурно объединять или объединять с приоритетом основной/поставщика (и добавленные функции никуда не исчезают) и многое другое.

P.S. Почитал внимательнее описание, тут пожалуй более автоматизировано.
Но тогда вопрос, что будет если в типовой в функцию/процедуру добавят новых аргументов или произвольный код, к которому привязались изменится? Есть ли диагностика какая-нибудь этого?
+
5. AlexanderKai 09.07.13 13:52 Сейчас в теме
Кстати как модули по-процедурно объединять? У меня только весь модуль. Где-то галочку надо поставить?
+
7. zqzq 23 10.07.13 09:55 Сейчас в теме
(5) AlexanderKai,
в окне сравнения справа есть значек лупа напротив модулей - нажимаешь, и можешь выбирать для каждой процедуры - объединять(с приоритетом...)/замещать/не трогать(снять галку).
+
9. AlexanderKai 26.07.13 11:48 Сейчас в теме
(7) zqzq,
Что-то я никак не вгоняю, можно подробней и со скриншотами?
+
10. tango 540 26.07.13 12:25 Сейчас в теме
(9) AlexanderKai, на какой платформе сидите?
+
11. AlexanderKai 26.07.13 13:35 Сейчас в теме
12. AlexanderKai 28.03.14 14:22 Сейчас в теме
(7) zqz,
Кое-как, но разобрался. Очень это дело неочевидно :(
+
6. BoryaMbi 25 10.07.13 04:13 Сейчас в теме
Очень интересная идея! Сам пока до реализации подобного функционала еще не дошел.
Вот бы сразу cf править для полноценной автоматизации.
+
8. dyuha 49 19.07.13 03:45 Сейчас в теме
Платформа 8.3.3.641 Конфа КАМИН:Зарплата для бизнеса 4.0.
Конфигуратор выгружает в файлы все, не дает выбирать. Загружает тоже, когда есть все.
У форм расширение *.form кодировка UTF-8. Поправил в обработке записи. Вставил свой код в модуль формы. После загрузки выругалось на файлы хранилищ (6 ошибок). При попытке открыть форму выкидывает из конфигуратора. Подскажите, это у меня руки без пальцев или защита у КАМИНа безобразничает?
+
Оставьте свое сообщение