Initial commit of 1C configuration from DT-021 - 18.06.2026 13:57:56,21
This commit is contained in:
@@ -0,0 +1,211 @@
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#Область ПодготовкаКЗагрузкеДанных
|
||||
|
||||
&ИзменениеИКонтроль("ИнформациюПоКолонкамИзРеквизитовСправочника")
|
||||
Процедура РК_ИнформациюПоКолонкамИзРеквизитовСправочника(ПараметрыЗагрузки, ИнформацияПоКолонкам)
|
||||
|
||||
ИнформацияПоКолонкам.Очистить();
|
||||
Позиция = 1;
|
||||
|
||||
МетаданныеСправочника= ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени(ПараметрыЗагрузки.ПолноеИмяОбъекта); // ОбъектМетаданныхСправочник, ОбъектМетаданныхДокумент
|
||||
|
||||
#Удаление
|
||||
Если НЕ МетаданныеСправочника.Автонумерация И МетаданныеСправочника.ДлинаКода > 0 Тогда
|
||||
СоздатьКолонкуСтандартныеРеквизиты(ИнформацияПоКолонкам, МетаданныеСправочника, "Код", Позиция);
|
||||
Позиция = Позиция + 1;
|
||||
КонецЕсли;
|
||||
#КонецУдаления
|
||||
|
||||
#Вставка
|
||||
// ============================================================================================
|
||||
// РК: НАЧАЛО ВСТАВКИ - Убрана проверка на Автонумерацию для возможности загрузки по коду справочников с автонумерацией
|
||||
// ============================================================================================
|
||||
// РК: Убрана проверка на Автонумерацию для возможности загрузки по коду справочников с автонумерацией
|
||||
Если МетаданныеСправочника.ДлинаКода > 0 Тогда
|
||||
СоздатьКолонкуСтандартныеРеквизиты(ИнформацияПоКолонкам, МетаданныеСправочника, "Код", Позиция);
|
||||
Позиция = Позиция + 1;
|
||||
КонецЕсли;
|
||||
// ============================================================================================
|
||||
// РК: КОНЕЦ ВСТАВКИ
|
||||
// ============================================================================================
|
||||
#КонецВставки
|
||||
|
||||
Если МетаданныеСправочника.ДлинаНаименования > 0 Тогда
|
||||
СоздатьКолонкуСтандартныеРеквизиты(ИнформацияПоКолонкам, МетаданныеСправочника, "Наименование", Позиция);
|
||||
Позиция = Позиция + 1;
|
||||
КонецЕсли;
|
||||
|
||||
Если МетаданныеСправочника.Иерархический Тогда
|
||||
СоздатьКолонкуСтандартныеРеквизиты(ИнформацияПоКолонкам, МетаданныеСправочника, "Родитель", Позиция);
|
||||
Позиция = Позиция + 1;
|
||||
КонецЕсли;
|
||||
|
||||
Если МетаданныеСправочника.Владельцы.Количество() > 0 Тогда
|
||||
СоздатьКолонкуСтандартныеРеквизиты(ИнформацияПоКолонкам, МетаданныеСправочника, "Владелец", Позиция);
|
||||
Позиция = Позиция + 1;
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого Реквизит Из МетаданныеСправочника.Реквизиты Цикл
|
||||
|
||||
Если Реквизит.Имя = "Идентификатор" Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если Реквизит.Тип.СодержитТип(Тип("ХранилищеЗначения")) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеТипаКолонки = "";
|
||||
|
||||
Если Реквизит.Тип.СодержитТип(Тип("Булево")) Тогда
|
||||
ОписаниеТипаКолонки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Флаг, %1 или 1 / Нет или 0'"), ЗагрузкаДанныхИзФайла.ПредставлениеТекстаДаДляБулево());
|
||||
ИначеЕсли Реквизит.Тип.СодержитТип(Тип("Число")) Тогда
|
||||
ОписаниеТипаКолонки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Число, Длина: %1, Точность: %2'"),
|
||||
Строка(Реквизит.Тип.КвалификаторыЧисла.Разрядность),
|
||||
Строка(Реквизит.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти));
|
||||
ИначеЕсли Реквизит.Тип.СодержитТип(Тип("Строка")) Тогда
|
||||
Если Реквизит.Тип.КвалификаторыСтроки.Длина > 0 Тогда
|
||||
ДлинаСтроки = Строка(Реквизит.Тип.КвалификаторыСтроки.Длина);
|
||||
ОписаниеТипаКолонки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Строка, макс. количество символов: %1'"), ДлинаСтроки);
|
||||
Иначе
|
||||
ОписаниеТипаКолонки = НСтр("ru = 'Строка неограниченной длины'");
|
||||
КонецЕсли;
|
||||
ИначеЕсли Реквизит.Тип.СодержитТип(Тип("Дата")) Тогда
|
||||
ОписаниеТипаКолонки = Строка(Реквизит.Тип.КвалификаторыДаты.ЧастиДаты);
|
||||
ИначеЕсли Реквизит.Тип.СодержитТип(Тип("УникальныйИдентификатор")) Тогда
|
||||
ОписаниеТипаКолонки = НСтр("ru = 'Уникальный идентификатор'");
|
||||
КонецЕсли;
|
||||
|
||||
ШиринаКолонки = ШиринаКолонкиПоТипу(Реквизит.Тип);
|
||||
Подсказка = ?(ЗначениеЗаполнено(Реквизит.Подсказка), Реквизит.Подсказка, Реквизит.Представление()) + Символы.ПС + ОписаниеТипаКолонки;
|
||||
ОбязательноеПоле = ?(Реквизит.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку, Истина, Ложь);
|
||||
|
||||
СтрокаИнфоПроКолонки = ИнформацияПоКолонкам.Добавить();
|
||||
СтрокаИнфоПроКолонки.ИмяКолонки = Реквизит.Имя;
|
||||
СтрокаИнфоПроКолонки.ПредставлениеКолонки = Реквизит.Представление();
|
||||
СтрокаИнфоПроКолонки.ТипКолонки = Реквизит.Тип;
|
||||
СтрокаИнфоПроКолонки.ОбязательнаДляЗаполнения = ОбязательноеПоле;
|
||||
СтрокаИнфоПроКолонки.Позиция = Позиция;
|
||||
СтрокаИнфоПроКолонки.Группа = МетаданныеСправочника.Представление();
|
||||
СтрокаИнфоПроКолонки.Видимость = Истина;
|
||||
СтрокаИнфоПроКолонки.Примечание = Подсказка;
|
||||
СтрокаИнфоПроКолонки.Ширина = ШиринаКолонки;
|
||||
|
||||
Позиция = Позиция + 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
|
||||
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
|
||||
МодульУправлениеКонтактнойИнформацией.КолонкиДляЗагрузкиДанных(МетаданныеСправочника, ИнформацияПоКолонкам);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда
|
||||
МодульУправлениеСвойствамиСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеСвойствамиСлужебный");
|
||||
МодульУправлениеСвойствамиСлужебный.КолонкиДляЗагрузкиДанных(МетаданныеСправочника, ИнформацияПоКолонкам);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
&ИзменениеИКонтроль("ЗначениеЯчейки")
|
||||
Функция РК_ЗначениеЯчейки(Колонка, ЗначениеЯчейки)
|
||||
|
||||
ДанныеЯчейки = "";
|
||||
Для каждого ТипДанных Из Колонка.ТипКолонки.Типы() Цикл
|
||||
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипДанных);
|
||||
|
||||
Если ОбъектМетаданных = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеОбъекта = РазложитьПолноеИмяОбъекта(ОбъектМетаданных.ПолноеИмя());
|
||||
Если ОписаниеОбъекта.ТипОбъекта = "Справочник" Тогда
|
||||
#Удаление
|
||||
Если Не ОбъектМетаданных.Автонумерация
|
||||
И ОбъектМетаданных.ДлинаКода > 0 Тогда
|
||||
ДанныеЯчейки = Справочники[ОписаниеОбъекта.НазваниеОбъекта].НайтиПоКоду(ЗначениеЯчейки, Истина);
|
||||
КонецЕсли;
|
||||
#КонецУдаления
|
||||
|
||||
#Вставка
|
||||
// ============================================================================================
|
||||
// РК: НАЧАЛО ВСТАВКИ - Убрана проверка на Автонумерацию для возможности поиска по коду справочников с автонумерацией
|
||||
// ============================================================================================
|
||||
// РК: Убрана проверка на Автонумерацию для возможности поиска по коду справочников с автонумерацией
|
||||
Если ОбъектМетаданных.ДлинаКода > 0 Тогда
|
||||
ДанныеЯчейки = Справочники[ОписаниеОбъекта.НазваниеОбъекта].НайтиПоКоду(ЗначениеЯчейки, Истина);
|
||||
КонецЕсли;
|
||||
// ============================================================================================
|
||||
// РК: КОНЕЦ ВСТАВКИ
|
||||
// ============================================================================================
|
||||
#КонецВставки
|
||||
|
||||
Если Не ЗначениеЗаполнено(ДанныеЯчейки)
|
||||
И ЗначениеЗаполнено(ЗначениеЯчейки)
|
||||
И ОбъектМетаданных.ДлинаНаименования > 0 Тогда
|
||||
//@skip-check query-in-loop - штучные запросы разнородных данных.
|
||||
ДанныеЯчейки = НайтиПоНаименованию(ЗначениеЯчейки, ОбъектМетаданных, Колонка);
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(ДанныеЯчейки)
|
||||
И ОбъектМетаданных.ДлинаКода > 0 Тогда
|
||||
Если ОбъектМетаданных.СерииКодов = Метаданные.СвойстваОбъектов.СерииКодовСправочника.ВоВсемСправочнике Тогда
|
||||
ДанныеЯчейки = Справочники[ОписаниеОбъекта.НазваниеОбъекта].НайтиПоКоду(ЗначениеЯчейки);
|
||||
Иначе
|
||||
ДанныеЯчейки = Справочники[ОписаниеОбъекта.НазваниеОбъекта].НайтиПоКоду(ЗначениеЯчейки, Истина);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ИначеЕсли ОписаниеОбъекта.ТипОбъекта = "Перечисление" Тогда
|
||||
Для каждого ЗначениеПеречисления Из Перечисления[ОписаниеОбъекта.НазваниеОбъекта] Цикл
|
||||
Если Строка(ЗначениеПеречисления) = СокрЛП(ЗначениеЯчейки) Тогда
|
||||
ДанныеЯчейки = ЗначениеПеречисления;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
ИначеЕсли ОписаниеОбъекта.ТипОбъекта = "ПланСчетов" Тогда
|
||||
ДанныеЯчейки = ПланыСчетов[ОписаниеОбъекта.НазваниеОбъекта].НайтиПоКоду(ЗначениеЯчейки);
|
||||
Если ДанныеЯчейки.Пустая() Тогда
|
||||
ДанныеЯчейки = ПланыСчетов[ОписаниеОбъекта.НазваниеОбъекта].НайтиПоНаименованию(ЗначениеЯчейки, Истина);
|
||||
КонецЕсли;
|
||||
ИначеЕсли ОписаниеОбъекта.ТипОбъекта = "ПланВидовХарактеристик" Тогда
|
||||
#Удаление
|
||||
Если Не ОбъектМетаданных.Автонумерация И ОбъектМетаданных.ДлинаКода > 0 Тогда
|
||||
ДанныеЯчейки = ПланыВидовХарактеристик[ОписаниеОбъекта.НазваниеОбъекта].НайтиПоКоду(ЗначениеЯчейки);
|
||||
КонецЕсли;
|
||||
#КонецУдаления
|
||||
|
||||
#Вставка
|
||||
// ============================================================================================
|
||||
// РК: НАЧАЛО ВСТАВКИ - Убрана проверка на Автонумерацию для возможности поиска по коду планов видов характеристик с автонумерацией
|
||||
// ============================================================================================
|
||||
// РК: Убрана проверка на Автонумерацию для возможности поиска по коду планов видов характеристик с автонумерацией
|
||||
Если ОбъектМетаданных.ДлинаКода > 0 Тогда
|
||||
ДанныеЯчейки = ПланыВидовХарактеристик[ОписаниеОбъекта.НазваниеОбъекта].НайтиПоКоду(ЗначениеЯчейки);
|
||||
КонецЕсли;
|
||||
// ============================================================================================
|
||||
// РК: КОНЕЦ ВСТАВКИ
|
||||
// ============================================================================================
|
||||
#КонецВставки
|
||||
|
||||
Если Не ЗначениеЗаполнено(ДанныеЯчейки) Тогда
|
||||
ДанныеЯчейки = ПланыВидовХарактеристик[ОписаниеОбъекта.НазваниеОбъекта].НайтиПоНаименованию(ЗначениеЯчейки, Истина);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ДанныеЯчейки = Строка(ЗначениеЯчейки);
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(ДанныеЯчейки) Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ДанныеЯчейки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
Reference in New Issue
Block a user