//ирПортативный Перем ирПортативный Экспорт; //ирПортативный Перем ирОбщий Экспорт; //ирПортативный Перем ирСервер Экспорт; //ирПортативный Перем ирКэш Экспорт; //ирПортативный Перем ирКлиент Экспорт; Процедура ПрочитатьНастройкиКолонокИзТабличногоПоля(Знач ТабличноеПоле) Экспорт #Если Сервер И Не Сервер Тогда ТабличноеПоле = Новый ТабличноеПоле; #КонецЕсли НастройкиКолонок.Очистить(); Для Каждого КолонкаТП Из ТабличноеПоле.Колонки Цикл ОписаниеКолонки = НастройкиКолонок.Добавить(); ЗаполнитьЗначенияСвойств(ОписаниеКолонки, КолонкаТП,, "Положение"); ОписаниеКолонки.Заголовок = КолонкаТП.ТекстШапки; Если Не ЗначениеЗаполнено(ОписаниеКолонки.Заголовок) Тогда ОписаниеКолонки.Заголовок = "<" + ОписаниеКолонки.Имя + ">"; КонецЕсли; ОписаниеКолонки.Положение = ирОбщий.ПоследнийФрагментЛкс(ПолучитьПолноеИмяПредопределенногоЗначения(КолонкаТП.Положение)); ОписаниеКолонки.ВидимостьРазрешено = КолонкаТП.ИзменятьВидимость; КонецЦикла; КонецПроцедуры Процедура ПрименитьНастройкиКолонокКТабличномуПолю(ТабличноеПоле, Знач ВыбранноеЗначение = Неопределено, Знач ПрименятьПорядок = Истина) Экспорт Если ВыбранноеЗначение <> Неопределено Тогда #Если Сервер И Не Сервер Тогда ВыбранноеЗначение = Новый Структура; #КонецЕсли Если ВыбранноеЗначение.Свойство("НастройкиКолонок") Тогда Если ВыбранноеЗначение.ПрименятьПорядок Тогда НастройкиКолонок.Загрузить(ВыбранноеЗначение.НастройкиКолонок); Иначе Для Каждого СтрокаКолонки Из НастройкиКолонок Цикл СтрокаНастройки = ВыбранноеЗначение.НастройкиКолонок.Найти(СтрокаКолонки.Имя, "Имя"); ЗаполнитьЗначенияСвойств(СтрокаКолонки, СтрокаНастройки,, "Имя"); КонецЦикла; КонецЕсли; КонецЕсли; КонецЕсли; НачальноеКоличество = НастройкиКолонок.Количество(); КолонкиТП = ТабличноеПоле.Колонки; Для Счетчик = 1 По НачальноеКоличество Цикл ОписаниеКолонки = НастройкиКолонок[НачальноеКоличество - Счетчик]; КолонкаТП = КолонкиТП.Найти(ОписаниеКолонки.Имя); Если КолонкаТП <> Неопределено Тогда Если ПрименятьПорядок Тогда КолонкиТП.Сдвинуть(КолонкаТП, -КолонкиТП.Индекс(КолонкаТП)); КонецЕсли; ЗаполнитьЗначенияСвойств(КолонкаТП, ОписаниеКолонки,, "Имя, ВысотаЯчейки, Положение"); КолонкаТП.ВысотаЯчейки = Макс(1, ОписаниеКолонки.ВысотаЯчейки); КонецЕсли; КонецЦикла; Если ПрименятьПорядок Тогда // Второй проход для установки положения колонок. Иначе свойство "Положение" колонки не будет изменяться Для Каждого ОписаниеКолонки Из НастройкиКолонок Цикл КолонкаТП = КолонкиТП.Найти(ОписаниеКолонки.Имя); Если КолонкаТП <> Неопределено Тогда #Если Клиент Тогда Если ТипЗнч(КолонкаТП) = Тип("КолонкаТабличногоПоля") И ЗначениеЗаполнено(ОписаниеКолонки.Положение) Тогда КолонкаТП.Положение = ПредопределенноеЗначение("ПоложениеКолонки." + ОписаниеКолонки.Положение); Если ОписаниеКолонки.Положение = "НаСледующейСтроке" Тогда КолонкаТП.Положение = ПоложениеКолонки.НаСледующейСтроке; КонецЕсли; КонецЕсли; #КонецЕсли КонецЕсли; КонецЦикла; // Колонку НомерСтроки оставляем первой слева КолонкаНомераСтроки = КолонкиТП.Найти(ирКэш.ИмяКолонкиНомерСтрокиЛкс()); Если КолонкаНомераСтроки <> Неопределено Тогда КолонкиТП.Сдвинуть(КолонкаНомераСтроки, -КолонкиТП.Индекс(КолонкаНомераСтроки)); КонецЕсли; КонецЕсли; КонецПроцедуры //ирПортативный лФайл = Новый Файл(ИспользуемоеИмяФайла); //ирПортативный ПолноеИмяФайлаБазовогоМодуля = Лев(лФайл.Путь, СтрДлина(лФайл.Путь) - СтрДлина("Модули\")) + "ирПортативный.epf"; //ирПортативный #Если Клиент Тогда //ирПортативный Контейнер = Новый Структура(); //ирПортативный Оповестить("ирПолучитьБазовуюФорму", Контейнер); //ирПортативный Если Не Контейнер.Свойство("ирПортативный", ирПортативный) Тогда //ирПортативный ирПортативный = ВнешниеОбработки.ПолучитьФорму(ПолноеИмяФайлаБазовогоМодуля); //ирПортативный ирПортативный.Открыть(); //ирПортативный КонецЕсли; //ирПортативный #Иначе //ирПортативный ирПортативный = ВнешниеОбработки.Создать(ПолноеИмяФайлаБазовогоМодуля, Ложь); // Это будет второй экземпляр объекта //ирПортативный #КонецЕсли //ирПортативный ирОбщий = ирПортативный.ОбщийМодульЛкс("ирОбщий"); //ирПортативный ирКэш = ирПортативный.ОбщийМодульЛкс("ирКэш"); //ирПортативный ирСервер = ирПортативный.ОбщийМодульЛкс("ирСервер"); //ирПортативный ирКлиент = ирПортативный.ОбщийМодульЛкс("ирКлиент");