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

Проблема с пометкой

Проблема с пометкой
Я
   Nemirov
 
22.10.19 - 16:20
Проблема с отметкой  на первой тз она отображается https://ibb.co/CQY2w5Z
А на второй нет https://ibb.co/PY80bK2 Где ошибка?
 
 
   Nemirov
 
1 - 22.10.19 - 16:20
Процедура ПриОткрытии()
    ///Для ТЗ По Номенклатуре    

    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    | ЛОЖЬ КАК Отметка,
    |    РезервРЦ.Номенклатура КАК Номенклатура,
    |    РезервРЦ.Характеристика КАК Характеристика,
    |    РезервРЦ.ЗарезервированоЗа КАК ЗарезервированоЗа,
    |    РезервРЦ.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |    РезервРЦ.ПоДокументу КАК ПоДокументу,
    |    РезервРЦ.Количество КАК Количество
    |ИЗ
    |    РегистрСведений.РезервРЦ КАК РезервРЦ";
    
    ТП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.СоздатьКолонки();
КонецПроцедуры
   hhhh
 
2 - 22.10.19 - 16:32
(1) чего-то хрень какая-то у вас
    Для каждого Строка Из ТП1 Цикл
        Строка.Отметка2 = Истина;
    КонецЦикла;
   Nemirov
 
3 - 22.10.19 - 16:41
(2) Процедура ставит отметки на всех строках.
   Михаил Козлов
 
4 - 22.10.19 - 16:42
Не хотите вместо таблицы значений использовать табличную часть обработки?
Не будет геморроя с колонками.
   dezss
 
5 - 22.10.19 - 16:43
НаборЗаписей = РегистрыСведений.РезервРЦ.СоздатьНаборЗаписей();
            НаборЗаписей.Отбор.Номенклатура.Установить(Строка.Номенклатура);
            НаборЗаписей.Отбор.Характеристика.Установить(Строка.Характеристика);
            НаборЗаписей.Отбор.ЕдиницаИзмерения.Установить(Строка.ЕдиницаИзмерения);
            НаборЗаписей.Отбор.ЗарезервированоЗа.Установить(Строка.ЗарезервированоЗа);
            НаборЗаписей.Отбор.ПоДокументу.Установить(Строка.ПоДокументу);
            
            
            Если НаборЗаписей.Количество() > 0 Тогда
                НаборЗаписей.Удалить(НаборЗаписей[0]);
            КонецЕсли;  
            НаборЗаписей.Записать();
            НаборЗаписей.Прочитать();
Это таки шо?
Как Количество может быть больше 0, если не прочитали еще. Кстати, этим кодом регистр очиститься по отбору.
   Nemirov
 
6 - 22.10.19 - 16:44
(5) При открытии выше)
   dezss
 
7 - 22.10.19 - 16:46
(6) Что выше?
Я тут привел законченный кусок кода, который тупо очищает регистр по отбору, при этом зачем-то проверяя количество. А потом его, внезапно, читает О_О
   dezss
 
8 - 22.10.19 - 16:47
(6) А про ОФ даже как-то вспоминать не хочется, если честно)))
   Nemirov
 
9 - 23.10.19 - 08:38
(5) При открытии выше) (7) Что ты гонишь, вот именно не  записав и не прочитав ты ее из тз удалишь и все в регистре все останется, 1000раз проверено этот кусок кода верный.
   catena
 
10 - 23.10.19 - 10:05
Вы собираетесь каждый день заводить по теме с одним и тем же вопросом?
   Ёпрст
 
11 - 23.10.19 - 10:09
(0) Процедура при выводе строки


на вот, пример там есть, свой код выкинь
   dezss
 
12 - 23.10.19 - 10:30
(9) Да е-мое.
Я про ТЗ вообще ничего не писал. Я комментировал только тот кусок, который выделил в (5), а в нем про ТЗ нет вообще ничего.
Там создается набор записей, устанавливается отбор, потом (не читая набор по отбору) проверяется количество. Там всегда будет 0 записей!!!
Потом этот набор записывается по набору измерений, установленному в отборе. Т.е. очищается, так как в этом наборе 0 записей. А потом его, зачем-то читаешь. Нафига его вообще читать, если ты только что удалил все записи из регистра по этому отбору?

Чтобы было более доходчиво. Вот этот код не имеет смысла вообще:
            Если НаборЗаписей.Количество() > 0 Тогда
                НаборЗаписей.Удалить(НаборЗаписей[0]);
            КонецЕсли;  
            НаборЗаписей.Прочитать();
   Ёпрст
 
13 - 23.10.19 - 10:31
(12) он не понимает, ему об этом говорили в прошлых сериях.
   dezss
 
14 - 23.10.19 - 17:29
е-мое...я сейчас посмотрел остальной код.
И ведь не учится.

Хотя б этот код
    Если Элемент.ТекущаяСтрока.Отметка Тогда
        Элемент.ТекущаяСтрока.Отметка = Ложь
    Иначе
        Элемент.ТекущаяСтрока.Отметка= Истина;
    КонецЕсли;
заменил на 
Элемент.ТекущаяСтрока.Отметка = Не Элемент.ТекущаяСтрока.Отметка;

Про код в ОсновныеДействияФормыУдалить, вообще лучше не говорить.
   hhhh
 
15 - 23.10.19 - 17:43
(12) не ну процедура же ДействияФормыУдалить

и этот код у него удаляет эту строчку, тут не поспоришь.
   dezss
 
16 - 24.10.19 - 08:45
(15) Ага...попутно удаляя записи из базы)))
   dezss
 
17 - 24.10.19 - 08:46
(16) + Да еще и в цикле перезаполняя ТЗ несколько раз.
   Nemirov
 
18 - 24.10.19 - 10:20
(12) Какое отношение имеет данный код к моему вопросу
   Nemirov
 
19 - 24.10.19 - 10:22
(17) Ты сюда пришел оценивать структуру кода? Если не имеешь понятия какой ответ дать по моему вопросу иди откуда пришел!
   hhhh
 
20 - 24.10.19 - 10:22
(18) ну, раз вы его сюда выложили, значит имеет. Если бы не имел отношения, вы бы его сюда не выкладывали, логично?
   hhhh
 
21 - 24.10.19 - 10:25
(18) а тот кусок кода, который в (2) поправили?
   МимохожийОднако
 
22 - 24.10.19 - 10:30
(18) (19) ОФФ Хамство. ИМХО
Вместо точного описания вывалил мусор с кодом.
...
Советую научиться пользоваться СП и отладчиком.
   Nemirov
 
23 - 24.10.19 - 12:22
(21) Да, спасибо.
   dezss
 
24 - 24.10.19 - 14:55
(18) А зачем он тут, если его не предполагалось оценивать?
(19) Т.е. учиться мы не собираемся. Ок.
   dezss
 
25 - 24.10.19 - 14:57
(24) + вот лично я поблагодарил бы человека, если бы он указал мне, где у меня неправильно или неэффективно.


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