Вход | Регистрация
 

Условие тз, оформление.

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

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

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

Необходимо оформление сделать в одной процедуре.
   ДенисЧ
 
3 - 22.10.19 - 10:54
А зачем в одной процедуре делать, если у тебя обработчики событий свои на каждую тп?
   Ёпрст
 
4 - 22.10.19 - 10:55
(0) весь код в топку и по-человечески  вопрос задать.
   catena
 
5 - 22.10.19 - 10:57
А зачем флажки оформлением расставлять?
   Ёпрст
 
6 - 22.10.19 - 11:11
(5) автор просто не ведает, что творит
   Nemirov
 
7 - 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]);
            КонецЕсли;  



Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.