Добрый день! Подскажите как можно получить значение перечислений. запрос такого вида
ЮрФизЛицо - является перечислением которое имеет два занчения. как мене получить эти значение???? подскажите если кто сталкивался.
Нравится
У меня есть в карточке контрагента поле enum со значениями ЮЛ или ФЛ) при переносе из 1С я хотел заполнять их) И вообще я хотел понять как получать значение различных объектов 1С. Со справочниками я как то вроде разобрался вот теперь пришло время перечислений.
В таких ситуациях я обычно обрабатываю через
if ВидКонтрагента = Перечисление.ЮрФизЛицо.Организация then
ds_Account.Values('Type') = '{........}'
а вот этот объект " Перечисление.ЮрФизЛицо.Организация "как получить?
Select1C = Param.Con1C.NewObject(" Перечисление.ЮрФизЛицо.Организация"); ???? так ?
Сам элемент перечисления можно получить так:
var OrganizationElement = Param.Obj1C.Enums.ЮрФизЛицо.Организация;
В случае обращения через запрос проверку вида контрагента можно реализовать так:
var type1C = Param.Obj1C.XMLString(Select1C.ЮрФизЛицо); if (type1C == 'Организация') { Dataset.Values('TypeID')= '{...}'; }
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
Спасибо помощь!!) я так понял "Организация" - это уже значения enum
Да, именно так.
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
function OnBeforeRecordImport(Param, Dataset, Select1C) {
var type1C = Select1C.ЮрФизЛицо;
ShowInformationDialog(type1C); //проверка, что получили
}
В настройках синхронизации реквизит ЮрФизЛицо запрашивается, но почему-то возвращает пустую строку.
Если использовать контрукцию
var type1C = Param.Obj1C.XMLString(Select1C.ЮрФизЛицо);
выдает ошибку.
Мамедов Фариз Эльдарович, какую версию Terrasoft используете ? Какая версия 1С ?
TS 3.3.2.192
1C 7.7
Насчет первой части вопроса разобрался, если идти глубже по структуре 1С то отдаются значения:
var type1C = Select1C.ЮрФизЛицо.Наименование; - отдает Наименование юр лица контрагента.
Но вот саму запись ЮрФизЛицо полчить не удалось. (в 1С там 13 символов, первые 4 нужны, так как там храниться собственно тип справочника на позицию в которомсслыаются остальные символы)
Зачем Вам "сама запись ЮрФизЛицо" ?
Если вы хотите просто заполнить поле "Вид" в карточке контрагента то вам достаточно написать в скрипте проверки вида:
function OnBeforeRecordImport(Param, Dataset, Select1C) {
var type1C = Select1C.ЮрФизЛицо.Наименование;
if (type1C == 'Организация') {
Dataset('TypeID')= '{.......................}'; // соответствующий идентификатор вашего перечисления
}
}