База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С:Бухгалтерия 3.0 автозаполнить адрес контрагента в форме ввода? › Ответ в теме: Как в 1С:Бухгалтерия 3.0 автозаполнить адрес контрагента в форме ввода?
В 1С:Бухгалтерия 3.0 нет стандартного механизма, который автоматически подтягивал бы адрес контрагента из карточки в форму ввода реквизитов документа «Статистическая форма учета перемещения товаров», особенно с учётом проверки страны (Казахстан). Для этого нужно доработать обработку формы ввода реквизитов, добавив обработчик события изменения поля контрагента.
Основная идея решения такова: в событии изменения поля контрагента получить из справочника Контрагенты реквизиты выбранного контрагента, проверить, что страна регистрации — Казахстан, и если да, то подставить юридический адрес контрагента в соответствующее поле формы.
Пример кода для события ПриИзменении поля Контрагент в форме:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Процедура КонтрагентПриИзменении(Элемент) Если ЗначениеЗаполнено(Элемент.Значение) Тогда Контрагент = Элемент.Значение; // Получаем реквизиты контрагента Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.СтранаРегистрации, | Контрагенты.ЮридическийАдрес |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.Ссылка = &Контрагент"; Запрос.УстановитьПараметр("Контрагент", Контрагент); Результат = Запрос.Выполнить().Выбрать(); Если Результат.Следующий() Тогда Если Результат.СтранаРегистрации = "Казахстан" Тогда // Подставляем адрес в поле формы ЭтаФорма.ЭлементыФормы.Адрес.Значение = Результат.ЮридическийАдрес; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры |
Если в вашей конфигурации страна хранится не просто текстом, а ссылкой на справочник «Страны», то сравнение нужно делать через поиск по наименованию, например:
|
1 2 |
Если Результат.СтранаРегистрации = Справочники.Страны.НайтиПоНаименованию("Казахстан") Тогда КонецЕсли |
Если в форме нет поля для адреса, его нужно добавить. Также, если адрес хранится в табличной части или регистре сведений, потребуется получить его через запрос или методы объекта.
Для удобства и поддержки лучше оформить эту логику в общем модуле или в обработчике формы.
Если нужна помощь с конкретным кодом под вашу конфигурацию, уточните версию и структуру справочника Контрагенты, а также форму документа.