Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помощь новичку c 1c8, Проверка ТипыКонтактнойИнформации.Телефон на заполнение  (Прочитано 10764 раз)
0 Пользователей и 1 Гость смотрят эту тему.
tomminoker
Гость
« : 19-11-2009 11:03 » 

Добрый день!
Подскажите, как реализовать проверку, записал ли пользователь мобильный контрагента?
Вот на этом рисунке привожу эту форму: http://clip2net.com/page/m0/2635965

Сам я хотел сделать, чтобы при открытии формы, сразу спрашивал телефон у пользователя, и тот тогда в любом случае не забывал бы и написал телефон. Но код, который не работает =(
Код:
Код:
перем ТелКонтр;  // Переменная, в которой будет храниться значение телефона контрагента
 

ВвестиСтроку(ТелКонтр, "Введите телефон КонтрАгента", 15);
    
    РегСведений = РегистрыСведений.КонтактнаяИнформация;
    Запись = РегСведений.СоздатьМенеджерЗаписи();
    Запись.Объект = ЭтотОбъект.Ссылка;
    Запись.Вид = "Телефон контрагента";
    Запись.Представление = ТелКонтр;
    Запись.Записать(Истина);


Потом поразмыслил и попытался другим путём пойти, поискал на форумах и нашел такой код, поставив его в "Процедура ПередЗаписью(Отказ)", но не понял, какие в него переменные запихать, и тот не заработал... =(

Код:
Код:
Если НЕ обЗначениеНеЗаполнено(Тлф_) Тогда
               МенеджерЗаписи = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
               МенеджерЗаписи.Период    = НачалоГода(ТекущаяДата());
               МенеджерЗаписи.Объект    = НовыйЭлемент_.Ссылка;
               МенеджерЗаписи.Вид        = "Телефон контрагента";
               //МенеджерЗаписи.Тип        = Перечисления.ТипыКонтактнойИнформации.МестныйТелефон;
 
               МенеджерЗаписи.Тип        = Перечисления.ТипыКонтактнойИнформации.Телефон;
               МенеджерЗаписи["Представление"] = Тлф_;
               МенеджерЗаписи["Комментарий"] = Тлф_;
               МенеджерЗаписи.Записать(Истина);
           КонецЕсли;



Спасибо за любую помощь! Все мы когда-то учились  Ага
« Последнее редактирование: 19-11-2009 19:27 от Sel » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 19-11-2009 11:47 » new

Конфигурацию уточни
Записан
tomminoker
Гость
« Ответ #2 : 19-11-2009 12:04 » 

1с:Предприятие 8.1 - Управление торговлей, редакция 10.3
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 19-11-2009 23:42 » 

Пишу на основании Управления торговлей для Украины 2.3 - думаю алгоритм будет тот же.
Выделенное на скрине поле сопоставлено с данными по имени НаборКонтактнойИнформации типа РегистрСведенийНаборЗаписей.КонтактнаяИнформация

В процедуре ПередЗаписью (обязательно в форме! а не в модуле объекта) проверяешь наличие телефона в этом объекте:
Код:
	ТЗ=НаборКонтактнойИнформации.Выгрузить();
Строки=ТЗ.НайтиСтроки(Новый Структура("Тип",Перечисления.ТипыКонтактнойИнформации.Телефон));
КонтактЗадан=Ложь;
Для каждого Стр Из Строки Цикл // Проверим все строки на заполненность
Если ЗначениеНеЗаполнено(Стр.Представление) Тогда Продолжить; КонецЕсли;
КонтактЗадан=Истина;
Прервать;
КонецЦикла;
Если Не КонтактЗадан Тогда
// Нет строк с таким типом
Отказ=Истина;
Сообщить("Для контрагента не задан телефон!", СтатусСообщения.Внимание);
КонецЕсли;
Этот код просто не будет давать записать (и закрыть форму с сохранением соотвественно) контрагента, у которого не задан телефон
Записан
tomminoker
Гость
« Ответ #4 : 20-11-2009 08:32 » 

СПАСИБО БОЛЬШОЕ!!!!! ВСЕ ОТЛИЧНО ЗАРАБОТАЛО!!!!
единственно что поменял немножко условие функцию "Если НЕ ЗначениеЗаполнено", и стало так:

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

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 20-11-2009 14:08 » 

ЗначениеНеЗаполнено - это я где-то в коде УТ нарыл. Но каюсь - не проверил что это глобальный объект (возможно там эта функция была объявлена локально)
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines