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

1С:Предприятие :: 1С:Предприятие 8 общая

Условие проверки похожих полей табличной части

Условие проверки похожих полей табличной части
Я
   grandmaster
 
22.11.17 - 14:12
На управляемой форме, есть табличная часть (Накладные). По нажатию кнопки в таблицу прилетает более 400 записей. В каждой записи есть поле (Идентификатор) тип строка. Очень много записей, где этот Идентификатор повторяется. Так же есть поле (ВыбратьСтроку) тип булево, а вот теперь вопрос! Когда идёшь по списку накладных и проставляешь галку у нужных записей, необходимо сделать так, что если встречается запись с идентификатором, у которого уже стоит галка (т.е истина), сообщать ("запись с данным идентификатором уже выбрана") и на ней не проставлять галку.
Вот чтоб было более понятно. Например сейчас смотрю у 5-12-23 записи один и тот же идентификатор. И у 8-21-35-41 записи такая же ситуация. Теперь если ставлю галку на 5 записи и после когда попытаюсь поставить на 23 записи - мне вылетит сообщение и не даст поставить галку.
Надеюсь более-менее понятно изложил.
 
 
   grandmaster
 
1 - 22.11.17 - 14:14
Знаю что это надо делать через событие поля (ВыбратьСтроку) приизменение
   drcrasher
 
2 - 22.11.17 - 14:16
что не получается?
   FIXXXL
 
3 - 22.11.17 - 14:18
(1) при изменении флажка НайтиСтроки с Истина, долго думать
   grandmaster
 
4 - 22.11.17 - 14:19
(3) я именно так и делаю, только через массив, чтоб находил именно записи истина, с данным идентификатором, ща скину
   grandmaster
 
5 - 22.11.17 - 14:24
(2) &НаКлиенте
Процедура ТТНВыбранаПартияПриИзменении(Элемент)    
    
ТекущиеДанные = Элементы.Накладные.ТекущиеДанные;

ДанныеП = Новый Структура;
ДанныеП.Вставить("Идентификатор",      ТекущиеДанные.Идентификатор);
ДанныеП.Вставить("СтрокаВыбрана",    ТекущиеДанные.ВыбратьСтроку);    

Для каждого стр из Объект.Накладные Цикл
        
        ИдентификаторНакладной = стр.Идентификатор;         
        СтруктураНакладной = Новый Структура;
        СтруктураНакладной.Вставить("Идентификатор", ИдентификаторНакладной);
            НайденныеСтроки = Объект.Накладные.НайтиСтроки(СтруктураНакладной);
            
Если стр.ВыбратьСтроку= Истина Тогда
                 Сообщить ("запись с данным идентификатором уже выбрана!");
                    Прервать;    
            КонецЕсли;    

КонецПроцедуры
   grandmaster
 
6 - 22.11.17 - 14:26
на строчке
СтруктураНакладной.Вставить("Идентификатор", ИдентификаторНакладной);

прилетает
Значение не является значением объектного типа (Вставить)
   Numerus Mikhail
 
7 - 22.11.17 - 14:30
(6) Кажется вы чего-то недоговариваете. На этой строчке не должно падать.
   FIXXXL
 
8 - 22.11.17 - 14:30
(6) смотри в отладчике, что там в этой строке
   grandmaster
 
9 - 22.11.17 - 14:38
Всё теперь проходит. Только как теперь сделать чтоб оно галку не проставляло и если выбираю первую запись (тоесть такой идентификатор ещё не выбран) на ней тоже почему-то прилетает сообщение
   Numerus Mikhail
 
10 - 22.11.17 - 14:48
(9) потому что код неправильно написан
 
 Рекламное место пустует
   grandmaster
 
11 - 22.11.17 - 14:49
(10) ну подскажите где что исправить?
я только учусь пока
   Numerus Mikhail
 
12 - 22.11.17 - 14:53
Как-то так

Процедура ТТНВыбранаПартияПриИзменении(Элемент)    
    
ТекущиеДанные = Элементы.Накладные.ТекущиеДанные;
 
Если НЕ Стр.ВыбратьСтроку Тогда
Возврат;
КонецЕсли;

СтруктураНакладной = Новый Структура;
СтруктураНакладной.Вставить("Идентификатор", ИдентификаторНакладной);
СтруктураНакладной.Вставить("ВыбратьСтроку", Истина);
НайденныеСтроки = Объект.Накладные.НайтиСтроки(СтруктураНакладной);
Если НайденныеСтроки.Количество() > 1 Тогда

Сообщить ("запись с данным идентификатором уже выбрана!");
ТекущиеДанные.ВыбратьСтроку = Ложь;
КонецЕсли;

КонецПроцедуры
   FIXXXL
 
13 - 22.11.17 - 14:54
(9) галку сам снимай, кодом
и я не догоняю, зачем ты в цикле проверяешь?
   FIXXXL
 
14 - 22.11.17 - 14:55
(13) + ну вот, тебе уже все разжевали :)
   grandmaster
 
15 - 22.11.17 - 15:14
(12) спасибо спасибо спасибо :)

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