Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 17:08

поиск двух одинаковых строк

Автор Дмитрий1991, 17 мар 2015, 10:48

0 Пользователей и 1 гость просматривают эту тему.

has

А я посмотрел, код восьмерочный, и перенес в раздел 8...

Дмитрий1991


Дмитрий1991

я сделал так
СпрНом=СоздатьОбъект("Справочник.Справки");
СпрНом.ВыбратьЭлементы();                   
номерстроки=СпрНом.КоличествоСтрок()-1;   
сообщить(номерстроки);
а=СпрНом.ПолучитьСтрокуПоНомеру(номерстроки);
б=СпрНом.сотрудник;
Пока СпрНом.ПолучитьЭлемент() = 1 Цикл
Если СпрНом.Сотрудник = б тогда
  предупреждение("Сотрудник"+СпрНом.Сотрудник+"уже заведён");
конецесли;         
конеццикла;

пишет
номерстроки=СпрНом.КоличествоСтрок()-1;   
{Справочник.Справки.ФормаСписка.ФормаСписка.Модуль(3)}: Поле агрегатного объекта не обнаружено (КоличествоСтрок)

код я вставляю в модуль формасписок

Herby

Цитата: Дмитрий1991 от 30 мар 2015, 13:29{Справочник.Справки.ФормаСписка.ФормаСписка.Модуль(3)}: Поле агрегатного объекта не обнаружено (КоличествоСтрок)

ну и правильно пишет вам.

у объекта "справочник" нет такого метода "КоличествоСтрок()". Читайте справку.

ПолучитьСтрокуПоНомеру() также у вас в ошибку свалится.

эти методы работают только у объектов типа "Документ"

Дмитрий1991

подскажите тогда как найти одинаковые строки в столбце сотрудник

Herby

запрос по справочнику с условием, примерно так:

|Элем = Справочник.Справки.ТекущийЭлемент;
|Сотр = Справочник.Справки.Сотрудник;
|Группировка Элем;
|Условие(Сотр в ВыбСотр);

или через метод НайтиПоРеквизиту(), но в данном случае должен индекс стоять у реквизита сотрудник (галка "Сортировка" в свойствах реквизита)

DimonBugor

Цитата: Дмитрий1991 от 17 мар 2015, 10:48
Здравствуйте вопрос такой есть таблица "справки" нужно чтобы в ней после ввода имени сотрудника он выбирается из справочника "сотрудники" , если такой сотрудник уже заведён выводилось сообщение, что то типа он уже заведён и ни давал его заводить.

я нашёл код, но что то не могу в него въехать т.к. на 1с я программирую недавно объясните пожалуйста, кому не трудно

Процедура ПоискДублейСтрокВТабЧасти(ТЧ, Отказ) Экспорт

Если Тип(ТЧ) = Тип("ТаблицаЗначений") Тогда
  ТаблЗнач = ТЧ;
Иначе
  ТаблЗнач = ТЧ.Выгрузить();
КонецЕсли;

Отбор = Новый Структура();

Для каждого Стр Из ТаблЗнач Цикл
  Отбор.Очистить();
  Для каждого Колонки Из ТаблЗнач.Колонки Цикл
   Если Колонки.Имя <> "НомерСтроки" Тогда
    Отбор.Вставить(Колонки.Имя, Стр[Колонки.Имя]);
   КонецЕсли;
  КонецЦикла;

  Строки = ТаблЗнач.НайтиСтроки(Отбор);
  Если Строки.Количество() > 1 Тогда
   Для каждого НайденныеСтроки Из Строки Цикл
    Если Строки.Найти(НайденныеСтроки) > 0 Тогда
     СтрокаСообщения = "Строка № " + Строки[0].НомерСтроки + " совпадает со строкой № " + НайденныеСтроки.НомерСтроки;
     СообщитьОбОшибке(СтрокаСообщения, Отказ, "Уберите задвоения строк!");
    КонецЕсли;
   КонецЦикла;
     КонецЕсли;
КонецЦикла;
КонецПроцедуры

я вставляю его в модуль формы где находится таблица, как я понимаю вместо ТЧ мне надо подставить "Справки" но что то он ругается на синтаксис заранее спасибо   
Разве у вас нет на предприятии полных тезок?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск