Разработка в 1С 8.0
29361359

Код:


Процедура КонтрагентПриИзменении(Элемент)

Если Не Контрагент.Пустая() Тогда  

Если ТипЦен <> Контрагент.ТипЦен Тогда  

ТипЦен = Контрагент.ТипЦен;  

ПересчетЦен();  

КонецЕсли;  

КонецЕсли;  

КонецПроцедуры

 

 


Процедура ПриОткрытии()



//очищаются все страницы панели со всеми элементами управления,   

//после выполнения этого метода   

//панель имеет одну страницу и одну закладку   

Панель.Страницы.Очистить();  

   

//индекс первой страницы равен 0, изменим для нее имя и заголовок   

Панель.Страницы[0]. Имя = "СтраницаОсновные";  

Панель.Страницы[0].Заголовок = "Основные";  

   

//добавим вторую страницу, ее индекс будет 1  

Панель.Страницы.Добавить("СтраницаКартинка","Картинка",,);  

   

//добавим третью страницу, ее индекс будет 2   

Панель.Страницы.Добавить("СтраницаПрочее","Прочее",,);  

   

//сдвигаем третью страницу "Прочее" (с индексом 2)  

//на 1 позицию к началу  

Панель.Страницы.Сдвинуть(2,-1);  

   

//удалим страницу Прочее  

// в метод Удалить может передаваться номер или сама страница Панель Страницы  

Удалить(Панель.Страницы["СтраницаПрочее"]);  

   

//для страницы Картинка изменим текст заголовка  

//доступ к странице возможен по имени как к свойству коллекции Панель.Страницы.СтраницаКартинка.Заголовок = "Изображение";  

КонецПроцедуры

 




Процедура СписокПриВыводеСтроки(Элемент,

ОформлениеСтроки, ДанныеСтроки)  

//берем текущую валюту из параметра ДанныеСтроки   

ТекВалюта = ДанныеСтроки.Ссылка;  

   

//ссылка на регистр сведений  

РегКурсы = РегистрыСведений.КурсыВалют;  

   

//ссылка на оформление ячейки Курс  

ЯчейкаКурс = ОформлениеСтроки.Ячейки.Курс;  

   

//считываем курс из регистра сведений и выводим в ячейку   

Отбор = Новый Структура("Валюта",ТекВалюта);  

Курс = РегКурсы.ПолучитьПоследнее(,Отбор).Курс;  

ЯчейкаКурс.УстановитьТекст(Курс);  

КонецПроцедуры

В 1C:Предприятии 8.0 нет текстовых колонок, в которых можно вызвать функцию, как это было в версии 7.7. Вместо них предлагается использовать событие ПриВыводеСтроки, в котором можно выводить информацию в ячейки и управлять их внешним видом, используя объекты ОформлениеСтроки и ДанныеСтроки. У объекта ОформлениеСтроки есть свойство Ячейки, которое содержит коллекцию объектов ОформлениеЯчейки.  

 

Например, выведем справочник Номенклатура с указанием остатка товара на складе, а для тех товаров, у которых остаток меньше 10, установим предупреждающий цвет фона. Это позволит контролировать остатки товаров в реальном времени и вовремя заказывать дефицитные товары:  




ПроцедураСписокПриВыводеСтроки(Элемент,ОформлениеСтроки,ДанныеСтроки)  

СтруктураОтбора = Новый Структура("Номенклатура");  

СтруктураОтбора.Номенклатура = ДанныеСтроки.Ссылка;  

РегОстатки = РегистрыНакопления.УчетНоменклатуры;  

//считываем остаток из регистра  

тзОстатки = РегОстатки.Остатки(,СтруктураОтбора,  

"Номенклатура","Количество");  

Если тзОстатки.Количество() > 0 Тогда  

ОстатокТовара = тзОстатки[0].Количество;  

ЯчейкаОстаток = ОформлениеСтроки.Ячейки.Остаток;  

ЯчейкаОстаток.ОтображатъТекст = Истина;  

ЯчейкаОстаток.Текст = ОстатокТовара;  

Если ОстатокТовара < 10 Тогда  

ЯчейкаОстаток.ЦветФона = Новый Цвет(255,230,230);  

КонецЕсли;  

КонецЕсли;  

КонецПроцедуры  

На практике остаток товара лучше сравнивать не с конкретным значением, а с критическим уровнем запаса каждого товара, который определяется исходя из потребности в данном товаре. Заметим, что такой сервис предъявляет довольно высокие требования к производительности компьютера, потому что при каждом обновлении списка заново считываются данные из регистра, поэтому так делать крайне не рекомендуется. Этот пример был специально приведен, чтобы показать,




Кнопка = ЭлементыФормы.КнопкаОК;

Кнопка.ЦветТекстаКнопки = Новый Цвет(100,250,100);//зеленый

Кнопка.ЦветФонаКнопки = Новый Цвет(50,50,50);//серый

Кнопка.Рамка = Новый Рамка (ТипРамкиЭлементаУправления.Двойная,1); 

Кнопка.Шрифт = Новый Шрифт (,,Истина,Истина);//жирный и наклонный

 

//установим также сочетание клавиш Alt-P

Кнопка .СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.Р,Истина);

 

//назначим процедуру-обработчик события Нажатие 

//в модуле должна быть определена 

//процедура Сформировать с параметром Элемент 

Кнопка.УстановитьДействие("Нажатие",Новый Действие("Сформировать"));



Содержание раздела