Имя: Пароль:
1C
 
проблема с макетом
0 asder117
 
24.09.14
15:40
Уважаемые! Есть код
Процедура КнопкаСформироватьНажатие(Кнопка)
    //Табдок = новый ТабличныйДокумент;
        Макет=ПолучитьМакет("Макет");
    //Название=Макет.ПолучитьОбласть("Название");
    //ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(Название);
    //Залы=Макет.ПолучитьОбласть("Зал");
    
    Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|    бит_ЗанятостьПомещенийОстатки.Помещение.Владелец.Родитель КАК ПомещениеВладелецРодитель,
|    бит_ЗанятостьПомещенийОстатки.Помещение КАК Помещение,
|    бит_ЗанятостьПомещенийОстатки.Договор.Договор КАК Договор,
|    бит_ЗанятостьПомещенийОстатки.Договор.Владелец КАК Контрагент
|ИЗ
|    РегистрНакопления.бит_ЗанятостьПомещений.Остатки КАК бит_ЗанятостьПомещенийОстатки
|ГДЕ
|    бит_ЗанятостьПомещенийОстатки.Помещение.Владелец.Родитель = &Родитель
|
|УПОРЯДОЧИТЬ ПО
|    Помещение,
|    ПомещениеВладелецРодитель";
Запрос.УстановитьПараметр("Родитель",    Справочники.бит_ОбъектыНедвижимости.НайтиПоНаименованию("Зал Б", Истина));     //Объект Аренды

РезультатЗапроса = Запрос.Выполнить().Выбрать();
пока РезультатЗапроса.Следующий() цикл
НомерМеста = получитьЧисло(РезультатЗапроса.Помещение.Наименование);    
ОблПомещение = Макет.Области.Найти("Помещение_" + Формат(НомерМеста, "ЧЦ=3; ЧВН="));
//далее заполняете область
Если ОблПомещение <> Неопределено Тогда
ТекОбласть = Макет.Область(ОблПомещение.Лево, ОблПомещение.Верх, ОблПомещение.Лево, ОблПомещение.Верх);
ТекОбласть.Текст = Строка(РезультатЗапроса.Контрагент.Наименование);
ТекОбласть.Расшифровка = РезультатЗапроса.Контрагент;
// и далее, все ячейки для текущего помещения
КонецЕсли;
КонецЦикла;
//ЭлементыФормы.ПолеТабличногоДокумента.Очистить();

////РезультатЗапроса = Запрос.Выполнить().Выбрать();
////пока РезультатЗапроса.Следующий() цикл
////    получитьЧисло(РезультатЗапроса.Помещение.Наименование);
//////обход по параметрам    
////Для НомерСтроки = 1 По 25 Цикл
////    Для НомерКолонки = 1 По 25 Цикл
////        Область = Макет.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки);
////        Если Область.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Параметр Тогда
////            Парам=Область.Параметр;
////            помещен = СтрЗаменить(РезультатЗапроса.Помещение.Наименование," ","");
////            если Парам=помещен тогда
////            
////            Залы.Параметры[Парам]=РезультатЗапроса.Помещение.Наименование+" "+РезультатЗапроса.Контрагент.Наименование;
////            Залы.Параметры[Парам+"1"]=РезультатЗапроса.Договор
////            
////            КонецЕсли;
////                       Сообщить(Область.Параметр);
////            КонецЕсли;
////    КонецЦикла;
////КонецЦикла;
    
    
//Залы.Параметры.Заполнить(РезультатЗапроса);
//КонецЦикла;
ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(Макет);

ЭлементыФормы.ПолеТабличногоДокумента1.ТолькоПросмотр=Истина;

ЭлементыФормы.ПолеТабличногоДокумента1.Показать();

    // Вставить содержимое обработчика.
КонецПроцедуры

функция получитьЧисло(Помещение)
RegExp = Новый COMОбъект("VBScript.RegExp");
      

     RegExp.IgnoreCase = Истина; //Игнорировать регистр
      

     RegExp.Global = Истина; //Поиск всех вхождений шаблона
      

     RegExp.MultiLine = Истина; //Многострочный режим
      

    
      

     RegExp.Pattern = "[^0-9]"; // отбор только чисел
      

    
      

     стр=RegExp.Replace(Помещение, "");
      

     Сообщить(стр);
     возврат стр;
КонецФункции

но при исполнении вываливается "Поле недоступно для записи (текст)" в чем ошибка может быть?
1 tdm
 
24.09.14
15:44
>>бит_ЗанятостьПомещений
простите за офф. вы из БИТа ?))
2 asder117
 
24.09.14
15:46
(1) нет просто с их продуктами ковыряюсью а что?
3 tdm
 
24.09.14
15:51
(2)>> ТекОбласть.Текст =
это условия задачи требуют - нельзя по старинке через параметры/шаблон заполнять ?
4 asder117
 
24.09.14
15:54
(3) а по подробнее можно плз.
5 asder117
 
24.09.14
15:56
"я такой вопрос писан на этом форуме ответа нет.
Уважаемые доброго времени суток. Появилась задачка в 1с нарисовать отчет который бы отображал схему торгового зала (конфа УПП и БИТ АРЕНДА). саму схему я конвертанул и в макет загнал. Вопрос в том что в во всех ячейка параметры разные и заполняться они должны разными данными.

Если пойти по данному пути все ячейки заполнятся но непонятно чем. мне же надо чтобы в ячейке с тороговым местом номер 10 вышло наименование контрагента который на этом мести а не то что соизволит запрос т.е проще сказать мне надо как-то осуществлять проверку перед заполнением. т.к. если писать условие проверки по каждому месту отдельно, то код растянется мама не горюй. Подскажите как лучше организовать. Заранее спс."
6 tdm
 
24.09.14
15:56
+(3) СП пишет что свойство доступно на запись если ячейка не содержит значение ;)
7 tdm
 
24.09.14
15:58
(5) Ищу удаленную подработку. к КодеруНаЧас наверное имеет смысл обратиться)))))))
8 tdm
 
24.09.14
16:02
(4) тут на форуме ссылки мелькают на бесплатные видео-уроки, думаю вам имеет смысл скачать по работе с макетом ( я серьезно без подколок - наглядно и подробно разбирают)
9 Kamas
 
24.09.14
16:02
(5) вы не поверите если параметры разные они прекрасно заполняются разными данными))
10 asder117
 
24.09.14
16:02
(7) оно надо? сам разобрался
11 asder117
 
24.09.14
16:02
(8) спасибо Уважаемый за помощь
12 Kamas
 
24.09.14
16:03
(9) Да и одинаковыми данными заполняется разные параметры и разными данными заполняется одинаковые, все зависит от шаблона))
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший