Вход | Регистрация


Ошибка программного заполнения Email рассылки

Ошибка программного заполнения Email рассылки
Я
   falselight
 
04.06.18 - 13:37
УТ 11.1. У справочника Партнеры есть Электронная почта, основной адрес а есть email рассылки. В процедуре ПередЗаписью задал код
который записывает поле email рассылки если оно пустое основным
почтовым адресом. Но Если открыть справочник Партнеры, удалить это
поле Email рассылки. И нажать записать то запрос который выбирает 
этот Email рассылки, выберет его. Соответсвенно код перезаписи
не сработает. Хотя фактически то этот Email рассылки я же удалил.
Е если смотреть ЭтотОбъект.КонтактнаяИнформация, там тоже нет такой
строки. От куда же происходит выборка?
 
 
   falselight
 
1 - 04.06.18 - 14:49
Никто не понял в чем дело?
   Cyberhawk
 
2 - 04.06.18 - 14:51
Думаю, дело в *овнокоде
   falselight
 
3 - 04.06.18 - 14:54
Из справочника удаляю email рассылки. Очищаю поле.
http://joxi.ru/VrwE3ewiO88j32
Нажимаю записать, в ЭтотОбъект.КонтактнаяИнформация
нет такой строки, а запрос выбирает!!!!!! От куда он
её берет если я её удалил? Или как обработать этот момент?

(2) Если Рез.Пустой () проходит, так как выбирает
    Если ЗначениеЗаполнено(ЭтотОбъект.Ссылка) Тогда
        Запрос.Текст = "
            |ВЫБРАТЬ
            |    ПартнерыКонтактнаяИнформация.Ссылка,
            |    ПартнерыКонтактнаяИнформация.Тип,
            |    ПартнерыКонтактнаяИнформация.Вид,
            |    ПартнерыКонтактнаяИнформация.Представление,
            |    ПартнерыКонтактнаяИнформация.ЗначенияПолей
            |ИЗ
            |    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
            |ГДЕ
            |    ПартнерыКонтактнаяИнформация.Ссылка = &Партнер
            |    И ПартнерыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
            |    И ПартнерыКонтактнаяИнформация.Вид = &ЕмайлРассылки";
            Запрос.УстановитьПараметр("Партнер",       ЭтотОбъект.Ссылка);
            Запрос.УстановитьПараметр("ЕмайлРассылки", Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Email рассылки", 1));
            Рез = Запрос.Выполнить();
            Если Рез.Пустой() Тогда
                НоваяСтрока                  = ЭтотОбъект.КонтактнаяИнформация.Добавить();
                НоваяСтрока.Тип            = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
                НоваяСтрока.Вид           = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Email рассылки", 1);
                НоваяСтрока.Представление = ОсновнойEmailПартнера;
            КонецЕсли;
   Вафель
 
4 - 04.06.18 - 14:55
ты выбираешь из ссылки, а не с изменного объекта
   falselight
 
5 - 04.06.18 - 15:00
(4) Подскажите пожалуйста как правильно?
Понимаю что не то делаю (((((
   Вафель
 
6 - 04.06.18 - 15:00
(5) нужно не запросом, а поиском по таблице
   falselight
 
7 - 04.06.18 - 15:01
(5+) Сейчас вот к примеру в одном тестовом примере
элемента справочника Партнеры, на форме заполнил.
А код показывает что таблица пуста ((((.

(6) то есть такие манипуляции делаются исключительно
перебором таблицы????
   Вафель
 
8 - 04.06.18 - 15:02
(7) ты понимаешь разницу между ссылкой и объектом?
   falselight
 
9 - 04.06.18 - 15:02
(6) Перебором по таблице я делал но для копирования
когда нет ссылки у ЭтотОбъект.

    Иначе
        // ЭЛЕМЕНТ СОЗДАЛСЯ КОПИРОВАНИЕМ

        КИЗаполнено = 0;
        Для каждого СтрКИ Из ЭтотОбъект.КонтактнаяИнформация Цикл
            Если СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты И
                 СтрКИ.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("EmailПартнера",1) Тогда
                Если Не ЗначениеЗаполнено(СтрКИ.Представление) Тогда
                    Сообщить("У партнера не заполнена электронная почта в контактной информации!");
                    Отказ = Истина;
                Иначе
                    КИЗаполнено           = 1;
                    ОсновнойEmailПартнера = СтрКИ.Представление;
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
        Если КИЗаполнено = 0 Тогда
            Сообщить("У партнера отсутствует электронная почта в контактной информации!");
            Отказ = Истина;
        КонецЕсли;
    КонецЕсли;
   falselight
 
10 - 04.06.18 - 15:03
(8) Получается все делать перебором или поиском по таблице?
То есть не используя запрос???
 
 Рекламное место пустует
   falselight
 
11 - 04.06.18 - 15:05
Думал может не в той процедуре что делаю.
   falselight
 
12 - 04.06.18 - 15:15
//

    ОсновнойEmailПартнера = неопределено;
    КИЗаполнено           = 0;
    Для каждого СтрКИ Из ЭтотОбъект.КонтактнаяИнформация Цикл
        Если СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты И
             СтрКИ.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("EmailПартнера",1) Тогда
            Если Не ЗначениеЗаполнено(СтрКИ.Представление) Тогда
                Сообщить("У партнера не заполнена электронная почта в контактной информации!");
                Отказ = Истина;
            Иначе
                КИЗаполнено           = 1;
                ОсновнойEmailПартнера = СтрКИ.Представление;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Если КИЗаполнено = 0 Тогда
        Сообщить("У партнера отсутствует электронная почта в контактной информации!");
        Отказ = Истина;
    КонецЕсли;
    //

    ЗаполненEmailРассылки = 0;
    ВведенEmailРассылки   = 0;
    Для каждого СтрКИ Из ЭтотОбъект.КонтактнаяИнформация Цикл
        Если СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты И 
             СтрКИ.Тип = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Email рассылки", 1) Тогда
            Если Не ЗначениеЗаполнено(СтрКИ.Представление) Тогда
                СтрКИ.Представление   = ОсновнойEmailПартнера;
                ЗаполненEmailРассылки = 1;
            КонецЕсли;
            ВведенEmailРассылки = 1;
        КонецЕсли;
    КонецЦикла;
    Если ВведенEmailРассылки = 0 Тогда
        НоваяСтрока                  = ЭтотОбъект.КонтактнаяИнформация.Добавить();
        НоваяСтрока.Тип            = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
        НоваяСтрока.Вид           = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Email рассылки", 1);
        НоваяСтрока.Представление = ОсновнойEmailПартнера;
    КонецЕсли;

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует