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

05.07.13

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Авто обновление конфигурации.cf
.cf 58,71Kb
84
84 Скачать (1 SM) Купить за 1 850 руб.
Прмер работы
.wmv 9,22Mb
5
5 Скачать (1 SM) Купить за 1 850 руб.

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

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

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 пункт работает, но использую редко и требует навыков.

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

 

См. также

SALE! %

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

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

12000 10000 руб.

02.09.2020    164040    910    402    

884

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    9601    78    33    

86

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

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

22200 руб.

06.10.2023    16108    39    9    

75

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    24649    79    48    

123

SALE! %

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

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

15000 10000 руб.

10.11.2023    10938    40    27    

66

SALE! %

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

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

4800 3840 руб.

14.01.2013    189232    1146    0    

916

SALE! %

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 15000 руб.

07.10.2021    17744    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

2220 руб.

21.02.2023    8202    8    38    

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

P.S. Почитал внимательнее описание, тут пожалуй более автоматизировано.
Но тогда вопрос, что будет если в типовой в функцию/процедуру добавят новых аргументов или произвольный код, к которому привязались изменится? Есть ли диагностика какая-нибудь этого?
5. AlexanderKai 09.07.13 13:52 Сейчас в теме
Кстати как модули по-процедурно объединять? У меня только весь модуль. Где-то галочку надо поставить?
7. zqzq 25 10.07.13 09:55 Сейчас в теме
(5) AlexanderKai,
в окне сравнения справа есть значек лупа напротив модулей - нажимаешь, и можешь выбирать для каждой процедуры - объединять(с приоритетом...)/замещать/не трогать(снять галку).
9. AlexanderKai 26.07.13 11:48 Сейчас в теме
(7) zqzq,
Что-то я никак не вгоняю, можно подробней и со скриншотами?
10. tango 546 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 52 19.07.13 03:45 Сейчас в теме
Платформа 8.3.3.641 Конфа КАМИН:Зарплата для бизнеса 4.0.
Конфигуратор выгружает в файлы все, не дает выбирать. Загружает тоже, когда есть все.
У форм расширение *.form кодировка UTF-8. Поправил в обработке записи. Вставил свой код в модуль формы. После загрузки выругалось на файлы хранилищ (6 ошибок). При попытке открыть форму выкидывает из конфигуратора. Подскажите, это у меня руки без пальцев или защита у КАМИНа безобразничает?
Оставьте свое сообщение