Имя: Пароль:
1C
1С v8
Переход на управляемые формы -> такси
0 igoza
 
08.05.14
12:27
Из обычного приложения в управляемое приложение!
За долгое время было создано большое количество документов, справочников и т.д. и у каждого создавались формы, в формах: запросы, прямое обращение к реквизитам..

Для того что бы перейти на управляемые формы это всё переписывать? перекидать в модуль документа?
1 Wobland
 
08.05.14
12:28
да
2 igoza
 
08.05.14
12:29
(1) печаль!
3 Fish
 
08.05.14
12:29
(2) И скажу более: простым "перекидать в модуль документа" ты никак не обойдёшься.
4 fisher
 
08.05.14
12:30
Да, все переписывать.
Чуток посложнее, чем "перекидать в модуль документа".
Не рекомендую разбираться методом научного тыка.
Начни с "Разработка управляемого интерфейса".
5 igoza
 
08.05.14
12:31
(3) ага, сделал парочку(
6 igoza
 
08.05.14
12:31
(4) работал с управляемым интерфейсом до перехода на это предприятие
7 fisher
 
08.05.14
12:33
(6) Твое утверждение и появление сабжа - взаимоисключающие вещи.
8 Wobland
 
08.05.14
12:35
(6) мы называем управляемым интерфейсом совсем другое
9 igoza
 
08.05.14
12:37
пошёл я книгу почитаю..
10 Web00001
 
08.05.14
12:39
(7)(8)Может он работал как пользователь.
11 fisher
 
08.05.14
12:41
(9) Если с принципами конструирования управляемого интерфейса уже знаком и основная проблема в программировании управляемых форм, то и начинай с "Часть 3. Программирование форм"
12 igoza
 
08.05.14
15:04
первый блин комом но работает


&НаКлиенте
Процедура ПоказыватьПриЗапускеПриИзменении(Элемент)
    ПоказыватьПриЗапускеПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПоказыватьПриЗапускеПриИзмененииНаСервере()
    ЭлементСправочника = ПараметрыСеанса.ТекущийПользователь.ПолучитьОбъект();
   ЭлементСправочника.ОтчетДниРождения = Элементы.ПоказыватьПриЗапуске;
   Попытка
      ЭлементСправочника.Записать();
   Исключение  
   КонецПопытки;
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ПриОткрытииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПриОткрытииНаСервере()
    Если ПараметрыСеанса.ТекущийПользователь.ОтчетДниРождения Тогда
        ПоказыватьПриЗапуске = Истина;
    КонецЕсли;
    
    Работает = истина;
    Бёздник(ЭтотОбъект.Объект.От, ЭтотОбъект.Объект.До);    
КонецПроцедуры

&НаСервере
Процедура Бёздник(От, До)
    ЭтотОбъект.Объект.ТабличнаяЧасть1.Очистить();
    ОдинДень = 60 * 60 * 24;
    Неделя = ОдинДень * 7;
    ДатаНачала = Дата(01,01,0001, 0,00,00);

    //1.Создаём временной интервал

    Если От = ДатаНачала и До = ДатаНачала Тогда
        ДатаОт = НачалоДня(ТекущаяДата() - (Неделя * 1 + ОдинДень));
        ДатаДо = НачалоДня(ТекущаяДата() + (Неделя * 2 + ОдинДень));
    Иначе
        ДатаОт = От;
        ДатаДо = До;
    КонецЕсли;

    ЭтотОбъект.Объект.От = ДатаОт;
    ЭтотОбъект.Объект.До = ДатаДо;


    //2. Запрос справочник физ.лиц получение ФИО и ДР
    Если ЭтотОбъект.Объект.Работает Тогда
        УсловиеРаботает = " И ФизическиеЛица.Работает = истина ";
    Иначе
        УсловиеРаботает = "";
    КонецЕсли;

    Запрос = Новый Запрос;
    Запрос.Текст =
     "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ФизическиеЛица.Ссылка КАК ФИО,
    |    ФизическиеЛица.ДатаРождения КАК ДатаРождения,
    |    ФизическиеЛица.Должность,
    |    ФизическиеЛица.Подразделение,
    |   РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &Сегодня, Год) КАК СЧем,
    |   РАЗНОСТЬДАТ(&Сегодня, ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, Год, РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &Сегодня, Год)), День)  КАК До,
    |    неопределено КАК ДоДня,
    |    ложь КАК Юбилей
    |ИЗ
    |    Справочник.ФизическиеЛица КАК ФизическиеЛица
    |ГДЕ  
    |   ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, Год, РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &Сегодня, Год)) МЕЖДУ &ДатаОт И &ДатаДо
    |    " + УсловиеРаботает + "
    |УПОРЯДОЧИТЬ ПО
    |   До
    |";                              
    

    Запрос.УстановитьПараметр("ДатаОт", ДатаОт);
    Запрос.УстановитьПараметр("ДатаДо", ДатаДо);
    Запрос.УстановитьПараметр("Сегодня", ТекущаяДата());

    Выборка = Запрос.Выполнить().Выгрузить();

    //3. Обработка таблици значений с заполнение графф "ДО" и "С чем"

    Для каждого Элемент из Выборка Цикл
        Текст = "";
        
        //Сколько осталось дней до даты
        
        ДоРед = Элемент.До;
        
        Если ДоРед < 0 Тогда
            Прошло = Истина;
            ДоРед = - ДоРед;
        Иначе
            Прошло = Ложь;
        КонецЕсли;
        
        ДнейДо = ДоРед;
            
        Если ДоРед > 20 Тогда
            ДоРед = ДоРед - 10;
            Пока ДоРед > 10 Цикл
             ДоРед = Доред - 10;    
            КонецЦикла;
        КонецЕсли;
        
            Если ДоРед = 0 Тогда
                Текст = "Сегодня поздравляем с ";
            ИначеЕсли ДоРед = 1  Тогда
                Если Прошло Тогда
                    Текст = "Вчера поздравляли с ";
                Иначе
                    Текст = "Завтра поздравляем с ";
                КонецЕсли;
            ИначеЕсли ДоРед > 1 и ДоРед < 5 Тогда     
                Текст = Строка(ДнейДо)+ " дня";
            Иначе
                Текст = Строка(ДнейДо)+ " дней";    
            КонецЕсли;
            
            Если ДоРед > 1 тогда
                Если Прошло Тогда
                    Текст = Текст + " назад позравляли с ";
                Иначе
                    Текст = "Через " + Текст + " поздравим с ";
                КонецЕсли;
            КонецЕсли;
                    
        //С чем поздравляем    
        Если (Элемент.СЧем / 5) % 1 = 0 Тогда
            Текст = Текст + Строка(Элемент.СЧем) + " летним юбилеем";
            Элемент.Юбилей = Истина;
        Иначе
            Текст = Текст + Строка(Элемент.СЧем) + " летием";
        КонецЕсли;
        
        //Заполним текстовое поле     
        Элемент.ДоДня = Текст;
        
    КонецЦикла;

    //4. Загрузка значений в таблицу формы
    //обЗагрузитьВТаблицуЗначений(Выборка, ЭтотОбъект.Объект.ТабличнаяЧасть1);
        
    СоответствиеКолонок = Неопределено;
    Для каждого СтрокаТаблицыИсточника Из Выборка Цикл
        СтрокаТаблицыПриемника = ЭтотОбъект.Объект.ТабличнаяЧасть1.Добавить();
        ЗаполнитьЗначенияСвойств(СтрокаТаблицыПриемника, СтрокаТаблицыИсточника);                
        // Для несовпадающих колонок - заполним из соответствия.
        Если СоответствиеКолонок <> Неопределено Тогда            
            Для каждого Колонка Из СоответствиеКолонок Цикл                
                СтрокаТаблицыПриемника[Колонка.Ключ] = СтрокаТаблицыИсточника[Колонка.Значение];                                
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
    
    //5. Цветастость
    Для Каждого Строка ИЗ ЭтотОбъект.Объект.ТабличнаяЧасть1 Цикл
                
        //Если СтрокаТаблицыИсточника.До < 0 Тогда
        //    СтрокаТаблицыПриемника.ЦветТекста = WebЦвета.СветлоРозовый;
        //    СтрокаТаблицыПриемника.ЦветФона = WebЦвета.Белый;
        //ИначеЕсли СтрокаТаблицыИсточника.До = 0 Тогда
        //    СтрокаТаблицыПриемника.ЦветТекста = WebЦвета.Черный;
        //    СтрокаТаблицыПриемника.ЦветФона = WebЦвета.БледноЗеленый;
        //Иначе
        //    СтрокаТаблицыПриемника.ЦветТекста = WebЦвета.ТемноЗеленый;
        //    СтрокаТаблицыПриемника.ЦветФона = WebЦвета.Белый;
        //КонецЕсли;     
        //Если СтрокаТаблицыИсточника.Юбилей = Истина Тогда
        //    СтрокаТаблицыПриемника.Шрифт = Новый Шрифт(,,Истина);
        //КонецЕсли;    
    КонецЦикла;
    
КонецПроцедуры

&НаКлиенте
Процедура Обновить(Команда)
    ОбновитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОбновитьНаСервере()
    Бёздник(ЭтотОбъект.Объект.От, ЭтотОбъект.Объект.До);
КонецПроцедуры
13 Web00001
 
08.05.14
15:07
Держи нас в курсе, нам всем очень интересно.
14 manc88
 
08.05.14
15:17
(12) это точно весь код?
15 jsmith82
 
08.05.14
15:19
написать новую конфигурацию, сделать обмен данными
иные варианты не обсуждаются
16 fisher
 
08.05.14
15:22
(12) "Бёздник", боже ж мой.
Или ты слишком молод, или конфа слишком старая.
17 dj_serega
 
08.05.14
15:22
(15) + за годик думаю справятся.