Имя: Пароль:
1C
1C 7.7
v7: Доработка табличной части
0 america2013
 
06.11.13
14:21
Здравствуйте, уважаемые форумчане!
Обращаюсь к вам за советом.
Создаю обработку с целью: в таблицу значений на форме в одну колонку заполняю документы, в другую - отметку. Затем перебирая в цикле эту таблицу отпеределяю, что делать с документом, в зависимости от отметки. По сути отметка должна иметь только 2 значения. На данный момент выкрутился типом Число, но я бы хотел доработать так, чтобы вместо поля с "1" был флажок для выбора, где-то у кого-то видел реализацию такой красоты, вот и хотел бы применить у себя. Если кто знает, как реализовать, пожалуйста подскажите как? Заранее благодарен!!!


Имею код:

Процедура Заполнить()
    СписокДокументов.НоваяКолонка("Выгружать", "Число",1,, "Выгружать");
    СписокДокументов.НоваяКолонка("СсылкаНаДокумент",  "Документ.ПлатежноеПоручение",,,"Документ");
    СписокДокументов.НоваяКолонка("НаименованиеДокумента",  "Строка",100,,"НаименованиеДокумента");
    
    СписокДокументов.ВидимостьКолонки("СсылкаНаДокумент", 0);
    
    
    Док = СоздатьОбъект("Документ.ПлатежноеПоручение");
    Док.ВыбратьДокументы(НачДата, КонДата);
    
    Пока Док.ПолучитьДокумент() > 0 Цикл
        
        
            
            СписокДокументов.НоваяСтрока();
            СписокДокументов.СсылкаНаДокумент  = Док;
            СписокДокументов.НаименованиеДокумента  = "Платежное поручение " + Док.НомерДок + " от " + Док.ДатаДок;
            СписокДокументов.Выгружать  = 1;

    КонецЦикла;              
    
    
КонецПроцедуры
1 1dvd
 
06.11.13
14:22
Правой кнопкой по таблице значений там Свойства ... Картинка.
2 palpetrovich
 
06.11.13
14:24
Список с пометками не устроит?
3 Cthulhu
 
06.11.13
14:29
ТвояТЗ.ВыводитьПиктограммы("КолонкаТипЧислоКотороеЕдиницаИлиНольНоНадоВыводитьФлажок",1,<ИзКартинкиСвойствТзНомерПиктограмыыКотораяДолжнаБытьОтображенаДляЕдиничкиПричемПредшествующаяЕйБудетОтображенаДляНуля>);
4 Cthulhu
 
06.11.13
14:30
в(3) "1," конечно же лишний параметр, да.
5 palpetrovich
 
06.11.13
14:30
+(2) типа так:
Пока Док.ПолучитьДокумент() > 0 Цикл
    СписокДокументов.ДобавитьЗначение(Док, "Платежное поручение " + Док.НомерДок + " от " + Док.ДатаДок);
КонецЦикла;  

ну и если надо:
Для Инд=1 По СписокДокументов.РазмерСписка() Цикл
    СписокДокументов.Пометка(Инд,1);
КонецЦикла;


// СписокДокументов - список с пометками на форме
6 america2013
 
06.11.13
14:43
(1) Не понимаю, что мне это даст. Изначально на таблице нет колонок, они определяются программно.

(2),(5) Это элемент формы - список, верно? Я не против его попробовать но, как к нем эту пометку прицепить?

(3) Применил. Кстати с выбором картинки из (1). Но я наверное не точно выразился в просьбе. Мне нужна отметка, которую я бы мог менять. Что-то типа Сhecklistbox из delphi, если кто знает-помнит.
7 mikecool
 
06.11.13
14:49
(6) добавил на форму список, пкм на нем - в дополнительно ставишь галку "с пометками", все
8 Сияющий Асинхраль
 
06.11.13
14:54
(6) Ну тебе же уже все рассказали, добавляешь картинку на форму, у картинки два состояния: галка снята - галка поставлена, и в зависимости от двойного щелчка по колонке с картинкой меняешь как картинку, так и содержание соответсвующей колонки с 0 на 1 (или с 1 на 2), вот и все собсно...
9 america2013
 
06.11.13
15:27
(8) Я его щелкал, щелкал. Реакции не было. Наверное что-то неправильно делал. Но суть в том, что в задачи не стояло, как именно менять состояние для обработки, поэтому применил Список с пометками, быстрее вник. В итоге получил желаемый результат:

Процедура Заполнить()
    Док = СоздатьОбъект("Документ.ПлатежноеПоручение");
    Док.ВыбратьДокументы(НачДата, КонДата);
    
    Пока Док.ПолучитьДокумент() > 0 Цикл
        
        СписокДокументов2.ДобавитьЗначение(Док, "Платежное поручение " + Док.НомерДок + " от " + Док.ДатаДок);
                
    КонецЦикла;  
    
    Для Инд=1 По СписокДокументов2.РазмерСписка() Цикл
        СписокДокументов2.Пометка(Инд,1);
    КонецЦикла;
    
    
    
КонецПроцедуры
10 america2013
 
06.11.13
15:27
...и процедура для обработки строк:
Процедура ОбработкаСтрок()
    Для поз=1 по СписокДокументов2.РазмерСписка() цикл
        Если СписокДокументов2.Пометка(поз)=0 тогда
            Сообщить("Не выбран" + СписокДокументов2.ПолучитьЗначение(поз));
        Иначе
            Сообщить("Выбран" + СписокДокументов2.ПолучитьЗначение(поз));
        КонецЕсли;
        
    КонецЦикла;
    
КонецПроцедуры
11 america2013
 
06.11.13
15:28
Спасибо братцы за поддержку и учатие!!! Сделаем мир (1С) красивее и доступнее!)))
12 palpetrovich
 
06.11.13
16:27
(10) а ккой в этом коде смысл? зачем все это нужно?
13 america2013
 
07.11.13
08:26
(12) Я это написал в качестве дополнения к первой задаче, где отбирались определенные документы, ведь мало создать такой список с документами для отображения, он ведь не для визуализации, а для последующей обработки результата расставления всех этих галочек. Просто на случай, если кому-то может пригодиться.

Всем добра и мира : )
Основная теорема систематики: Новые системы плодят новые проблемы.