Имя: Пароль:
1C
1С v8
Как установить флажки в форме списка документа
,
0 m_roose
 
02.06.14
13:13
Нужно в обработке обрабатывать несколько документов одного типа. Не знаю как организовать выбор этих документов. Требуют сделать именно флажком в форме списка документов. При этом типовую форму списка желательно не менять. Так вот как это можно сделать? Именно как флажок добавить? Помогите, пожалуйста. форма обычная
1 zulu_mix
 
02.06.14
13:14
используй подбор и не изобретай велосипед с квадратными колесами
2 m_roose
 
02.06.14
13:17
(1) причем здесь подбор.. нужно галочками выбирать нужные документы. другие варианты не рассматриваются
3 Enders
 
02.06.14
13:19
А что с ними потом делать? может посмотреть в сторону обработки?
4 NcSteel
 
02.06.14
13:20
В обработке реализуй свою форму списка документа
5 m_roose
 
02.06.14
13:22
(3) ну да, нужна именно обработка, которая будет потом эти документы обрабатывать
(4) ну вот не могу понять как это сделать, не подскажете? с чего вообще начать
6 m-serg74
 
02.06.14
13:26
(5) начни с создания обработки, Ваш КО :)
7 m_roose
 
02.06.14
13:28
(6) ок, что дальше?) как на форму добавить этот флажок?
8 kosts
 
02.06.14
13:29
(0) Как новичку дам готовое. С тебя благодарность (см. л.к. у меня).


Перем СписокДокументовДляОбработки;

Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
    
    Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        ОформлениеСтроки.Ячейки.Флажок1.УстановитьФлажок(СписокДокументовДляОбработки.Получить(ОформлениеСтроки.ДанныеСтроки.Ссылка) <> Неопределено);
    КонецЦикла;
    
КонецПроцедуры

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

Процедура Кнопка1Нажатие()
    
    Для каждого т Из СписокДокументовДляОбработки Цикл
        ДокСсылка = т.Ключ;
    КонецЦикла;
    
КонецПроцедуры

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

Колонка = ЭлементыФормы.ДокументСписок.Колонки.Вставить(0, "Флажок1");
Колонка.Имя = "Флажок1";
Колонка.Ширина = 3;
Колонка.Данные = "";
Колонка.ДанныеФлажка = "ПометкаУдаления";
Колонка.ИзменятьПозицию = Ложь;
Колонка.ИзменениеРазмера = ИзменениеРазмераКолонки.НеИзменять;
Колонка.ИзменятьВидимость = Ложь;
Колонка.ИзменятьНастройку = Ложь;
Колонка.РежимРедактирования =  РежимРедактированияКолонки.Непосредственно;
9 m-serg74
 
02.06.14
13:29
(7) для того чтоб добавить кудато флажок, сначала надо добавить список нужных документов на форму
10 m_roose
 
02.06.14
13:33
(8) спасибо конечно, но куда этот код добавлять? какая форма при этом должна быть? про благодарность тоже не ясно))
11 kosts
 
02.06.14
13:34
(10) Добавить в форму списка документов
12 m_roose
 
02.06.14
13:36
(11) при этом добавить на форму колонку для флажка?
13 kosts
 
02.06.14
13:42
(12) Не надо. Колонка с флажком добавляется программно.
14 m_roose
 
02.06.14
13:56
(13) спасибо, каким то волшебным для меня образом, этот код работает, но при нажатии на флажок открывается документ, а мне нужно, чтобы ставилась галочка, и потом с документами, у которых галочка стоит, можно было выполнять какие то действия
15 kosts
 
02.06.14
14:04
(14) А ну да, нужно обработчики в списке документов добавить: ДокументСписокПередНачаломИзменения и ДокументСписокПриПолученииДанных.
Действия с отмеченными происходит в процедуре Кнопка1Нажатие().
16 kosts
 
02.06.14
14:05
(15)+ Можно в принципе программно если форма документов типовая.
17 m_roose
 
02.06.14
14:42
(15) а что писать нужно в эти обработчики не подскажете?
18 kosts
 
02.06.14
14:45
(17) Дак сами обработчики написаны уже. Только добавить ссылки в таблице на форме на процедуры обработчики.
19 m_roose
 
02.06.14
14:52
(18) форма не типовая, не пойму зачем нужно добавлять эти обработчики? правильно я поняла, что, для того чтобы при нажатии на флажок не открывался документ, а ставилась галка, я должна это описать в процедуре Кнопка1Нажатие() ?
20 m_roose
 
02.06.14
14:58
(18) что-то я вообще вся запуталась. ни одна процедура из вашего кода не вызывается. откуда их нужно вызывать? что они делают? получается отрабатывает только часть кода, где создается программно колонка. до этого я сама тоже писала этот момент, но заступорилась и не разобралась как присвоить значение этой колонке. в общем тема открыта...
21 m_roose
 
02.06.14
15:00
( (18) так пардон, разобралась с процедурами..
22 m_roose
 
02.06.14
15:13
(18) большое спасибо, все заработало) но код для меня, к сожалению, все равно остался загадкой)
23 kosts
 
02.06.14
15:15
(22) Разберись, будет +1 к карме )))
24 m_roose
 
02.06.14
15:17
(23) да я пытаюсь конечно, но что-то пока не доходит)