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

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

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

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

Дмитрий1991

Здравствуйте вопрос такой есть таблица "справки" нужно чтобы в ней после ввода имени сотрудника он выбирается из справочника "сотрудники" , если такой сотрудник уже заведён выводилось сообщение, что то типа он уже заведён и ни давал его заводить.

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

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

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

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

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

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

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

cska-fanat-kz

поле с сотрудником это ссылка на справочник Сотрудники.
при наборе руками ФИО платформа сама попытается по введенному значению найти в справочнике подходящий элемент.
другой вопрос что при нажатии на "..." вы попадаете в форму выбора из справочника где есть возможность создать новый элемент,
а вот тут уже никаких проверок - хоть 100 Ивановых заводите.
по большому счету именно в перед записью сотрудника и надо добавлять проверку на уникальность.
в любом случае приведенный код тут ваще никаким боком...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Дмитрий1991

Вот что надо сделать в форме элемента, когда мы выбрали сотрудника(красным цветом) надо сделать проверку на то, что если этот сотрудник выбран в форме (синим цветом) выводил сообщение,что типа он уже есть.

cska-fanat-kz

Тогда в справочнике Справки в ПередЗаписью() проверяете нет ли записываемого сотрудника среди уже введенных элементов.
Делается запросом.
Т.е. приведенный код вам по прежнему не помощник.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Дмитрий1991

Цитата: cska-fanat-kz от 18 мар 2015, 09:14
Тогда в справочнике Справки в ПередЗаписью() проверяете нет ли записываемого сотрудника среди уже введенных элементов.
Делается запросом.
Т.е. приведенный код вам по прежнему не помощник.

подскажите пожалуйста как обращаться к таблице, которая находится на форме списка и вообще как обращаться к элементам, которые находятся на форме. допустим в делфи делается так a:=form1.Edit1.Text; заранее спасибо.   

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Дмитрий1991

Цитата: cska-fanat-kz от 24 мар 2015, 11:19
элементы.ИмяЭлемента

а можете на примере объяснить, конкретно к этому вопросу   

cska-fanat-kz

применительно к вопросу - для проверки дублей элементы формы НЕ используются.
да и старый добрый RTFM никто не отменял.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Дмитрий1991

Цитата: cska-fanat-kz от 24 мар 2015, 11:42
применительно к вопросу - для проверки дублей элементы формы НЕ используются.
да и старый добрый RTFM никто не отменял.

тогда подскажите книжку хорошую по 1с 7.7 программированию где описана работа с формами

cska-fanat-kz

так у вас 7.7???????????????????????????????!!!!!!!!!!!!!!:xfbnsdfb:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск