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 Тогда
|
||||
ДанныеЯчейки = ПланыВидовХарактеристик[ОписаниеОбъекта.НазваниеОбъекта].НайтиПоКоду(ЗначениеЯчейки);
|
||||
КонецЕсли;
|
||||
// ============================================================================================
|
||||
// РК: КОНЕЦ ВСТАВКИ
|
||||
// ============================================================================================
|
||||
#КонецВставки
|
||||
|
||||
Если Не ЗначениеЗаполнено(ДанныеЯчейки) Тогда
|
||||
ДанныеЯчейки = ПланыВидовХарактеристик[ОписаниеОбъекта.НазваниеОбъекта].НайтиПоНаименованию(ЗначениеЯчейки, Истина);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ДанныеЯчейки = Строка(ЗначениеЯчейки);
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(ДанныеЯчейки) Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ДанныеЯчейки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.20">
|
||||
<Form uuid="f47d02ff-17f2-4764-a151-627f4067a479">
|
||||
<InternalInfo>
|
||||
<xr:PropertyState>
|
||||
<xr:Property>Form</xr:Property>
|
||||
<xr:State>Extended</xr:State>
|
||||
</xr:PropertyState>
|
||||
</InternalInfo>
|
||||
<Properties>
|
||||
<ObjectBelonging>Adopted</ObjectBelonging>
|
||||
<Name>ЗагрузкаДанныхИзФайла</Name>
|
||||
<Comment/>
|
||||
<ExtendedConfigurationObject>ac4fa2a4-93a1-4aa6-986a-5f576457fc8a</ExtendedConfigurationObject>
|
||||
<FormType>Managed</FormType>
|
||||
</Properties>
|
||||
</Form>
|
||||
</MetaDataObject>
|
||||
File diff suppressed because it is too large
Load Diff
+141
@@ -0,0 +1,141 @@
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&ИзменениеИКонтроль("УсловияПоВыбраннымКолонкам")
|
||||
&НаСервере
|
||||
Функция РК_УсловияПоВыбраннымКолонкам(ИмяСправочника)
|
||||
|
||||
ТипСравнения = " = ";
|
||||
СтрокаУсловие = "";
|
||||
ТабличнаяЧасть = "";
|
||||
ОтборГде = Новый Массив;
|
||||
СтрокиУсловия = Новый Массив;
|
||||
ШаблонУсловияКонтактнаяИнформация = "ВЫРАЗИТЬ(СправочникСопоставления.Представление КАК Строка(500)) = ВЫРАЗИТЬ(ТаблицаСопоставления.%1 КАК Строка(500))";
|
||||
ШаблонУсловияДополнительныйРеквизит = "СправочникСопоставления.Значение = ТаблицаСопоставления.%1";
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
|
||||
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
|
||||
ВидыКонтактнойИнформации = МодульУправлениеКонтактнойИнформацией.ВидыКонтактнойИнформацииОбъекта(Справочники[ИмяСправочника].ПустаяСсылка());
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого Элемент Из СопоставитьПоКолонке Цикл
|
||||
Если Элемент.Пометка Тогда
|
||||
|
||||
Колонка = ИнформацияОКолонке(Элемент.Значение);
|
||||
Если Колонка = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНачинаетсяС(Колонка.ИмяКолонки, "КонтактнаяИнформация_") Тогда
|
||||
|
||||
ИмяВидаКИ = СтандартныеПодсистемыСервер.ПреобразоватьАдаптированноеНаименованиеКолонкиВСтроку(
|
||||
Сред(Колонка.ИмяКолонки, СтрДлина("КонтактнаяИнформация_") + 1));
|
||||
НайденныеВиды = ВидыКонтактнойИнформации.Найти(ИмяВидаКИ, "Наименование");
|
||||
|
||||
ТабличнаяЧасть = "КонтактнаяИнформация";
|
||||
СтрокаУсловие = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонУсловияКонтактнаяИнформация, Колонка.ИмяКолонки);
|
||||
Если НайденныеВиды <> Неопределено Тогда
|
||||
|
||||
НаименованиеВида = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НайденныеВиды.Ссылка, "Наименование");
|
||||
Если НаименованиеВида <> Неопределено Тогда
|
||||
СтрокаУсловие = СтрокаУсловие + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
" И СправочникСопоставления.Вид.Наименование = ""%1""", НаименованиеВида);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
СтрокиУсловия.Добавить(СтрокаУсловие);
|
||||
ОтборГде.Добавить("СправочникСопоставления.Представление <> """"");
|
||||
Продолжить;
|
||||
|
||||
ИначеЕсли СтрНачинаетсяС(Колонка.ИмяКолонки, "ДополнительныйРеквизит_") Тогда
|
||||
ИмяКолонкиСправочника = "Значение";
|
||||
ТабличнаяЧасть = "ДополнительныеРеквизиты";
|
||||
СтрокиУсловия.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонУсловияДополнительныйРеквизит, Колонка.ИмяКолонки));
|
||||
|
||||
ТипКолонки = Колонка.ТипКолонки.Типы()[0];
|
||||
Если ТипЗнч(ТипКолонки) = Тип("Строка") И Колонка.ТипКолонки.КвалификаторыСтроки.Длина = 0 Тогда
|
||||
Продолжить; // Нельзя сравнивать строки неограниченной длины.
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектаТипаКолонки = Метаданные.НайтиПоТипу(ТипКолонки);
|
||||
Если ОбъектаТипаКолонки <> Неопределено Тогда
|
||||
ШаблонГде = "СправочникСопоставления.Значение <> ЗНАЧЕНИЕ(%1.ПустаяСсылка)";
|
||||
ОтборГде.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонГде, ОбъектаТипаКолонки.ПолноеИмя()));
|
||||
КонецЕсли;
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяКолонкиСправочника = "Ссылка." + Колонка.ИмяКолонки;
|
||||
|
||||
ТипКолонки = Колонка.ТипКолонки.Типы()[0];
|
||||
Если ТипКолонки = Тип("Строка") Тогда
|
||||
Если Колонка.ТипКолонки.КвалификаторыСтроки.Длина = 0 Тогда
|
||||
СтрокиУсловия.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"ВЫРАЗИТЬ(СправочникСопоставления.%1 КАК Строка(500)) = ВЫРАЗИТЬ(ТаблицаСопоставления.%2 КАК Строка(500))",
|
||||
ИмяКолонкиСправочника, Колонка.ИмяКолонки));
|
||||
Иначе
|
||||
СтрокиУсловия.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"СправочникСопоставления.%1 = ТаблицаСопоставления.%2", ИмяКолонкиСправочника, Колонка.ИмяКолонки));
|
||||
КонецЕсли;
|
||||
ШаблонГде = "СправочникСопоставления.%1 <> """"";
|
||||
ОтборГде.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонГде, ИмяКолонкиСправочника));
|
||||
ИначеЕсли ТипКолонки = Тип("Число") Или ТипКолонки = Тип("Дата") Или ТипКолонки = Тип("Булево") Тогда
|
||||
СтрокиУсловия.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"СправочникСопоставления.%1 = ТаблицаСопоставления.%2", ИмяКолонкиСправочника, Колонка.ИмяКолонки));
|
||||
Иначе
|
||||
ИнфоОбъект = ИнформацияОбОбъектеМетаданныхПоТипу(ТипКолонки);
|
||||
Если ИнфоОбъект.ТипОбъекта = "Справочник" Тогда
|
||||
ТекстУсловияСправочник = Новый Массив;
|
||||
Справочник = Метаданные.Справочники.Найти(ИнфоОбъект.ИмяОбъекта); // ОбъектМетаданныхСправочник
|
||||
Для каждого СтрокаВвода Из Справочник.ВводПоСтроке Цикл
|
||||
#Удаление
|
||||
Если СтрокаВвода.Имя = "Код" И НЕ Справочник.Автонумерация Тогда
|
||||
ТекстУсловияВВодаПоСтроке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"СправочникСопоставления.%1.Код %2 ТаблицаСопоставления.%3", // АПК:1297 фрагмент запроса не локализуется.
|
||||
ИмяКолонкиСправочника, ТипСравнения, Колонка.ИмяКолонки);
|
||||
Иначе
|
||||
ТекстУсловияВВодаПоСтроке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"СправочникСопоставления.%1.%2 %3 ТаблицаСопоставления.%4", // АПК:1297 фрагмент запроса не локализуется.
|
||||
ИмяКолонкиСправочника, СтрокаВвода.Имя, ТипСравнения, Колонка.ИмяКолонки);
|
||||
КонецЕсли;
|
||||
#КонецУдаления
|
||||
|
||||
#Вставка
|
||||
// ============================================================================================
|
||||
// РК: НАЧАЛО ВСТАВКИ - Убрана проверка на Автонумерацию для возможности сопоставления по коду справочников с автонумерацией
|
||||
// ============================================================================================
|
||||
// РК: Убрана проверка на Автонумерацию для возможности сопоставления по коду справочников с автонумерацией
|
||||
Если СтрокаВвода.Имя = "Код" Тогда
|
||||
ТекстУсловияВВодаПоСтроке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"СправочникСопоставления.%1.Код %2 ТаблицаСопоставления.%3", // АПК:1297 фрагмент запроса не локализуется.
|
||||
ИмяКолонкиСправочника, ТипСравнения, Колонка.ИмяКолонки);
|
||||
Иначе
|
||||
ТекстУсловияВВодаПоСтроке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"СправочникСопоставления.%1.%2 %3 ТаблицаСопоставления.%4", // АПК:1297 фрагмент запроса не локализуется.
|
||||
ИмяКолонкиСправочника, СтрокаВвода.Имя, ТипСравнения, Колонка.ИмяКолонки);
|
||||
КонецЕсли;
|
||||
// ============================================================================================
|
||||
// РК: КОНЕЦ ВСТАВКИ
|
||||
// ============================================================================================
|
||||
#КонецВставки
|
||||
|
||||
ТекстУсловияСправочник.Добавить(ТекстУсловияВВодаПоСтроке);
|
||||
КонецЦикла;
|
||||
СтрокиУсловия.Добавить(" ( " + СтрСоединить(ТекстУсловияСправочник, " ИЛИ ") + " )");
|
||||
ИначеЕсли ИнфоОбъект.ТипОбъекта = "Перечисление" Тогда
|
||||
СтрокиУсловия.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"СправочникСопоставления.%1 = ТаблицаСопоставления.%2", ИмяКолонкиСправочника, Колонка.ИмяКолонки));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Условия = Новый Структура("УсловиеОбъединения , Где, ТабличнаяЧасть");
|
||||
Условия.УсловиеОбъединения = СтрСоединить(СтрокиУсловия, " И ");
|
||||
Условия.Где = СтрСоединить(ОтборГде, " И ");
|
||||
Условия.ТабличнаяЧасть = ТабличнаяЧасть;
|
||||
Возврат Условия;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
Reference in New Issue
Block a user