Имя: Пароль:
1C
1C 7.7
v7: Табличное поле 1с++: добавить флажок
0 Aristo
 
26.08.11
10:09
Проискал весь яндекс , но не смог найти внятного примера использования флажка с возможностью изменения его пользователем.
Это инициализация табличного поля по источнику
Для сч = 1 по тзРезультат.КоличествоКолонок() цикл
           
           Заголовок = "";
           Ширина = 0;
           Данные = тзРезультат.ПолучитьПараметрыКолонки(Сч,,,,Заголовок,Ширина);
           Колонка = гТабличноеПоле.Колонки.Добавить(Данные);
           Если Сч = 1 Тогда
               Картинка = СоздатьОбъект("Картинка");
               Картинка.Загрузить(КаталогИБ()+"ExtForms\map1.bmp");
               Картинка.РежимРисования(1);
               Колонка.УстановитьКартинкиСтрок(Картинка,);
           КонецЕсли;
           Колонка.Заголовок         = Заголовок;
           Колонка.Данные              = Данные;
           Колонка.Ширина             = Ширина*2;
           Колонка.ПереноситьПоСловам = 1;
           Если СписокКолонокНаСледующейСтроке.НайтиЗначение(Данные)<>0 Тогда
               Колонка.Положение = 1;
           КонецЕсли    ;
           
           Если СписокКолонокВТойЖеКолонке.НайтиЗначение(Данные)<>0 Тогда
               Колонка.Положение = 2;
           КонецЕсли;    
           Если СписокНевидимыхКолонок.НайтиЗначение(Данные)<>0 Тогда
               Колонка.Видимость = 0;
           КонецЕсли;    
       КонецЦикла;
1 Anatolik
 
26.08.11
10:18
2 Aristo
 
26.08.11
10:22
да есть документация, но я только вчера его начал использовать, мне документации мало, мне надо примеры увидеть
Например, как использовать метод "Отображать флажок"
, Значение флажка.
Задача такая - пометить некоторые поля из списка, и потом обработать только эти поля.
По документации - читаю, но в коде - туплю
3 viktor_vv
 
26.08.11
10:22
Делал так.

Процедура мВывестиЯчейку(ОформлениеСтроки,ДанныеСтроки,идКолонки)
   ОбъектЯчейка=ОформлениеСтроки.Ячейки.Получить(идКолонки);
   ТекДанные = ДанныеСтроки.Получить(идКолонки);    
   ОбъектЯчейка.ОтображатьТекст = 0 ;
   ОбъектЯчейка.ОтображатьФлажок = 1 ;
   ОбъектЯчейка.ЗначениеФлажка = ТекДанные ;        


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

Процедура фтпКлиентыПриВыводеСтроки(отпКлиенты, ОформлениеСтроки, ДанныеСтроки)
       мВывестиЯчейку(ОформлениеСтроки,ДанныеСтроки,"Call") ;
КонецПроцедуры

Процедура фтпКлиентыПриВыбореФлажка(ДанныеСтроки, Колонка, ТипРегиона)
   Если ДанныеСтроки.ТекущаяКолонка.Имя = "Call" Тогда
       НомерСтрокиТЗ = ДанныеСтроки.ТекущиеДанные.НомерСтроки ;
       ТекДанные = ДанныеСтроки.ТекущиеДанные.Call;    
       НовыеДанные = ?(ТекДанные = 1,0,1) ;
       
       мЗаписатьВбазуПРИзнак("Call",НомерСтрокиТЗ,НовыеДанные);

   КонецЕсли ;    
   
КонецПроцедуры
4 Aristo
 
26.08.11
10:25
(3) спасибо. маленький вопросик - правильно ли я понимаю что название предопределенной процедуры собирается из имени реквизита табличного поля на форме и самого имени предопределенной процедуры ?
5 viktor_vv
 
26.08.11
10:26
Да. В (3) фтпКлиенты - это идентификатор кнопки на которую навешено табличное поле.
6 Aristo
 
26.08.11
10:49
А можешь еще мЗаписатьБазуВПризнак увидеть?
Я просто не увидел как обновляется табличное поле после НовыеДанные = ?(ТекДанные = 1,0,1) ;
По идее нужно задать чтобы тп обновилось и показало изменения флага.
Или я неправ ?
7 viktor_vv
 
26.08.11
10:53
Процедура мЗаписатьВбазуПРИзнак(ИмяПоляВБазе,пНомерСтрокиТЗ,пНовыеДанные) // ,пНовыеДанные
   Если пНомерСтрокиТЗ > 0 Тогда
       
   фтзКлиенты.УстановитьЗначение(пНомерСтрокиТЗ,ИмяПоляВбазе,пНовыеДанные);
           отпКлиенты.ОбновитьСтроки();
   КонецЕсли ;    
КонецПроцедуры

Убрал лишнее. Там еще писалось в стороннюю табличку. фтзКлиенты - источник данных для табличного поля.
8 viktor_vv
 
26.08.11
10:54
(7)+ оТПКлиенты - объект таблтчное поле.
9 Aristo
 
26.08.11
13:16
(8) ага, обновитьстроки(). спасибо
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn