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

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

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

Оффлайн ls600

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



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

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

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

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

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

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




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

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

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


КонецЕсли;



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





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



Оффлайн Yura063

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

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

Оффлайн mixqn

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

Оффлайн ls600

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

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

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

Оффлайн Dethmontt

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

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

Оффлайн ls600

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

Оффлайн LordWizard

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

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


Теги:
 


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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
154 Сообщений
alex0402
67 Сообщений
oleg-x
56 Сообщений
AIFrame AIFrame
50 Сообщений
buketov.av buketov.av
47 Сообщений
wise wise
41 Сообщений
ilyay ilyay
39 Сообщений
Анюта17
33 Сообщений
Alter
32 Сообщений
KOI8-R
30 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal