@kalapanga

Как в 1С программно записать адрес контрагента с добавлением его в историю изменения адреса?

Интересуют Бухгалтерия предприятия и Управление торговлей, но для определённости буду говорить о Бухгалтерии 3.0 актуальной версии.
Задача такая. Есть контрагент. У него есть юридический адрес. Мне нужно программно изменить его, но так, чтобы изменения отобразились в истории изменения адреса. Чтобы и старый остался, и появился новый с началом действия с текущей даты. Пробую сделать так:
МойКонтрагент = Справочники.Контрагенты.НайтиПоНаименованию("НаименованиеМоегоКонтрагента");
НовыйАдрес = "Тут реальный корректный адрес";
Вид = Справочники.ВидыКонтактнойИНформации.ЮрАдресКонтрагента;
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(МойКонтрагент, НовыйАдрес, Вид, ТекущаяДата(), Ложь);

Последний параметр - Ложь/Истина на результат принципиально не повлиял.
Адрес меняется, но меняется только текущая запись. В истории ничего не добавляется.
Доискался, что у вида контактной информации есть реквизит "Хранить историю изменений" - в базе он у всех видов "Нет". Он имеет отношение к моей задаче? Я так понял что нет. Так как в карточке контрагента и без этого реквизита около адреса есть ссылка История, если её кликнуть открывается форма История адреса, где без проблем можно добавить адрес и указать даты действия. Но форма эта, если я правильно понимаю, непосредственно редактирует табличную часть ИсторияКонтактнойИнформации контрагента.
Отладкой дошёл из УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию в УправлениеКонтактнойИнформациейСлужебный.ДобавитьКонтактнуюИнформацию. Там увидел такую проверку:
Периодическая = УправлениеКонтактнойИнформациейСлужебныйПовтИсп.КонтактнаяИнформацияОбъектаСодержитКолонкуДействуетС(Объект.Ссылка);

По ней выходит, что контактная информация у контрагента вовсе не Периодическая. (Кстати в Торговле колонка ДействуетС есть).
На этом я сломался и прошу помощь клуба. Неужели надо самому разбирать две табличные части у контрагента, анализировать периоды действия, добавлять строку. Может всё-таки есть готовая процедура/функция для этого, а я её не нашёл и пользуюсь чем-то не тем?

p.s. Что-то я самый наглядный пример пропустил. Обработку ЗагрузкаКонтрагентовИзФайла. Контактная информация там записывается именно с использованием ДобавитьКонтактнуюИнформацию. Тут всё понятно, всё хорошо.
Но вот для работы с историей адреса так ничего и не нашёл, а надо. Странно как-то. Придётся видимо какие-то свои велосипеды изобретать.
  • Вопрос задан
  • 189 просмотров
Пригласить эксперта
Ответы на вопрос 1
fosihas
@fosihas
Правильное уточнение в какую конфу писать будешь, т.к. есть отличия структуры и методов записи.
Да используйте процедуры БСП. Это упростит жизнь.
но....
В тоем случае рекомендую ловить отладчиком что происходит.
По описанию процедуры делаешь все верно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы