Имя: Пароль:
1C
1С v8
Проблема с флажком 2ч
,
0 Baumgartlinger
 
22.02.19
16:59
Добрый день
Решил с Вашей помощью проблему: Проблема с флажком
но как корректно заполнить значение флажка по условию при открытии - я просто понятия не имею
опять, указываю при каком условии поставить Истину - истина присваивается, а изменять значения не могу
1 Baumgartlinger
 
22.02.19
17:17
Процедура ПриОткрытии()
    //Выгрузить = Истина;
    
    Если ДокументСписок.Отбор.ВыгруженоВПрофит.Значение = Ложь Тогда
      //ЭлементыФормы.ДокументСписок.Колонки.Выгрузить.ЭлементУправления.Значение =  Истина;
      //ЭлементыФормы.ДокументСписок.Колонки.Выгрузить.ДанныеФлажка = НЕ ДокументСписок.Отбор.ВыгруженоВПрофит.Значение;
      //ЭлементыФормы.ДокументСписок.Колонки.Выгрузить.ДанныеФлажка = "Истина";
      
  КонецЕсли;              
КонецПроцедуры

крайние попытки выглядели так
2 RomanYS
 
22.02.19
17:41
(0) Странный ход. Лучше бы поднял ту ветку, если хочется начать с чистого листа - тогда уж давай вводные до чего ты там дошел.

(1) Заполнять надо коллекцию в которой ты кешируешь свои флажки, можно запросом. Принципиальный вопрос учитывать ли периоды и отборы.
3 Baumgartlinger
 
22.02.19
17:54
(2) Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
    
    Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        СтрПоиска = СоответствиеДоков.Получить(ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит);
        Если СтрПоиска<>Неопределено  Тогда
            СоответствиеДоков.Вставить(ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит,Ложь);
            СтрПоиска = ложь;
        КонецЕсли;
        ОформлениеСтроки.Ячейки.Выгрузить.ОтображатьФлажок = Истина;
        ОформлениеСтроки.Ячейки.Выгрузить.ЗначениеФлажка = СтрПоиска;
    КонецЦикла;
        
        //Если ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит = Ложь Тогда
        //ОформлениеСтроки.Ячейки.Выгрузить.ЗначениеФлажка = Истина
КонецПроцедуры

приведенная ниже процедура: ставлю точку останова, когда изменяю значение флажка - процедура не срабатывает
срабатывает лишь когда кликаю мимо флажка (в этой же колонке), и оно летит открывать документОснование

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

ну и все, пытался внедрять всяко-разные комбинации ПриОткрытии
4 Baumgartlinger
 
23.02.19
13:11
вся фишка в том, я не знаю как при открытии мне обратиться к колонке с флажком, соответственно заполнив ее по условию
при открытии надо загнать все в соответствие?
5 RomanYS
 
23.02.19
13:17
(4) >> вся фишка в том, я не знаю как при открытии мне обратиться к колонке с флажком, соответственно заполнив ее по условию
к колонке можно обратиться, к данным в ней нет

>>при открытии надо загнать все в соответствие?
загнать - Да
все? - зависит от задачи
6 Baumgartlinger
 
23.02.19
13:36
(5) спасибо, тогда попробую разобраться с синтаксисом
7 Baumgartlinger
 
25.02.19
13:18
СоответствиеДоков.Вставить(Да,  ДокументСписок.Отбор.ВыгруженоВПрофит.Значение = Ложь);
    СоответствиеДоков.Вставить(Нет,  ДокументСписок.Отбор.ВыгруженоВПрофит.Значение = Истина);    
    
    Если ДокументСписок.Отбор.ВыгруженоВПрофит.Значение = Ложь Тогда
        Выгрузить = СоответствиеДоков.Получить(Да);
    Иначе
        Выгрузить = СоответствиеДоков.Получить(Нет);
    КонецЕсли;  
Подскажите пожалуйста, что именно тут не так?(догадываюсь что почти все)
8 Ёпрст
 
25.02.19
13:21
(3) Событие будет приИзменениеФлажка
9 Baumgartlinger
 
25.02.19
13:23
(8) оно висит у меня приоткрытии
мне и надо чтоб оно подставило все при загрузке списка :/
10 Ёпрст
 
25.02.19
13:27
(9) в ПриОткрытии вообще не надо ничего писать
11 Ёпрст
 
25.02.19
13:28
если только ты не собираешься где-то протом хранить то, что отметил флажками
12 Baumgartlinger
 
25.02.19
13:33
(11) а как же мне тогда подставить соответствие?
(если документ был выгружен ранее в эксель, и в реквизите стоит истина - то тут в поле Выгрузить я должен проставить автоматически галочки там, где доки не выгружены (но, должна сохраняться возможность проставлять/убирать галочки), осталось лишь проставить эти галочки по условию и все)
13 Baumgartlinger
 
25.02.19
14:29
(5) к колонке можно обратиться, к данным в ней нет
супер, и как же теперь передать значение туда..
мдэ
14 Ёпрст
 
25.02.19
14:42
(11) В реквизите ? Т.е ты собираешься признак выгрузки хранить в самом документе ? Если да, то всё надо делать по- другому
15 Baumgartlinger
 
25.02.19
14:46
(14) Нет, в документе уже хранится реквизит ВыгруженоВЭксель
И на его основании присваиваю значение данным колонки(пытаюсь присвоить), мой реквизит Выгрузить висит на форме, с которым и работаю вот
Если там Истина - тут ложь, и наоборот
16 Baumgartlinger
 
25.02.19
14:49
еще раз приведу код, если нужно

Перем СоответствиеДоков;

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

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

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

СоответствиеДоков = Новый Соответствие;
17 Ёпрст
 
25.02.19
14:50
(15)
Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
    
    Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        СтрПоиска = СоответствиеДоков.Получить(ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит);
        Если СтрПоиска<>Неопределено  Тогда
            СоответствиеДоков.Вставить(ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит,НЕ ОформлениеСтроки.ДанныеСтроки.ВыгруженоВЭксель);
            СтрПоиска = НЕ ОформлениеСтроки.ДанныеСтроки.ВыгруженоВЭксель;
        КонецЕсли;
        ОформлениеСтроки.Ячейки.Выгрузить.ОтображатьФлажок = Истина;
        ОформлениеСтроки.Ячейки.Выгрузить.ЗначениеФлажка = СтрПоиска;
    КонецЦикла;
18 Ёпрст
 
25.02.19
14:51
ну и заместо ДокументСписокВыбор нужно ДокументСписокПриИзмененииФлажка
19 Baumgartlinger
 
25.02.19
14:57
(18) СтрПоиска = СоответствиеДоков.Получить(ВыбраннаяСтрока.ВыгруженоВПрофит);

жалуется на ВыбраннаяСТрока, ее ведь нет в ПриИзмененииФлажка
заменять на ДокументСписок.Отбор.ВыгруженоВПрофит.Значение?
20 Baumgartlinger
 
25.02.19
14:59
(18) Элемент.ТекущиеДанные.ВыгруженоВПрофит, думаю так корректно
21 Baumgartlinger
 
25.02.19
15:00
(18) как бы прискорбно не звучало, но не заполняется
22 Ёпрст
 
25.02.19
15:02
(19) смотреть на ЭлементыФормы.ДокументСписок.ТекущиеДанные
23 Baumgartlinger
 
25.02.19
15:07
(22) Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
    Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        СтрПоиска = СоответствиеДоков.Получить(ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит);
        Если СтрПоиска<>Неопределено  Тогда
            СоответствиеДоков.Вставить(ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит,НЕ ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит);
            СтрПоиска = НЕ ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит;
        КонецЕсли;
        ОформлениеСтроки.Ячейки.Выгрузить.ОтображатьФлажок = Истина;
        ОформлениеСтроки.Ячейки.Выгрузить.ЗначениеФлажка = СтрПоиска;
    КонецЦикла;
КонецПроцедуры

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

http://prntscr.com/mptapf
24 Ёпрст
 
25.02.19
15:08
(23) ты читать то вообще умеешь ?
25 Ёпрст
 
25.02.19
15:08
это че за феерический п..ц ?
оответствиеДоков.Вставить(ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит,НЕ ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит);
26 Ёпрст
 
25.02.19
15:09
мля..
Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
    
    Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        СтрПоиска = СоответствиеДоков.Получить(ОформлениеСтроки.ДанныеСтроки.ВыгруженоВПрофит);
        Если СтрПоиска<>Неопределено  Тогда
            СоответствиеДоков.Вставить(ОформлениеСтроки.ДанныеСтроки.ССылка,НЕ ОформлениеСтроки.ДанныеСтроки.ВыгруженоВЭксель);
            СтрПоиска = НЕ ОформлениеСтроки.ДанныеСтроки.ВыгруженоВЭксель;
        КонецЕсли;
        ОформлениеСтроки.Ячейки.Выгрузить.ОтображатьФлажок = Истина;
        ОформлениеСтроки.Ячейки.Выгрузить.ЗначениеФлажка = СтрПоиска;
    КонецЦикла;
27 Ёпрст
 
25.02.19
15:10
В соответствии у тебя должно быть ключ - это ссылка на документ и значение - булево, твой флажок. А тя че ?
28 Ёпрст
 
25.02.19
15:10
полный пэ, какой-то
29 Baumgartlinger
 
25.02.19
15:21
(28) перестаньте яроствовать
виноват в своей деревянности

я вам назвал переменную ВыгруженоВЭксель, но сам в коде пишу ВыгруженоВПрофит, это корректный вариант наименования данной переменной, поэтому и стал заменять не думая


ладно, все, спасибо большое, тема закрыта
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.