Имя: Пароль:
1C
1С v8
Перевод кода
,
0 flyman33
 
24.05.13
15:44
Здравствуйте, имеется код для обычного приложения, но нужен для управляемого приложения. В управляемом приложении он не работает. Помогите перевести его, очень прошу.
1 flyman33
 
24.05.13
15:46
Процедура ДобавитьДанныеНаГодНажатие(Элемент)
   
   ВыбЗначение = ПолучитьСписокГодов().ВыбратьЭлемент("Укажите год формирования документа", );
   
   Если ВыбЗначение = Неопределено Тогда
       Сообщить("Не назначен год");
   КонецЕсли;
   
   ДобавлениеНовойСтраницы(ВыбЗначение.Значение);
   
КонецПроцедуры

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
   
   Если ЭтоНовый() Тогда
       
       ВыбЗначение = ПолучитьСписокГодов().ВыбратьЭлемент("Укажите год формирования документа", );
       
       Если ВыбЗначение = Неопределено Тогда
           Сообщить("Не назначен год");
           Возврат;
       КонецЕсли;    
       
       ДобавлениеНовойСтраницы(ВыбЗначение.Значение);
       
   Иначе
       
       Таблица = Мероприятия.Выгрузить(, "Год");
       Таблица.Свернуть("Год");
       Таблица.Сортировать("Год Возр");
       
       Для каждого СтрТаб из Таблица Цикл
           
           ДобавлениеНовойСтраницы(СтрТаб.Год);
           
       КонецЦикла;
       
   КонецЕсли;
   
КонецПроцедуры

Функция ПолучитьСписокГодов()
   
   Список = Новый СписокЗначений;
   Список.Добавить(Год(ТекущаяДата()));
   КоличествоГодов = 10;
   Итератор = 0;
   Пока Итератор < КоличествоГодов Цикл
       Итератор = Итератор + 1;
       Список.Добавить(Итератор + Год(ДобавитьМесяц(ТекущаяДата(), 12)));
   КонецЦикла;
   
   Возврат Список;
   
КонецФункции

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

Процедура МероприятияШаблонПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ) Экспорт
   
   Элемент.ТекущаяСтрока.Год = Число(СтрЗаменить(Элемент.Имя, "Стр", ""));
   
КонецПроцедуры
2 Wobland
 
24.05.13
15:46
чем помочь?
3 Grobik
 
24.05.13
15:48
http://infostart.ru/public/128449/

Немного допилить для перевода. И результат перевода прогнать на ошибки.
4 Wobland
 
24.05.13
15:49
(3) гугл допилить? ;)
5 Wobland
 
24.05.13
15:51
(1) давай обработку или что у тебя там, сделаю ради развлечения и мелких материальных благ
6 Wobland
 
24.05.13
15:53
+год(добавить 12 месяцев) - это сильно, конечно
7 MSII
 
24.05.13
15:55
(6) Вся функция ПолучитьСписокГодов хороша.
8 Лефмихалыч
 
24.05.13
15:56
(0) нужно пригласить программиста
9 Wobland
 
24.05.13
15:57
(7) ага. задача сделать по-хорошему у автора, видимо, не стоит. ну и ладно
10 sikuda
 
24.05.13
15:59
(0) До народа доходит, что УФ это другая программа? Вам нужно будет переписать все руками как с 7.7 на 8. Как коммерческий проект 1С - молодцы.
11 toypaul
 
гуру
24.05.13
16:00
(0) 500 руб/ч :)
Программист всегда исправляет последнюю ошибку.