Итак, Мы все уже в большей или меньшей степени начинаем использовать нейросети.
Некоторые крутые платные нейросети позволяют затащить в себя выгруженную в файлы конфигурацию и работать с ней.
Но во-первых это тратит гору токенов а во вторых это не всегда требуется.
Для своих задач я написал обработку которая выполняет 2 функции :
Первая функция - формирование описания объектов метаданных чтобы скормить это нейросети.
Например DeepSeek.
Выглядит вывод так :
============================================== Тип: Справочник Имя: ТранспортныеСредства Синоним: Транспортные средства ============================================== === РЕКВИЗИТЫ ОБЪЕКТА === • Модель (Модель) : СправочникСсылка.МодельТранспортногоСредства (Модель транспортного средства) • ЦветКузова (Цвет кузова) : СправочникСсылка.ЦветКузоваТранспортногоСредства (Цвет кузова транспортного средства) • ГодВыпуска (Год выпуска) : Число • ТипКПП (Тип КПП) : ПеречислениеСсылка.ТипКПП_ТС (Тип КПП транспортного средства) • ВИН (ВИН) : Строка • НомерДвигателя (Номер двигателя) : Строка • МощностьДвигателя (Мощность двигателя) : Число • ОбъемДвигателя (Объем двигателя) : Число • ГБО (Газобалонное оборудование) : Булево • НомерКузова (Номер кузова) : Строка • СвидетельствоСерия (Свидетельство серия) : Строка • СвидетельствоНомер (Свидетельство номер) : Строка • СвидетельствоДатаВыдачи (Свидетельство дата выдачи) : Дата • СвидетельствоДействителенДо (Свидетельство действителен до) : Дата • ПТССерия (ПТССерия) : Строка • ПТСНомер (ПТСНомер) : Строка • ПТСДатаВыдачи (ПТСДата выдачи) : Дата • ОСАГОСерия (ОСАГОСерия) : Строка • ОСАГОНомер (ОСАГОНомер) : Строка • ОСАГОДатаВыдачи (ОСАГОДата выдачи) : Дата • ОСАГОДействителенДо (ОСАГОДействителен до) : Дата • ОСАГОСтраховщик (ОСАГОСтраховщик) : СправочникСсылка.Страховщики (Страховщики) • ОСАГОПремияСтраховщика (ОСАГОПремия страховщика) : Число • КАСКОСерия (КАСКОСерия) : Строка • КАСКОНомер (КАСКОНомер) : Строка • КАСКОДатаВыдачи (КАСКОДата выдачи) : Дата • КАСКОДействителенДо (КАСКОДействителен до) : Дата • КАСКОСтраховщик (КАСКОСтраховщик) : СправочникСсылка.Страховщики (Страховщики) • КАСКОПремияСтраховщика (КАСКОПремия страховщика) : Число • КАСКОФраншиза (КАСКО Франшиза) : Строка • ДОСАГОДатаВыдачи (ДОСАГОДата выдачи) : Дата • ДОСАГОДействителенДо (ДОСАГОДействителен до) : Дата • ДОСАГОСтраховщик (ДОСАГОСтраховщик) : СправочникСсылка.Страховщики (Страховщики) • ДОСАГОПремияСтраховщика (ДОСАГОПремия страховщика) : Число • ДОСАГОСуммаСтрахования (ДОСАГОСумма страхования) : Число • ТехОсмотрСерияНомер (Тех осмотр серия номер) : Строка • ТехОсмотрДатаВыдачи (Тех осмотр дата выдачи) : Дата • ТехсмотрДействителенДо (Техсмотр действителен до) : Дата • ЛицТаксиСерияНомер (Лицензия такси серия номер) : Строка • ЛицТаксиДатаВыдачи (Лицензия такси дата выдачи) : Дата • ЛицТаксиДействителенДо (Лицензия такси действителен до) : Дата • Лицензиат (Лицензиат) : СправочникСсылка.Организации (Организации) • СветовойКороб (Световой короб) : ПеречислениеСсылка.КоробНаклейка (Короб наклейка) • Реклама (Наклейка) : ПеречислениеСсылка.КоробНаклейка (Короб наклейка) • РекламаДействителенДо (Реклама до) : Дата • ОценочнаяСтоимость (Оценочная стоимость) : Число • ТипТранспортногоСредства (Тип транспортного средства) : ПеречислениеСсылка.ТипыТранспортногоСредства (Типы транспортного средства) • ДетскоеКреслоМодель (Детское кресло модель) : Строка • ДетскоеКреслоКатегория (Детское кресло категория) : Число • ВладелецПарка (Владелец парка) : СправочникСсылка.Пользователи (Пользователи) • Водитель (Водитель) : СправочникСсылка.Водители (Водители) • Префикс (Префикс) : Строка • РегистрацияГрузовик_Серия (Регистрация грузовик серия) : Строка • РегистрацияГрузовик_НомерБланка (Регистрация грузовик номер бланка) : Строка • РегистрацияГрузовик_Номер (Регистрация грузовик номер) : Строка • ПолучатьШтрафы (Получать штрафы) : Булево • НормаРасходаТоплива (Норма расхода топлива) : Число • Госномер (Госномер) : Строка • Регион (Регион) : Строка • АПИ_ИД (АПИ ИД) : Строка • АПИ_СТС (АПИ СТС) : Строка • ШтрафыДатаИгнора (Штрафы дата игнора) : Дата • ВладелецТС (Владелец ТС) : СправочникСсылка.Организации (Организации) • НеИспользуется_ВидПеревозки (Не используется вид перевозки) : ПеречислениеСсылка.НеИспользуется_ВидПеревозки (Не используется вид перевозки) • НеИспользуется_ВидСообщения (Не используется вид сообщения) : ПеречислениеСсылка.НеИспользуется_ВидСообщения (Не используется вид сообщения) • ОрганВыдачиЛицензии (Орган выдачи лицензии) : СправочникСсылка.ОрганВыдачиЛицензии (Орган выдачи лицензии) • КуЭрКод (Ку эр код) : Хранилище значения • ВидПеревозки (Вид перевозки) : СправочникСсылка.ВидПеревозки (Вид перевозки) • ВидСообщения (Вид сообщения) : СправочникСсылка.ВидСообщения (Вид сообщения) • ПечФормаПоУмолчанию (Печатная форма по умолчанию) : Строка • Запись_ФГИС (Номер записи ФГИС "Такси") : Строка • Запись_ФГИС_ДатаВыдачи (Дата выдачи) : Дата • Запись_ФГИС_ДатаОкончания (Дата окончания) : Дата • ОСГОП (ОСГОП) : Строка • СсылкаДляQR (Ссылка для QR) : Строка === СТАНДАРТНЫЕ РЕКВИЗИТЫ === • ИмяПредопределенныхДанных : Строка • Предопределенный : Булево • Ссылка : СправочникСсылка.ТранспортныеСредства (Транспортные средства) • ПометкаУдаления : Булево • Наименование : Строка • Код : Строка Иерархический: Нет === ТАБЛИЧНЫЕ ЧАСТИ === (нет табличных частей)
Это позволяет просто отправить описание нужных метаданных в нейросеть и работать с этим.
Вторая функция - генератор кода создания нового элемента метаданных. Любого элемента.
Выглядит это так :
// ============ КОД СОЗДАНИЯ Справочник ТранспортныеСредства ============ // Создание нового элемента справочника ТранспортныеСредства НовыйЭлемент = Справочники.ТранспортныеСредства.СоздатьЭлемент(); // Установка наименования НовыйЭлемент.Наименование = "Новый элемент"; // Замените на нужное наименование // Установка реквизитов // Поиск Модель по коду НовыйЭлемент.Модель = Справочники.МодельТранспортногоСредства.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.Модель = Справочники.МодельТранспортногоСредства.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.Модель = Справочники.МодельТранспортногоСредства.ПолучитьСсылку(Идент); // Поиск ЦветКузова по коду НовыйЭлемент.ЦветКузова = Справочники.ЦветКузоваТранспортногоСредства.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.ЦветКузова = Справочники.ЦветКузоваТранспортногоСредства.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.ЦветКузова = Справочники.ЦветКузоваТранспортногоСредства.ПолучитьСсылку(Идент); НовыйЭлемент.ГодВыпуска = 0; // число // Выбор значения перечисления ТипКПП НовыйЭлемент.ТипКПП = Перечисления.ТипКПП_ТС.Значение1; // Альтернативный вариант - выбор через перебор: // Для каждого ЗначениеПеречисления Из Перечисления.ТипКПП_ТС.Значения Цикл // НовыйЭлемент.ТипКПП = ЗначениеПеречисления; // Прервать; // КонецЦикла; НовыйЭлемент.ВИН = "значение"; // Строка НовыйЭлемент.НомерДвигателя = "значение"; // Строка НовыйЭлемент.МощностьДвигателя = 0; // число НовыйЭлемент.ОбъемДвигателя = 0; // число НовыйЭлемент.ГБО = Истина; // Ложь; НовыйЭлемент.НомерКузова = "значение"; // Строка НовыйЭлемент.СвидетельствоСерия = "значение"; // Строка НовыйЭлемент.СвидетельствоНомер = "значение"; // Строка НовыйЭлемент.СвидетельствоДатаВыдачи = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.СвидетельствоДействителенДо = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.ПТССерия = "значение"; // Строка НовыйЭлемент.ПТСНомер = "значение"; // Строка НовыйЭлемент.ПТСДатаВыдачи = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.ОСАГОСерия = "значение"; // Строка НовыйЭлемент.ОСАГОНомер = "значение"; // Строка НовыйЭлемент.ОСАГОДатаВыдачи = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.ОСАГОДействителенДо = ТекущаяДата(); // Дата(Год, месяц, день); // Поиск ОСАГОСтраховщик по коду НовыйЭлемент.ОСАГОСтраховщик = Справочники.Страховщики.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.ОСАГОСтраховщик = Справочники.Страховщики.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.ОСАГОСтраховщик = Справочники.Страховщики.ПолучитьСсылку(Идент); НовыйЭлемент.ОСАГОПремияСтраховщика = 0; // число НовыйЭлемент.КАСКОСерия = "значение"; // Строка НовыйЭлемент.КАСКОНомер = "значение"; // Строка НовыйЭлемент.КАСКОДатаВыдачи = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.КАСКОДействителенДо = ТекущаяДата(); // Дата(Год, месяц, день); // Поиск КАСКОСтраховщик по коду НовыйЭлемент.КАСКОСтраховщик = Справочники.Страховщики.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.КАСКОСтраховщик = Справочники.Страховщики.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.КАСКОСтраховщик = Справочники.Страховщики.ПолучитьСсылку(Идент); НовыйЭлемент.КАСКОПремияСтраховщика = 0; // число НовыйЭлемент.КАСКОФраншиза = "значение"; // Строка НовыйЭлемент.ДОСАГОДатаВыдачи = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.ДОСАГОДействителенДо = ТекущаяДата(); // Дата(Год, месяц, день); // Поиск ДОСАГОСтраховщик по коду НовыйЭлемент.ДОСАГОСтраховщик = Справочники.Страховщики.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.ДОСАГОСтраховщик = Справочники.Страховщики.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.ДОСАГОСтраховщик = Справочники.Страховщики.ПолучитьСсылку(Идент); НовыйЭлемент.ДОСАГОПремияСтраховщика = 0; // число НовыйЭлемент.ДОСАГОСуммаСтрахования = 0; // число НовыйЭлемент.ТехОсмотрСерияНомер = "значение"; // Строка НовыйЭлемент.ТехОсмотрДатаВыдачи = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.ТехсмотрДействителенДо = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.ЛицТаксиСерияНомер = "значение"; // Строка НовыйЭлемент.ЛицТаксиДатаВыдачи = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.ЛицТаксиДействителенДо = ТекущаяДата(); // Дата(Год, месяц, день); // Поиск Лицензиат по коду НовыйЭлемент.Лицензиат = Справочники.Организации.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.Лицензиат = Справочники.Организации.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.Лицензиат = Справочники.Организации.ПолучитьСсылку(Идент); // Выбор значения перечисления СветовойКороб НовыйЭлемент.СветовойКороб = Перечисления.КоробНаклейка.Значение1; // Альтернативный вариант - выбор через перебор: // Для каждого ЗначениеПеречисления Из Перечисления.КоробНаклейка.Значения Цикл // НовыйЭлемент.СветовойКороб = ЗначениеПеречисления; // Прервать; // КонецЦикла; // Выбор значения перечисления Реклама НовыйЭлемент.Реклама = Перечисления.КоробНаклейка.Значение1; // Альтернативный вариант - выбор через перебор: // Для каждого ЗначениеПеречисления Из Перечисления.КоробНаклейка.Значения Цикл // НовыйЭлемент.Реклама = ЗначениеПеречисления; // Прервать; // КонецЦикла; НовыйЭлемент.РекламаДействителенДо = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.ОценочнаяСтоимость = 0; // число // Выбор значения перечисления ТипТранспортногоСредства НовыйЭлемент.ТипТранспортногоСредства = Перечисления.ТипыТранспортногоСредства.Значение1; // Альтернативный вариант - выбор через перебор: // Для каждого ЗначениеПеречисления Из Перечисления.ТипыТранспортногоСредства.Значения Цикл // НовыйЭлемент.ТипТранспортногоСредства = ЗначениеПеречисления; // Прервать; // КонецЦикла; НовыйЭлемент.ДетскоеКреслоМодель = "значение"; // Строка НовыйЭлемент.ДетскоеКреслоКатегория = 0; // число // Поиск ВладелецПарка по коду НовыйЭлемент.ВладелецПарка = Справочники.Пользователи.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.ВладелецПарка = Справочники.Пользователи.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.ВладелецПарка = Справочники.Пользователи.ПолучитьСсылку(Идент); // Поиск Водитель по коду НовыйЭлемент.Водитель = Справочники.Водители.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.Водитель = Справочники.Водители.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.Водитель = Справочники.Водители.ПолучитьСсылку(Идент); НовыйЭлемент.Префикс = "значение"; // Строка НовыйЭлемент.РегистрацияГрузовик_Серия = "значение"; // Строка НовыйЭлемент.РегистрацияГрузовик_НомерБланка = "значение"; // Строка НовыйЭлемент.РегистрацияГрузовик_Номер = "значение"; // Строка НовыйЭлемент.ПолучатьШтрафы = Истина; // Ложь; НовыйЭлемент.НормаРасходаТоплива = 0; // число НовыйЭлемент.Госномер = "значение"; // Строка НовыйЭлемент.Регион = "значение"; // Строка НовыйЭлемент.АПИ_ИД = "значение"; // Строка НовыйЭлемент.АПИ_СТС = "значение"; // Строка НовыйЭлемент.ШтрафыДатаИгнора = ТекущаяДата(); // Дата(Год, месяц, день); // Поиск ВладелецТС по коду НовыйЭлемент.ВладелецТС = Справочники.Организации.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.ВладелецТС = Справочники.Организации.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.ВладелецТС = Справочники.Организации.ПолучитьСсылку(Идент); // Выбор значения перечисления НеИспользуется_ВидПеревозки НовыйЭлемент.НеИспользуется_ВидПеревозки = Перечисления.НеИспользуется_ВидПеревозки.Значение1; // Альтернативный вариант - выбор через перебор: // Для каждого ЗначениеПеречисления Из Перечисления.НеИспользуется_ВидПеревозки.Значения Цикл // НовыйЭлемент.НеИспользуется_ВидПеревозки = ЗначениеПеречисления; // Прервать; // КонецЦикла; // Выбор значения перечисления НеИспользуется_ВидСообщения НовыйЭлемент.НеИспользуется_ВидСообщения = Перечисления.НеИспользуется_ВидСообщения.Значение1; // Альтернативный вариант - выбор через перебор: // Для каждого ЗначениеПеречисления Из Перечисления.НеИспользуется_ВидСообщения.Значения Цикл // НовыйЭлемент.НеИспользуется_ВидСообщения = ЗначениеПеречисления; // Прервать; // КонецЦикла; // Поиск ОрганВыдачиЛицензии по коду НовыйЭлемент.ОрганВыдачиЛицензии = Справочники.ОрганВыдачиЛицензии.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.ОрганВыдачиЛицензии = Справочники.ОрганВыдачиЛицензии.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.ОрганВыдачиЛицензии = Справочники.ОрганВыдачиЛицензии.ПолучитьСсылку(Идент); // Поиск ВидПеревозки по коду НовыйЭлемент.ВидПеревозки = Справочники.ВидПеревозки.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.ВидПеревозки = Справочники.ВидПеревозки.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.ВидПеревозки = Справочники.ВидПеревозки.ПолучитьСсылку(Идент); // Поиск ВидСообщения по коду НовыйЭлемент.ВидСообщения = Справочники.ВидСообщения.НайтиПоКоду("001"); // Альтернативный поиск по наименованию: // НовыйЭлемент.ВидСообщения = Справочники.ВидСообщения.НайтиПоНаименованию("Наименование"); // Альтернативный поиск по уникальному идентификатору: // Идент = Новый УникальныйИдентификатор(Строка(УИД)); // НовыйЭлемент.ВидСообщения = Справочники.ВидСообщения.ПолучитьСсылку(Идент); НовыйЭлемент.ПечФормаПоУмолчанию = "значение"; // Строка НовыйЭлемент.Запись_ФГИС = "значение"; // Строка НовыйЭлемент.Запись_ФГИС_ДатаВыдачи = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.Запись_ФГИС_ДатаОкончания = ТекущаяДата(); // Дата(Год, месяц, день); НовыйЭлемент.ОСГОП = "значение"; // Строка НовыйЭлемент.СсылкаДляQR = "значение"; // Строка // Запись элемента НовыйЭлемент.Записать(); // ============ КОНЕЦ КОДА ============
Обработка не привязана ни к какой конкретно конфигурации и работает даже на самописных
Код обработки открыт. Если хотите - играйте с ним как вам захочется.
ОписаниеМетаданных.epf (18Kb)