Имя: Пароль:
1C
 
Проблема с пометкой
0 Nemirov
 
22.10.19
16:20
Проблема с отметкой  на первой тз она отображается https://ibb.co/CQY2w5Z
А на второй нет https://ibb.co/PY80bK2 Где ошибка?
1 Nemirov
 
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.СоздатьКолонки();
КонецПроцедуры
2 hhhh
 
22.10.19
16:32
(1) чего-то хрень какая-то у вас

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

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

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

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

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

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