|
Получение значения перечисления при Com-соединении | ☑ | ||
---|---|---|---|---|
0
web_profiler
12.05.13
✎
17:35
|
Осуществляю перенос справочников из 7.7 в 8. В 7.7 есть реквизит-перечисление, так вот его немогу никак получить в восьмерке. ПолучитьАтрибутпробывал, также пробывал через Идентификатор() - нет результата.
Подскажите, пожалуйста, где ошибся. |
|||
1
Fragster
гуру
12.05.13
✎
17:36
|
[]
|
|||
2
web_profiler
12.05.13
✎
17:37
|
чего?
|
|||
3
marvak
12.05.13
✎
17:38
|
(0)
По индексу сравнивай и ищи. Старая тема, поищи в инете |
|||
4
web_profiler
12.05.13
✎
17:50
|
да в нете лазил никак немогу достать
|
|||
5
Cyberhawk
12.05.13
✎
17:52
|
(0) как остальные реквизиты переносишь, так и перечисление переноси
|
|||
6
web_profiler
12.05.13
✎
17:57
|
неа перечисление как-то странно переносится. Точнее у меня не переносится
|
|||
7
marvak
12.05.13
✎
17:57
|
||||
8
СтрашнаяПравда
12.05.13
✎
17:58
|
КомОбъект.Перечисление.ТипМороженного.Пломбир
|
|||
9
web_profiler
12.05.13
✎
18:09
|
Ничего не выходит - запутался совсем. Ткните носом
СпрБлюда7 = app.CreateObject("Справочник.Блюда"); СпрБлюда7.ВыбратьЭлементы(); Пока СпрБлюда7.ПолучитьЭлемент() = 1 Цикл СписокТМЦ = app.CreateObject("СписокЗначений"); // список ТМЦ для запроса СписокСкладов = app.CreateObject("СписокЗначений"); //Калькуляция.УдалитьСТроки(); //Калькуляция = app.CreateObject("ТаблицаЗначений"); Калькуляция = Новый ТаблицаЗначений; Калькуляция.Колонки.Добавить("Владелец",,"Владелец"); Калькуляция.Колонки.Добавить("КодВладельца",,"КодВладельца"); Калькуляция.Колонки.Добавить("Продукт",,"Продукт"); Калькуляция.Колонки.Добавить("ВидПродукта",,"ВидПродукта"); Калькуляция.Колонки.Добавить("КодПродукта",,"КодПродукта"); Калькуляция.Колонки.Добавить("Брутто",,"Брутто"); Калькуляция.Колонки.Добавить("Нетто",,"Нетто"); _состав = app.CreateObject("Справочник.Калькуляции"); _состав.ИспользоватьДату(ТекущаяДата()); _состав.ИспользоватьВладельца(СпрБлюда7.ТекущийЭлемент()); _состав.ВыбратьЭлементы(); Пока _состав.ПолучитьЭлемент() = 1 Цикл Если (_состав.ПометкаУдаления() = 0) и (ЗначениеЗаполнено(_состав.продукт.наименование)) Тогда СтрКалькуляция = Калькуляция.Добавить(); СтрКалькуляция.Владелец = СпрБлюда7.Наименование; СтрКалькуляция.КодВладельца = СпрБлюда7.Код; СтрКалькуляция.Продукт = _состав.Продукт.Наименование; СтрКалькуляция.КодПродукта = _состав.Продукт.Код; СтрКалькуляция.ВидПродукта = app.Перечисление.СтатьяКалькуляции(_состав); СтрКалькуляция.Брутто = _состав.Количество; СтрКалькуляция.Нетто = _состав.Нетто; КонецЕсли; КонецЦикла; |
|||
10
web_profiler
12.05.13
✎
18:09
|
ВидПродукта получить не могу!!!
|
|||
11
СтрашнаяПравда
12.05.13
✎
18:33
|
ну например
... СтрКалькуляция.КодПродукта = _состав.Продукт.Код; //вычисляется индекс текущего значения перечисления СтрКалькуляция.ВидПродукта = Перечисления.СтатьяКалькуляцииИлиКакОноВВосьмерке[ИндексИз77]; СтрКалькуляция.Брутто = _состав.Количество; ... естественно, что перечисления в 7 и 8 должны совпадать по индексу |
|||
12
web_profiler
12.05.13
✎
19:21
|
Поднимаю тему заново - ничего не выходит. Мне хотя бы получить строку от перечисления получить.
|
|||
13
Mitriy
12.05.13
✎
19:24
|
XMLСтрока(ПеречислениСсылка)... это в восьмерке...
|
|||
14
web_profiler
12.05.13
✎
19:25
|
(13) ссылки нет - Ком соединение
|
|||
15
Худой
12.05.13
✎
19:30
|
А через конвертацию данных не судьба?
|
|||
16
web_profiler
12.05.13
✎
19:31
|
какая конвертация???? Буха переписана под общепит!!!
|
|||
17
web_profiler
12.05.13
✎
19:32
|
правила писать 3 дня буду!!!
|
|||
18
СтрашнаяПравда
12.05.13
✎
19:32
|
тююю
Идентификатор() возвращает строку - идентификатор значения перечисления ПорядковыйНомер() возвращает порядковый номер значения в перечислении |
|||
19
Mitriy
12.05.13
✎
19:34
|
(17) покажи, как у тебя Идентификатор() не работает... я в семерке ни бум-бум, но, авось, другие подскажут...
|
|||
20
web_profiler
12.05.13
✎
19:34
|
(18) ты чего думаешь я "дурачек" полный, не знаю этих методов? Пробывал кучу раз - ничего.
|
|||
21
Худой
12.05.13
✎
19:35
|
(17) Не гони! Правила, особенно по справочникам, генерятся сами. Начни, хотя бы с одного. Минут 5 уйдет.
|
|||
22
СтрашнаяПравда
12.05.13
✎
19:36
|
"Пробывал кучу раз - ничего."
код в студию |
|||
23
web_profiler
12.05.13
✎
19:36
|
кидаю текст
app = Новый COMОбъект("V77.Application"); иниц = ""; отк = app.Initialize(app.RMTrade, иниц, ""); СпрБлюда7 = app.CreateObject("Справочник.Блюда"); СпрБлюда7.ВыбратьЭлементы(); Пока СпрБлюда7.ПолучитьЭлемент() = 1 Цикл СписокТМЦ = app.CreateObject("СписокЗначений"); // список ТМЦ для запроса СписокСкладов = app.CreateObject("СписокЗначений"); //Калькуляция.УдалитьСТроки(); //Калькуляция = app.CreateObject("ТаблицаЗначений"); Калькуляция = Новый ТаблицаЗначений; Калькуляция.Колонки.Добавить("Владелец",,"Владелец"); Калькуляция.Колонки.Добавить("КодВладельца",,"КодВладельца"); Калькуляция.Колонки.Добавить("Продукт",,"Продукт"); Калькуляция.Колонки.Добавить("ВидПродукта",,"ВидПродукта"); Калькуляция.Колонки.Добавить("КодПродукта",,"КодПродукта"); Калькуляция.Колонки.Добавить("Брутто",,"Брутто"); Калькуляция.Колонки.Добавить("Нетто",,"Нетто"); _состав = app.CreateObject("Справочник.Калькуляции"); _состав.ИспользоватьДату(ТекущаяДата()); _состав.ИспользоватьВладельца(СпрБлюда7.ТекущийЭлемент()); _состав.ВыбратьЭлементы(); Пока _состав.ПолучитьЭлемент() = 1 Цикл Если (_состав.ПометкаУдаления() = 0) и (ЗначениеЗаполнено(_состав.продукт.наименование)) Тогда СтрКалькуляция = Калькуляция.Добавить(); СтрКалькуляция.Владелец = СпрБлюда7.Наименование; СтрКалькуляция.КодВладельца = СпрБлюда7.Код; СтрКалькуляция.Продукт = _состав.Продукт.Наименование; СтрКалькуляция.КодПродукта = _состав.Продукт.Код; Ном = app.Перечисление.СтатьяКалькуляции.Индекс(_состав.Вид); //Имя = COM_ОбъектБД.Метаданные().Перечисления.ВидПеречисления.EnumValues.Get(Ном).Name; СтрКалькуляция.Брутто = _состав.Количество; СтрКалькуляция.Нетто = _состав.Нетто; КонецЕсли; КонецЦикла; |
|||
24
СтрашнаяПравда
12.05.13
✎
19:38
|
_состав.Вид.ПорядковыйНомер() не работает?
|
|||
25
web_profiler
12.05.13
✎
19:41
|
(24) Ошибка при получении значения атрибута контекста (Вид)
|
|||
26
web_profiler
12.05.13
✎
19:44
|
помогите, намудохался уже с этой ерундой!!!!
|
|||
27
Mitriy
12.05.13
✎
19:59
|
вот тут что-то похожее вроде:
Не могу получить значение поля, являющегося перечисленем |
|||
28
Mitriy
12.05.13
✎
20:01
|
и вообще, поищи в гугле: 77 значение перечисления строка
там куча всяких примеров... |
|||
29
wise
12.05.13
✎
20:10
|
(25)глянь в отладчике ТипЗнч(_состав.Вид)
|
|||
30
web_profiler
12.05.13
✎
20:13
|
(29) Ошибка при получении значения атрибута контекста (Вид)
|
|||
31
web_profiler
12.05.13
✎
20:15
|
Б... Я счас повешусь с этим 1С. "Бубен" у кого-то есть?
|
|||
32
wise
12.05.13
✎
20:15
|
(30) ТОГДА ТипЗнч(_состав)
|
|||
33
web_profiler
12.05.13
✎
20:16
|
Мож кто может подключится по амми-админом и посмотреть что к чему?
|
|||
34
СтрашнаяПравда
12.05.13
✎
20:16
|
Давай по порядку
Сообщить(_состав.Вид); сообщает COMОбъект ? |
|||
35
web_profiler
12.05.13
✎
20:16
|
(32) COM Объект
|
|||
36
web_profiler
12.05.13
✎
20:17
|
(34) - см. (30)
|
|||
37
СтрашнаяПравда
12.05.13
✎
20:17
|
отлично
Сообщить(_состав.Вид.ПорядковыйНомер()); ругается? |
|||
38
СтрашнаяПравда
12.05.13
✎
20:18
|
так сообщает или не сообщает? ))
|
|||
39
web_profiler
12.05.13
✎
20:20
|
(37), (38) в отладчике пишет: Ошибка при получении значения атрибута контекста (Вид)
|
|||
40
СтрашнаяПравда
12.05.13
✎
20:21
|
помощь еще нужна? )
|
|||
41
СтрашнаяПравда
12.05.13
✎
20:21
|
просто если
Сообщить(_состав.Вид); выдает ошибку, логично предположить, что у твоего семерошного справочника нет реквизита "Вид" |
|||
42
web_profiler
12.05.13
✎
20:26
|
кидаю скриншот справочника с необходимым пепечислением
http://iscr.ru/1368375962/ |
|||
43
web_profiler
12.05.13
✎
20:34
|
???
|
|||
44
Mitriy
12.05.13
✎
20:37
|
а ты точно базы не попутал?
|
|||
45
web_profiler
12.05.13
✎
20:41
|
в смысле? в 8 гружу с 7.7
|
|||
46
web_profiler
12.05.13
✎
20:41
|
(44) можешь подключиться и посмотреть
|
|||
47
СтрашнаяПравда
12.05.13
✎
20:45
|
мистика, не иначе )
специально для вас, не поленилась и набросала обработку даже в извращенном виде код Сообщить(Спр.РеквизитТипаПеречисление); сообщает мне COMОбъект ... сорри, чем могла ) |
|||
48
Mitriy
12.05.13
✎
20:46
|
(46) а ты по ссылке ходил? Там чего-то про периодический реквизит было...
|
|||
49
web_profiler
12.05.13
✎
20:49
|
(48) реквизит не периодический - точно. :(
|
|||
50
web_profiler
12.05.13
✎
20:50
|
никаких ссылок- нужна просто строка
|
|||
51
СтрашнаяПравда
12.05.13
✎
20:50
|
значение периодического реквизита нельзя получить, если не установлена дата выборки справочника, но получить COM он должен по любому )
|
|||
52
web_profiler
12.05.13
✎
20:50
|
(47) спасибо солнце, мучаюсь дальше
|
|||
53
marvak
12.05.13
✎
20:51
|
ужас,
|
|||
54
web_profiler
12.05.13
✎
20:52
|
(53) не то слово - полтергейст какой-то
|
|||
55
СтрашнаяПравда
12.05.13
✎
20:53
|
а без этой статьи калькуляции остальное отрабатывает? )
|
|||
56
web_profiler
12.05.13
✎
20:54
|
все ок- строковые реквизиты
|
|||
57
СтрашнаяПравда
12.05.13
✎
20:54
|
тогда забей! ))
|
|||
58
web_profiler
12.05.13
✎
20:55
|
(57) как? надо!!!
|
|||
59
marvak
12.05.13
✎
20:56
|
(58)
по порядковому номеру вытаскивал? |
|||
60
СтрашнаяПравда
12.05.13
✎
20:56
|
часть фторая )
|
|||
61
web_profiler
12.05.13
✎
21:02
|
нет помощи
|
|||
62
marvak
12.05.13
✎
21:16
|
(61)
Неужели так сложно по идентификатору попробовать получить перчисление? |
|||
63
web_profiler
12.05.13
✎
21:21
|
так как это сделать? я сейчас "если-тогда-конецесли" забуду!!!
|
|||
64
web_profiler
12.05.13
✎
21:21
|
:)
|
|||
65
marvak
12.05.13
✎
21:30
|
(64)
:( |
|||
66
web_profiler
12.05.13
✎
21:34
|
(65) конструктивная помощь
|
|||
67
wise
12.05.13
✎
21:36
|
(66)СКАЖИ что в отладчике {_состав.Вид()}
|
|||
68
marvak
12.05.13
✎
21:39
|
База77.Перечисления.ВидыТМЦ.Получить(ИНД)
где ИНД - число, индекс нужного значениея в перечислении v8: Запрос из 8.1 в 7.7 по OLE и перечисление v8: Запрос из 8.1 в 7.7 по OLE и перечисление |
|||
69
marvak
12.05.13
✎
21:40
|
(66)
и больше не говори , что ты .. |
|||
70
marvak
12.05.13
✎
21:40
|
||||
71
EvgeniuXP
12.05.13
✎
21:45
|
"Для доступа к константам, перечислениям и видам субконто достаточно использовать свойства глобального контекста Константа, Перечисление или ВидыСубконто сервера приложения (листинг 4.2)
Сообщить(БазаОЛЕ.Константа.ДатаЗапретаРедактирования); Сообщить(БазаОЛЕ.Перечисление.КатегорияКонтрагента.Поставщик); Сообщить(БазаОЛЕ.ВидСубконто.Контрагенты);" 1С:Предприятие 7.7/8.0 системное программирование 2-е издание, 2007 г., 4 глава 128 страница. |
|||
72
web_profiler
12.05.13
✎
21:47
|
(71) вообще суперский ответ. А как в ком-соединении получить эту строку?, а?
|
|||
73
EvgeniuXP
12.05.13
✎
21:53
|
(72) да возьми глобальную функцию напиши (сравнивай свои перечисления и возвращай значение) и вызови ее и получи параметр и анализируй.
|
|||
74
web_profiler
12.05.13
✎
21:53
|
(70) НАКОНЕЦ-ТО!!!! Былл бы рядом разцеловал бы (по-дружески)!СПАСИБО ОГРОМНОЕ 3 часа дибилизма. Как же я "люблю" 1С!!!
|
|||
75
web_profiler
12.05.13
✎
21:54
|
Всем кто помогал огромное спасибо!!!!
app.Перечисление.Статьякалькуляции.Блюдо.Идентификатор() = "Блюдо" |
|||
76
web_profiler
12.05.13
✎
21:55
|
(72) не разбирался - работает (75), но тоже сенкс
|
|||
77
web_profiler
12.05.13
✎
21:55
|
сорри(73)
|
|||
78
EvgeniuXP
12.05.13
✎
21:56
|
(75) а говоришь не работает Идентификатор() :)
но 3 часа мог бы и не долбаться, по 73 сделал бы и всё. |
|||
79
web_profiler
12.05.13
✎
21:58
|
да просто у меня этих перечислений нет - они в 7.7 присутсвуют в 8 - справочник
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |