Как сделать, чтобы при выборе одного справочника автоматически подтягивалось значение другого в соседнем поле?
Для реализации данного функционала, необходимо:
1. Создать справочник:



В результате, создадутся сервисы в ветке Accounts\Dictionaries\SubFields\
2. Проверить, создалось ли поле в таблице tbl_SubFields (Accounts\Dictionaries\SubFields\tbl_SubFields):

3. В сервисе запроса sq_SubFields (Accounts\Dictionaries\SubFields\sq_SubFields) добавить параметр:

4. Добавить фильтр сравнения:
5. Проверить, создалось ли поле в сервисе датасета ds_SubFields (Accounts\Dictionaries\SubFields\ds_SubFields):

6. Проверить, создалась ли карточка редактирования wnd_SubFieldsEdit (Accounts\Dictionaries\SubFields\wnd_SubFieldsEdit) и поле «Отрасль» в ней:

7. Добавить поле в сервис таблицы tbl_Account (Accounts\General\Main Grid\tbl_Account):

8. Добавить связь:

9. Добавить колонку в сервис запроса sq_Account (Accounts\General\Main Grid\sq_Account):

10. Присоединить таблицу к запросу:

11. Добавить колонку:

12. Создать поле в сервисе датасета ds_Account (Accounts\General\Main Grid\ds_Account):

13. Добавить визуальный компонент в карточку редактирования, указав соответствующие созданному полю свойства:

14. Перейти на вкладку события и создать обработчик OnPrepareSelectWindow (дважды кликнув по пустому полю, в результате чего в нем появится запись edtSubFieldOnPrepareSelectWindow):

15. Добавить в созданный обработчик следующий код:
var LookupDataset = LookupDataControl.DataField.LookupDataset;
var AccountFieldID = GetDatasetFieldValue(Dataset, 'FieldID');
ApplyDatasetFilter(LookupDataset, 'FieldID', AccountFieldID, true);
В результате:

16. Сохранить изменения и перезапустить Terrasoft.
17. Заполнить справочник «Подотрасли».
В результате:


Источник: БЗ
Нашла куда более адекватный вариант решения от Наташи Бондарь:
Для того, чтобы при выборе одного значения справочника, ограничивалось содержимое другого справочника необходимо:
1. Создать обработчик события OnPrepareSelectWindow поля-справочника, содержимое которого нужно ограничить:

2. В теле функции обработки события осуществлять фильтрацию записей справочника посредством вызова функции function ApplyDatasetFilter(Dataset, FilterName, ParamValue, Enabled). Обращаем Ваше внимание, в сервисе выборки данных (sq_xxx) справочника, значения которого нужно ограничить, обязательно должен присутствовать фильтр сравнения и параметр.
Реализацию подобной функциональности Вы можете посмотреть во многих карточках редактирования системы, например, для базовых полей «Страна», «Регион» карточек [Контакт], [Контрагент].
Ответ на 2 вопрос:
Для того, чтобы при заполнении одного поля, другое поле заполнялось автоматически необходимо:
В функции OnDatasetDataChange набора данных (датасета) делать проверку по полю. Если изменяется содержимое поля «Контакт», осуществлять фильтрация записей датасета контактов (ds_Contact) по текущему контакту (фильтрация выполняется посредством функции function ApplyDatasetFilter(Dataset, FilterName, ParamValue, Enabled)). После фильтрации получать значение подразделения контакта и присваивать его полю «Подразделение» датасета карточки редактирования.
var Dataset = dlData.Dataset; if (DataField.Name == 'ContactID' ) { var DatasetContacts = Services.GetNewItemByUSI('ds_Contact'); ApplyDatasetFilter(DatasetContacts, 'ID', DataField.Value, true); DatasetContacts.Open(); var Podrazdelenie = DatasetContacts('Podrazdelenie'); Dataset('Podrazdelenie') = Podrazdelenie; DatasetContacts.Close(); }