Подстановка данных при условии

1. progres488 19.04.17 10:24 Сейчас в теме
Есть документа, на управляемой форме. В документе есть два поля, отправитель и получатель. И есть реквизит Зона доставки. Если у получателя Зона стоит междугородняя а у получателя стоит зона межобластная, то в документ подставляется Зона межобластная. Идет привязка к получателю посылки. Подскажите пожалуйста как можно подправить код, что бы шла проверка, если у получателя или отправителя стоит зона Межобластная то и в реквизит документа подставлять межобластная. А если нет то что бы выполнялось как и раньше. Вот код который определяет зону:

Код
Функция ПолучитьЗону()
   
   Если Объект.ОтправительНасПункт = Объект.ПолучательНасПункт Тогда        
      Возврат Справочники.Зоны.ВнутригородскаяДоставка;
   Иначе
      
      Если Объект.ПолучательНасПункт.Пустая() Тогда
         Возврат Справочники.Зоны.ПустаяСсылка();
      Иначе
         Возврат Объект.ПолучательНасПункт.Зона;               
      КонецЕсли;
      
   КонецЕсли;      
   
КонецФункции  
Показать полностью
+
По теме из базы знаний
Найденные решения
2. BackinSoda 19.04.17 10:47 Сейчас в теме
Примерно так, если вписать в начале функции:
Если Объект.ОтправительНасПункт.Зона = Справочники.Зоны.МежобластнаяДоставка ИЛИ
  Объект.ПолучательНасПункт.Зона = Справочники.Зоны.МежобластнаяДоставка тогда
	Возврат Справочники.Зоны.МежобластнаяДоставка;
Конецесли;

зы: смотря как у вас числется "МежобластнаяДоставка" в справочнике.
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. BackinSoda 19.04.17 10:47 Сейчас в теме
Примерно так, если вписать в начале функции:
Если Объект.ОтправительНасПункт.Зона = Справочники.Зоны.МежобластнаяДоставка ИЛИ
  Объект.ПолучательНасПункт.Зона = Справочники.Зоны.МежобластнаяДоставка тогда
	Возврат Справочники.Зоны.МежобластнаяДоставка;
Конецесли;

зы: смотря как у вас числется "МежобластнаяДоставка" в справочнике.
+
3. progres488 19.04.17 11:24 Сейчас в теме
(2)
Почему то по наименованию не захотел, вот так сработал
Код
Функция ПолучитьЗону()
   
   
   Если Объект.ОтправительНасПункт = Объект.ПолучательНасПункт Тогда        
      Возврат Справочники.Зоны.ВнутригородскаяДоставка;
   Иначе
      
      Если Объект.ОтправительНасПункт.Зона = Справочники.Зоны.НайтиПоКоду("000000003")
         ИЛИ
           Объект.ПолучательНасПункт.Зона = Справочники.Зоны.НайтиПоКоду("000000003") Тогда
       Возврат Справочники.Зоны.НайтиПоКоду("000000003");
         Иначе
         Возврат Объект.ПолучательНасПункт.Зона;               
      КонецЕсли;
   
      
   КонецЕсли;      
   
КонецФункции  
Показать полностью
+
4. BackinSoda 19.04.17 11:34 Сейчас в теме
Видимо межобластная Зона у вас не предопределенный элемент справочника (или называется по другому). По коду конечно искать не самый лучший вариант, но если уж до этого дошло, то правильнее было бы один раз найти элемент, а дальше подставлять найденное значение (а не искать его 3 раза как в вашем примере)
т.е.
МежобластнаяЗона = Справочники.Зоны.НайтиПоКоду("000000003");
Если Объект.ОтправительНасПункт.Зона = МежобластнаяЗона  ИЛИ ...
Возврат МежобластнаяЗона;  
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот