Имя: Пароль:
1C
 
Перечисление через COM соединение
,
0 Rastaman55
 
21.09.16
18:03
Подключаюсь по Сom из 8.3 к 7.7
Док = База.CreateObject("Документ.РасходнаяНакладная");
Пока Док.ПолучитьДокумент() = 1 Цикл
Док.ВыбратьСтроки();
            Пока Док.ПолучитьСтроку()=1 Цикл
дальше пытаюсь получить значение док.Товар.СтавкаНДС который в 7.7 имеет тип перечисления.ЗначенияНДС
Док.Товар.СтавкаНДС.Идентификатор();
Док.Товар.СтавкаНДС.ПорядковыйНомер(); не работают пишет метод не обнаружен

Как еще можно получить строку или номер из перечисления данного реквизита документа?
1 Torquader
 
21.09.16
21:40
Попробуй английскими синонимами воспользоваться.
2 Torquader
 
21.09.16
21:41
А ещё я делал так - загонят в список значений все значения перечисления и просил найти элемент в списке - 1С-то свой элемент понять может - и должна найти - если не нашла, то значение пустое.
3 Guk
 
21.09.16
21:55
вообще
ЗначениеПоИдентификатору(<?>)
ValueByIdentifier(<?>)
Синтаксис:
ЗначениеПоИдентификатору(<Идентификатор>)
Назначение:
Возвращает значение перечисления, соответствующее идентификатору в конфигураторе. Если не найдено - то пустое значение.
Параметры:
<Идентификатор> - строковое выражение. Идентификатор значения перечисления, заданный в конфигураторе.

только есть у меня сомнение, что в 8.3 идентификатор или порядковый номер совпадает с идентификатором или порядковым номером в 7.7...
4 Torquader
 
22.09.16
00:04
(3) В чём проблема - берём и через метаданные вычитываем из семёрки все идентификаторы перечисления - и делаем с ними всё, что хочется.
5 Rastaman55
 
22.09.16
10:25
То что вы предлагаете это уже конечный шаг когда известен номер, идентификатор или значение в виде строки, а как собственно при таком подключении получить эти данные вначале? Все что есть это Док.Товар.СтавкаНДС который 1с сообщает как COM объект, что с ним можно сделать чтобы как то его идентифицировать?
Пробовал
Если
Док.Товар.СтавкаНДС= База.Перечисление.ЗначенияНДС.ОсновнаяСтавкаНДС тогда

так тоже не работает
6 Torquader
 
22.09.16
10:51
(5) Сделай список или таблицу со всеми значениями и попробуй своё значение найти в ней через НайтиЗначение.
7 Rastaman55
 
22.09.16
11:18
Один человек подсказал, всего то метод дописать изза того что это периодический тип в 1с 7.7, а я неск часов не мог разобраться.
ЗначениеСтавки=Док.Товар.СтавкаНДС.Получить().Идентификатор();
Сообщить(ЗначениеСтавки);

Сообщило- ОсновнаяСтавкаНДС,
дальше уже сделаю соответствие в базе данному тексту.
AdBlock убивает бесплатный контент. 1Сергей