Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
12 Дек 2017, 03:57
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: запрет на запись в справочнике  (Прочитано 3213 раз)

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

Оффлайн ls600

  • ****
  • Сообщений: 322
  • РЕПУТАЦИЯ: 20
  • КПД: 6%
  • Регистрация: 2012-05-14
  • Сайт: 
  • Профессия: Программист 1С
Доброго времени суток. Помогите разобраться в коде. Ситуация такая нужно запретить создание контрагента в справочнике если такой уже есть.
База самописная, форма обычная.



Функция ПроверкаДубликатовКонтрагента()

КоличествоЗнаковРНН = СтрДлина(ЭлементыФормы.РНН.Значение);
Если КоличествоЗнаковРНН = 12 Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Контрагенты.Ссылка,
| Контрагенты.РНН,
| Контрагенты.Наименование
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.Ссылка <> &Ссылка
| И Контрагенты.ЭтоГруппа = ЛОЖЬ
| И Контрагенты.РНН = &РНН";

Запрос.УстановитьПараметр("Ссылка", Ссылка);    
Запрос.УстановитьПараметр("РНН"   , ЭлементыФормы.РНН.Значение);
Результат = Запрос.Выполнить();

Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
ТекстСообщения = "";

КонецЕсли;
КонецЕсли;

возврат истина;     <<<------ что то с возвратом
КонецФункции




Процедура ПередЗаписью(Отказ)

ПрисутствиеОшибок = ПроверкаДубликатовКонтрагента();

Если ПрисутствиеОшибок Тогда
Предупреждение("Контрагент уже есть в базе ...",,"Контрагент не записан");
Отказ = Истина;


КонецЕсли;



КонецПроцедуры





если так и оставить то запрет полный на создание контрагента :D



Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Возврат у вас без условия и всегда возвращает истину, не важно на код функции

      Если Не Результат.Пустой() Тогда 
            Выборка = Результат.Выбрать();
            ТекстСообщения = "";
            возврат истина;             
         КонецЕсли;
      КонецЕсли;
     
      возврат Ложь;   
КонецФункции
наверно так!!!
Помогли, отблагодари!

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
интересный у вас код :D
вне зависимости от результата запроса ВСЕГДА возвращается ИСТИНА, т.е. ВСЕГДА как бы есть дубль.
Скорее всего в конце функции надо возвращать ЛОЖЬ, а вот если попали в
Если Не Результат.Пустой() Тогда 
КонецЕсли;
то как раз вернуть нужно ИСТИНУ - значит нашли контрагента по заданным условиям.
Если Не Результат.Пустой() Тогда 
Возврат Истина
КонецЕсли;

Оффлайн ls600

  • ****
  • Сообщений: 322
  • РЕПУТАЦИЯ: 20
  • КПД: 6%
  • Регистрация: 2012-05-14
  • Сайт: 
  • Профессия: Программист 1С
Возврат у вас без условия и всегда возвращает истину, не важно на код функции

      Если Не Результат.Пустой() Тогда 
            Выборка = Результат.Выбрать();
            ТекстСообщения = "";
            возврат истина;             
         КонецЕсли;
      КонецЕсли;
     
      возврат Ложь;   
КонецФункции
наверно так!!!

БЛАГОДАРЮ РАБОТАЕТ!!!!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Если Не Результат.Пустой() Тогда 
            Выборка = Результат.Выбрать();
            ТекстСообщения = "";
            возврат истина;             
         КонецЕсли;
      КонецЕсли;
     
      возврат Ложь;   
А можно одной строкой:

Возврат НЕ Результат.Пустой();
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн ls600

  • ****
  • Сообщений: 322
  • РЕПУТАЦИЯ: 20
  • КПД: 6%
  • Регистрация: 2012-05-14
  • Сайт: 
  • Профессия: Программист 1С

Оффлайн LordWizard

  • "Иди учи бухгалтерский учет и не беспокой просьбами господа Бога!"
  • *****
  • Сообщений: 1463
  • РЕПУТАЦИЯ: 221
  • КПД: 15%
  • Пишу, консультирую, да и так - по клавишам...
  • Регистрация: 2011-07-25
    • Skype: warlock02121968
  • Сайт: 
  • Профессия: Консультант 1С
Странно, а если с одним и тем же ИНН и КПП программа хавает и дает записать??
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
166 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
42 Сообщений
AIFrame
36 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
28 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 209
  • Точка Скрытых: 0
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal