Имя: Пароль:
1C
1С v8
Почему может сбиваться положение элементов на упр.форме.
0 oleg_prg
 
11.02.14
17:25
Еще раз, добрый день, уважаемые форумчане. Подскажите пожалуйста почему сбиваются реквизиты на форме. Не знаю как описать - поэтому вот видео http://yadi.sk/d/jGJnXs2IHhkSg . Для просмотра видео надо скачать, т.к. яндекс плеер в низком качестве воспроизводит

Вот код отчета

//********************************************************************
&НаСервере
Процедура УстановитьВысоту()    
    //Элементы.КомпоновщикНастроекПользовательскиеНастройки.Высота = 5;    
КонецПроцедуры
//********************************************************************
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    //УстановитьВысоту();
    //ОбновитьИнтерфейс();
КонецПроцедуры
//********************************************************************
&НаКлиенте
Процедура КомпоновщикНастроекПользовательскиеНастройкиПриИзменении(Элемент)
    
    ////Эл = Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы;
    ////Для А = 0 По Эл.Количество()-1 Цикл
    ////    Если Эл[А].ЛевоеЗначение = "ДатаДокумента" Тогда
    ////        Эл[А].ВидСравнения = ВидСравненияКомпоновкиДанных.
    ////    КонецЦикла;
    ////КонецЦикла;
    //УстановитьВысоту();
    //ОбновитьИнтерфейс();
    
КонецПроцедуры
//********************************************************************
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Отказ = Справочники.ПраваДоступа.РеагироватьНаПраваДоступа(Отчет, ЭтаФорма);
КонецПроцедуры
//********************************************************************
&НаСервере
Процедура ЧтениеРезультата()
    
    Если Отчет.ПартнерыОтчета.Количество() = 0 Тогда
        Сообщить("Нет партнеров для отправки писем!");
        Возврат;
    КонецЕсли;
    
    ТЗ_Письма = новый ТаблицаЗначений;
    ТЗ_Письма.Колонки.Добавить("Тема");
    ТЗ_Письма.Колонки.Добавить("Письмо");
    ТЗ_Письма.Колонки.Добавить("ПолучательАдрес");
    ТЗ_Письма.Колонки.Добавить("ПолучательФИО");
    
    Для СчПартнеров = 0 По Отчет.ПартнерыОтчета.Количество()-1 Цикл
        
        //ДанныеКлиент = "Клиент:"+СокрЛП(Объект.ФИО)+" "+СокрЛП(Объект.Город)+" "+СокрЛП(Объект.Улица)+" "+СокрЛП(Объект.Дом)+","+СокрЛП(Объект.Корпус)+" "+СокрЛП(Объект.Квартира)+" п: "+СокрЛП(Объект.Подъезд)+" эт:"+СокрЛП(Объект.Этаж)+" "+?(Объект.ЧастныйДом,"Ч/дом","")+" тел: (гор)"+СокрЛП(Объект.ТелГородской)+" (моб) "+СокрЛП(Объект.ТелМобильный);
        //Товары = "Услуги: ";
        //Время  = "";
        //Для А = 0 По Объект.ТоварыКлиента.Количество()-1 Цикл
        //    Товары = СокрЛП(Объект.ТоварыКлиента[А].Номенклатура)+" кол:"+СокрЛП(Объект.ТоварыКлиента[А].Количество)+" сумма от "+СокрЛП(Объект.ТоварыКлиента[А].СуммаМин)+" до "+СокрЛП(Объект.ТоварыКлиента[А].СуммаМакс);
        //    Товары = Товары + Символы.ПС;
        //КонецЦикла;
        //
        //СтарДата = "";
        //
        //Время = Время + Формат(Элементы.Исполнение.ТекущиеДанные.Дата,"ДФ=dd.MM.yy")+" время: ";
        //
        //Если Элементы.Исполнение.ТекущиеДанные.Интервал_9_11 Тогда
        //    Время = Время + "9-11;";
        //КонецЕсли;    
        //Если Элементы.Исполнение.ТекущиеДанные.Интервал_11_13 Тогда
        //    Время = Время + "11-13;";
        //КонецЕсли;    
        //Если Элементы.Исполнение.ТекущиеДанные.Интервал_13_15 Тогда
        //    Время = Время + "13-15;";
        //КонецЕсли;    
        //Если Элементы.Исполнение.ТекущиеДанные.Интервал_15_17 Тогда
        //    Время = Время + "15-17;";
        //КонецЕсли;    
        //Если Элементы.Исполнение.ТекущиеДанные.Интервал_17_19 Тогда
        //    Время = Время + "17-19;";
        //КонецЕсли;    
        //Если Элементы.Исполнение.ТекущиеДанные.Интервал_19_21 Тогда
        //    Время = Время + "19-21;";
        //КонецЕсли;
        
    КонецЦикла;
            
    //ЗначениеОтбора = Новый Структура;
    //ЗначениеОтбора.Вставить("Получатель",Элементы.Исполнение.ТекущиеДанные.Партнер);
    //ЗначениеОтбора.Вставить("Тема", "Заказ N"+СокрЛП(Объект.Номер));
    //ЗначениеОтбора.Вставить("Письмо", ДанныеКлиент+Символы.ПС+Время+" "+Символы.ПС+Товары+" Описание:"+Объект.ПодробноеОписание);
    //ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
    //Форма = ПолучитьФорму("Обработка.ОтправитьEMail.Форма", ПараметрыВыбора);
    //Форма.ОткрытьМодально();
    //
    //Элементы.Исполнение.ТекущиеДанные.Отправлен = Форма.Объект.Отправлен;

КонецПроцедуры
//********************************************************************
&НаКлиенте
Процедура РазослатьПочтовыеСообщения(Команда)
    ЧтениеРезультата();
КонецПроцедуры
//********************************************************************
&НаСервере
Функция СКДПрограммно()
    
    Схема = Отчеты.ОтчетОператора.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки = Новый КомпоновщикМакетаКомпоновкиДанных;
    Настройки = Отчет.КомпоновщикНастроек.Настройки;
    Для СчЭлементов = 0 По Настройки.Отбор.Элементы.Количество()-1 Цикл
            Настройки.Отбор.Элементы[СчЭлементов].ПравоеЗначение = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[СчЭлементов].ПравоеЗначение;
            Настройки.Отбор.Элементы[СчЭлементов].ВидСравнения   = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[СчЭлементов].ВидСравнения;
            Настройки.Отбор.Элементы[СчЭлементов].Использование  = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[СчЭлементов].Использование;
            Если Настройки.Отбор.Элементы[СчЭлементов].ЛевоеЗначение = "ПараметрыДанных.Дата1" Тогда
                 Настройки.Отбор.Элементы[СчЭлементов].ПравоеЗначение = НачалоДня(НачДатаДок);
             КонецЕсли;
             Если Настройки.Отбор.Элементы[СчЭлементов].ЛевоеЗначение = "ПараметрыДанных.Дата2" Тогда
                 Настройки.Отбор.Элементы[СчЭлементов].ПравоеЗначение = КонецДня(КонДатаДок);
            КонецЕсли;
    КонецЦикла;
    
    Настройки.ПараметрыДанных.Элементы[0].Значение = НачалоДня(НачДатаДок);
    Настройки.ПараметрыДанных.Элементы[0].Использование = Истина;
    Настройки.ПараметрыДанных.Элементы[1].Значение = КонецДня(КонДатаДок);
    Настройки.ПараметрыДанных.Элементы[1].Использование = Истина;
    
    Схема.Параметры.Дата1.Значение = НачалоДня(НачДатаДок);
    Схема.Параметры.Дата2.Значение = КонецДня(КонДатаДок);
    
    КомпоновщикМакета = новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакета.Выполнить(Схема, Настройки);
    
    ПроцессорКомпоновки = новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(Макет);
    
    ПроцессорВывода = новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ТабДок = Новый ТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабДок);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    
    ТЗ_Партнеры = новый ТаблицаЗначений;
    ТЗ_Партнеры.Колонки.Добавить("Партнер");
    
    Для Высота=1 по ТабДок.ВысотаТаблицы цикл
        Для Ширина=1 по ТабДок.ШиринаТаблицы цикл
            Ячейка = ТабДок.Область(Высота, Ширина);
            Если ТипЗНЧ(Ячейка.Расшифровка) = ТипЗНЧ(Справочники.Партнеры.ПустаяСсылка()) Тогда
                ТЗ_Партнеры.Добавить().Партнер = Ячейка.Расшифровка;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
    
    ТЗ_Партнеры.Свернуть("Партнер");
    Отчет.ПартнерыОтчета.Загрузить(ТЗ_Партнеры);    
    
    Возврат ТабДок;
    
КонецФункции
//********************************************************************
&НаКлиенте
Процедура СформироватьОтчет(Команда)
    ТД = СКДПрограммно();
КонецПроцедуры
//********************************************************************


Заранее спасибо.
1 oleg_prg
 
11.02.14
17:26
В отчете программно вывожу отчет СКД
2 oleg_prg
 
11.02.14
17:46
вопрос снят
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс