|
Переход на управляемые формы -> такси | ☑ | ||
---|---|---|---|---|
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) + за годик думаю справятся.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |