|
Ошибка программного заполнения Email рассылки | ☑ | ||
---|---|---|---|---|
0
falselight
04.06.18
✎
13:37
|
УТ 11.1. У справочника Партнеры есть Электронная почта, основной адрес а есть email рассылки. В процедуре ПередЗаписью задал код
который записывает поле email рассылки если оно пустое основным почтовым адресом. Но Если открыть справочник Партнеры, удалить это поле Email рассылки. И нажать записать то запрос который выбирает этот Email рассылки, выберет его. Соответсвенно код перезаписи не сработает. Хотя фактически то этот Email рассылки я же удалил. Е если смотреть ЭтотОбъект.КонтактнаяИнформация, там тоже нет такой строки. От куда же происходит выборка? |
|||
1
falselight
04.06.18
✎
14:49
|
Никто не понял в чем дело?
|
|||
2
Cyberhawk
04.06.18
✎
14:51
|
Думаю, дело в *овнокоде
|
|||
3
falselight
04.06.18
✎
14:54
|
Из справочника удаляю email рассылки. Очищаю поле.
http://joxi.ru/VrwE3ewiO88j32 Нажимаю записать, в ЭтотОбъект.КонтактнаяИнформация нет такой строки, а запрос выбирает!!!!!! От куда он её берет если я её удалил? Или как обработать этот момент? (2) Если Рез.Пустой () проходит, так как выбирает Если ЗначениеЗаполнено(ЭтотОбъект.Ссылка) Тогда Запрос.Текст = " |ВЫБРАТЬ | ПартнерыКонтактнаяИнформация.Ссылка, | ПартнерыКонтактнаяИнформация.Тип, | ПартнерыКонтактнаяИнформация.Вид, | ПартнерыКонтактнаяИнформация.Представление, | ПартнерыКонтактнаяИнформация.ЗначенияПолей |ИЗ | Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация |ГДЕ | ПартнерыКонтактнаяИнформация.Ссылка = &Партнер | И ПартнерыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты) | И ПартнерыКонтактнаяИнформация.Вид = &ЕмайлРассылки"; Запрос.УстановитьПараметр("Партнер", ЭтотОбъект.Ссылка); Запрос.УстановитьПараметр("ЕмайлРассылки", Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Email рассылки", 1)); Рез = Запрос.Выполнить(); Если Рез.Пустой() Тогда НоваяСтрока = ЭтотОбъект.КонтактнаяИнформация.Добавить(); НоваяСтрока.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты; НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Email рассылки", 1); НоваяСтрока.Представление = ОсновнойEmailПартнера; КонецЕсли; |
|||
4
Вафель
04.06.18
✎
14:55
|
ты выбираешь из ссылки, а не с изменного объекта
|
|||
5
falselight
04.06.18
✎
15:00
|
(4) Подскажите пожалуйста как правильно?
Понимаю что не то делаю ((((( |
|||
6
Вафель
04.06.18
✎
15:00
|
(5) нужно не запросом, а поиском по таблице
|
|||
7
falselight
04.06.18
✎
15:01
|
(5+) Сейчас вот к примеру в одном тестовом примере
элемента справочника Партнеры, на форме заполнил. А код показывает что таблица пуста ((((. (6) то есть такие манипуляции делаются исключительно перебором таблицы???? |
|||
8
Вафель
04.06.18
✎
15:02
|
(7) ты понимаешь разницу между ссылкой и объектом?
|
|||
9
falselight
04.06.18
✎
15:02
|
(6) Перебором по таблице я делал но для копирования
когда нет ссылки у ЭтотОбъект. Иначе // ЭЛЕМЕНТ СОЗДАЛСЯ КОПИРОВАНИЕМ КИЗаполнено = 0; Для каждого СтрКИ Из ЭтотОбъект.КонтактнаяИнформация Цикл Если СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты И СтрКИ.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("EmailПартнера",1) Тогда Если Не ЗначениеЗаполнено(СтрКИ.Представление) Тогда Сообщить("У партнера не заполнена электронная почта в контактной информации!"); Отказ = Истина; Иначе КИЗаполнено = 1; ОсновнойEmailПартнера = СтрКИ.Представление; КонецЕсли; КонецЕсли; КонецЦикла; Если КИЗаполнено = 0 Тогда Сообщить("У партнера отсутствует электронная почта в контактной информации!"); Отказ = Истина; КонецЕсли; КонецЕсли; |
|||
10
falselight
04.06.18
✎
15:03
|
(8) Получается все делать перебором или поиском по таблице?
То есть не используя запрос??? |
|||
11
falselight
04.06.18
✎
15:05
|
Думал может не в той процедуре что делаю.
|
|||
12
falselight
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Партнера; КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |