Александр Денисюк, спасибо за ответ.
По первому вопросу опытным путем удалось выяснить, что действительно меняется контактная информация о контрагенте (телефон-адрес), но только, когда меняется его наименование. Если наименование не меняется, то и контактная информация не меняется.
Проследив выполнение выяснил, что происходит следующее:
Сначала внутри функции ПолучитьКонтрагента идет обращение к функции ПолучениеКонтрагентаПоКоду.
Здесь попытка Результат = XMLЗначение(Тип("СправочникСсылка.Контрагенты"), Код); срабатывает, для генерируемых системой ИД, например для розничного покупателя. А для пользовательских ИД, пришедших с сайта здесь отдается исключение.
А дальше идет запрос объекта, но он почему-то осуществляется не только по Идентификатору, но и по Наименованию. Причем, условия связаны через И. В результате, возникает 2 случая:
- Наименование изменилось. Результат - Неопределено, и далее в функции ПолучитьКонтрагента создается новый объект со старым Идентификатором. В результате кажется, что данные "обновляются". Но по факту старый объект не найден из-за смены наименования, и вместо обновления старого создается новый со старым Ид. (Возможно это и есть обновление, не знаю, как система такое обрабатывает). Видел Ваш комментарий, что наименование добавлено в запрос, чтобы контрагенты не затирались, но они все равно затираются при последующем создании объекта с тем же Ид.
 
- Наименование не изменилось. Результат - старый объект, и далее в функции ПолучитьКонтрагента его контактная информация почему-то не обновляется.
 
Могу ошибаться, но думаю, 1) ограничение по наименованию возможно стоит убрать, 2) контрагент не обновляется при положительном результате запроса
| Код | 
|---|
| Функция ПолучениеКонтрагентаПоКоду(Код, НаименованиеКонтрагента) Экспорт
   
   Попытка
      Результат = XMLЗначение(Тип("СправочникСсылка.Контрагенты"), Код);
   Исключение
      Результат = Неопределено;
   КонецПопытки;
   
   Если Результат <> Неопределено тогда
      Результат = ?(СокрЛП(Результат.ВерсияДанных) = "", Неопределено, Результат);
   КонецЕсли;
   
   Если Результат = Неопределено тогда
      Запрос = Новый Запрос;
      Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
      |   Справочник.Ссылка
      |ИЗ
      |   Справочник.Контрагенты КАК Справочник
      |ГДЕ
      |   Справочник.Б_Идентификатор = &Идентификатор
      |   И Справочник.Наименование = &Наименование";
      
      Запрос.УстановитьПараметр("Идентификатор"   , Код);
      Запрос.УстановитьПараметр("Наименование"   , НаименованиеКонтрагента);
      
      тзнВрем = запрос.Выполнить().Выгрузить();
      
      Если тзнВрем.Количество() > 0 тогда
         Результат = тзнВрем[0].Ссылка;       
      КонецЕсли;
      
   КонецЕсли;
   
   Возврат Результат;
   
КонецФункции
 |