Имя: Пароль:
1C
 
Условие тз, оформление.
0 Nemirov
 
22.10.19
10:52
Есть внешняя обработка, в ней две страницы, на каждой странице есть тз с отметками. Как сделать условие что бы Отметки не пересекались в процедуре "привыводестроки".
1 Nemirov
 
22.10.19
10:52
Процедура ТП1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    
            ОформлениеСтроки.Ячейки.Отметка.ОтображатьФлажок = Истина;
            ОформлениеСтроки.Ячейки.Отметка.ОтображатьТекст  = Ложь;
                
            Если ДанныеСтроки.Отметка = Неопределено ИЛИ ДанныеСтроки.Отметка = Ложь Тогда
                ОформлениеСтроки.Ячейки.Отметка.Флажок = Ложь;
            Иначе
                ОформлениеСтроки.Ячейки.Отметка.Флажок = Истина;
            КонецЕсли;

    
                   ОформлениеСтроки.Ячейки.Отметка2.ОтображатьФлажок = Истина;
            ОформлениеСтроки.Ячейки.Отметка2.ОтображатьТекст  = Ложь;
                
            Если ДанныеСтроки.Отметка2 = Неопределено ИЛИ ДанныеСтроки.Отметка2 = Ложь Тогда
                ОформлениеСтроки.Ячейки.Отметка2.Флажок = Ложь;
            Иначе
                ОформлениеСтроки.Ячейки.Отметка2.Флажок = Истина;
            КонецЕсли;

    
    
КонецПроцедуры
2 Nemirov
 
22.10.19
10:53
ТП1 это тз на 1странице Тп2 таблица значений на 2странице

Необходимо оформление сделать в одной процедуре.
3 ДенисЧ
 
22.10.19
10:54
А зачем в одной процедуре делать, если у тебя обработчики событий свои на каждую тп?
4 Ёпрст
 
22.10.19
10:55
(0) весь код в топку и по-человечески  вопрос задать.
5 catena
 
22.10.19
10:57
А зачем флажки оформлением расставлять?
6 Ёпрст
 
22.10.19
11:11
(5) автор просто не ведает, что творит
7 Nemirov
 
22.10.19
11:25
(3)
Процедура ПриОткрытии()
    ///Для ТЗ По Номенклатуре    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЛОЖЬ КАК Отметка,
    |    РезервРЦ.Номенклатура КАК Номенклатура,
    |    РезервРЦ.Характеристика КАК Характеристика,
    |    РезервРЦ.ЗарезервированоЗа КАК ЗарезервированоЗа,
    |    РезервРЦ.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |    РезервРЦ.ПоДокументу КАК ПоДокументу,
    |    РезервРЦ.Количество КАК Количество
    |ИЗ
    |    РегистрСведений.РезервРЦ КАК РезервРЦ";
    
    ТП1 = Запрос.Выполнить().Выгрузить();
    ЭлементыФормы.ТП1.СоздатьКолонки();
    ////Для ТЗ По Документу      
    ЗРП = Новый Запрос;
    ЗРП.Текст =
        "ВЫБРАТЬ
        |    ЛОЖЬ КАК Отметка2,
        |    РезервРЦ.ПоДокументу КАК ПоДокументу,
        |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РезервРЦ.Количество) КАК Количество
        |ИЗ
        |    РегистрСведений.РезервРЦ КАК РезервРЦ
        |
        |СГРУППИРОВАТЬ ПО
        |    РезервРЦ.ПоДокументу";
    ТП2 = ЗРП.Выполнить().Выгрузить();
    ЭлементыФормы.ТП2.СоздатьКолонки()


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




Процедура ОсновныеДействияФормыУдалить(Кнопка,Объект)     
    
    Для Каждого Строка Из ТП1 Цикл  
        Если Строка.Отметка Тогда
            НаборЗаписей = РегистрыСведений.РезервРЦ.СоздатьНаборЗаписей();
            НаборЗаписей.Отбор.Номенклатура.Установить(Строка.Номенклатура);
            НаборЗаписей.Отбор.Характеристика.Установить(Строка.Характеристика);
            НаборЗаписей.Отбор.ЕдиницаИзмерения.Установить(Строка.ЕдиницаИзмерения);
            НаборЗаписей.Отбор.ЗарезервированоЗа.Установить(Строка.ЗарезервированоЗа);
            НаборЗаписей.Отбор.ПоДокументу.Установить(Строка.ПоДокументу);
            
            
            Если НаборЗаписей.Количество() > 0 Тогда
                НаборЗаписей.Удалить(НаборЗаписей[0]);
            КонецЕсли;  
            НаборЗаписей.Записать();
            НаборЗаписей.Прочитать();
        КонецЕсли;
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        | ЛОЖЬ КАК Отметка,
        |    РезервРЦ.Номенклатура КАК Номенклатура,
        |    РезервРЦ.Характеристика КАК Характеристика,
        |    РезервРЦ.ЗарезервированоЗа КАК ЗарезервированоЗа,
        |    РезервРЦ.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        |    РезервРЦ.ПоДокументу КАК ПоДокументу,
        |    РезервРЦ.Количество КАК Количество
        |ИЗ
        |    РегистрСведений.РезервРЦ КАК РезервРЦ";
        
        ТП1 = Запрос.Выполнить().Выгрузить();
        ЭлементыФормы.ТП1.СоздатьКолонки();
    КонецЦикла;
    
КонецПроцедуры

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

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

КонецПроцедуры
Процедура ТП2ПриИзмененииФлажка(Элемент, Колонка)
        Если Элемент.ТекущаяСтрока.Отметка2 Тогда
        Элемент.ТекущаяСтрока.Отметка2 = Ложь
    Иначе
        Элемент.ТекущаяСтрока.Отметка2= Истина;
    КонецЕсли;

КонецПроцедуры
Процедура ВыбратьВсеНажатие(Элемент)
    
    Для каждого Строка Из ТП1 Цикл
        Строка.Отметка = Истина;
    КонецЦикла;
    ЭлементыФормы.ТП1.СоздатьКолонки();
    
    Для каждого Строка Из ТП1 Цикл
        Строка.Отметка2 = Истина;
    КонецЦикла;
    ЭлементыФормы.ТП2.СоздатьКолонки();

КонецПроцедуры
Процедура СнятьВсеНажатие(Элемент)
    
    Для каждого Строка Из ТП1 Цикл
        Строка.Отметка = Ложь;
    КонецЦикла;
    ЭлементыФормы.ТП1.СоздатьКолонки();
    Для каждого Строка Из ТП2 Цикл
        Строка.Отметка2 = Ложь;
    КонецЦикла;
    ЭлементыФормы.ТП2.СоздатьКолонки();
КонецПроцедуры
8 Ёпрст
 
22.10.19
12:22
(7) забавный способ удаления записей из регистра сведений..

Добавь в текст запроса Ложь как Отметка , после создания колонок установи колонке Отметка что это флажок и редактировать непосредственно. Усё.
Ну и код в части Прочитать у рег сведения выкини, как и этот код

Если НаборЗаписей.Количество() > 0 Тогда
                НаборЗаписей.Удалить(НаборЗаписей[0]);
            КонецЕсли;  

Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.