Вопрос по интеграции с 1С ??

Добрый день! Подскажите как можно получить значение перечислений. запрос такого вида

ВЫБРАТЬ  Ссылка, Наименование, ЮрФизЛицо, КодПоОКПО, НаименованиеПолное, ИНН, КПП, Регион ИЗ Справочник.Контрагенты

ЮрФизЛицо - является перечислением которое имеет два занчения. как мене получить эти значение???? подскажите если кто сталкивался.

Нравится

12 комментариев

А для чего это вам нужно?

У меня есть в карточке контрагента поле enum со значениями ЮЛ или ФЛ) при переносе из 1С я хотел заполнять их) И вообще я хотел понять как получать значение различных объектов 1С. Со справочниками я как то вроде разобрался вот теперь пришло время перечислений.

В таких ситуациях я обычно обрабатываю через
if ВидКонтрагента = Перечисление.ЮрФизЛицо.Организация then
ds_Account.Values('Type') = '{........}'

а вот этот объект " Перечисление.ЮрФизЛицо.Организация "как получить?
Select1C = Param.Con1C.NewObject(" Перечисление.ЮрФизЛицо.Организация"); ???? так ?

А какая версия 1С?

Сам элемент перечисления можно получить так:

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')= '{.......................}'; // соответствующий идентификатор вашего перечисления
}
}

Показать все комментарии