Приветствую всех, если конфигурация БП 3.0 стандартная. в документе поступление добавил реквизит в табличную часть товары через расширение (адаптация, безопасный режим отключен), версия 1С 8.3.20.1674. делаю подключение к этой базе (через V83.COMConnector) и простейший запрос, валится с ошибкой что такого реквизита нету. делаю в самой базе такой-же запрос (через внешнюю обработку), все работает. ничего похожего особе не нашел в интернетах. может было у когото?
Сейчас попробовал из бухии обратиться к реквизиту расширения в УТ.
Все нормально. И там и там юзер с полными правами.
&НаКлиенте
Процедура Команда1(Команда)
Команда1НаСервере();
КонецПроцедуры
&НаСервере
Процедура Команда1НаСервере()
Попытка
Connector = Новый COMОбъект("V83.COMConnector");
Соединение = Connector.connect("File=""C:\1C\******"";Usr=""Admin1C"";Pwd=""*********"";");
Исключение
Сообщить(ОписаниеОшибки(), СтатусСообщения.Важное);
Возврат;
КонецПопытки;
Запрос = Соединение.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ
| Приобретение.Номер КАК Номер,
| Приобретение.Дата КАК Дата,
| Приобретение.РасшУТ_ДатаВПечать КАК ДатаВПечать
|ИЗ
| Документ.ПриобретениеТоваровУслуг КАК Приобретение
|";
РезультатЗапроса = Запрос.Выполнить().Выгрузить(); //Получили COM объект
Преобразование = ЗначениеИзСтрокиВнутр(Соединение.ЗначениеВСтрокуВнутр(РезультатЗапроса));
КонецПроцедуры
Показать
У расширения безопасный режим и защита от опасных действий отключены.
Использовать основную роль для всех пользователей включено.
Назаначение - дополнение.
(1)не было, но попытаюсь малость пованговать:
Необходимо пользователю, с помощью которого подключаетесь по COM, дать роль из расширения.
1. пользователи под которым запускаю 1с и подключаюсь по com, одинаковые
2. в расширении нету ролей, там только 1 реквизит и форма на которую оный выведен.
(5)в прошлом годе так и забылось (не понадобилось) сейчас всплыло обратно)
отключен режим безопасный и защита от опасных действий или включен - неважно. все равно нету толку....
upd. получилось запустить V83.Application (надо бьло зарегить "C:\Program Files\1cv8\[версия платформы]\bin\1cv8.exe" /regserver)
но чуда также не случилось:
1C:Enterprise 8.3.20.1613: {(10, 32)}: Поле не найдено "ПоступлениеТоваровУслугТовары.Расш_Авто"
ПоступлениеТоваровУслугТовары.<<?>>Расш_Авто КАК Авто
(12) V83.COMConnector или V83.Application, это же COM? ну насколько я это понимаю.
расширение точно не в безопасном режиме. пробовал менять у расширения все что можно)
не совсем понял про свою базу.
если речь о базе к которой подключаюсь и из которой подключаюсь, то это точно разные базы:
СтрокаПодключения = "File=""путь к базе с расширением""; Usr=""Пользоваьтель""; Pwd=""Пароль"";";
Соединитель = Новый COMObject("V83.COMConnector");
мСоединение = Соединитель.Connect(СтрокаПодключения);
Сейчас попробовал из бухии обратиться к реквизиту расширения в УТ.
Все нормально. И там и там юзер с полными правами.
&НаКлиенте
Процедура Команда1(Команда)
Команда1НаСервере();
КонецПроцедуры
&НаСервере
Процедура Команда1НаСервере()
Попытка
Connector = Новый COMОбъект("V83.COMConnector");
Соединение = Connector.connect("File=""C:\1C\******"";Usr=""Admin1C"";Pwd=""*********"";");
Исключение
Сообщить(ОписаниеОшибки(), СтатусСообщения.Важное);
Возврат;
КонецПопытки;
Запрос = Соединение.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ
| Приобретение.Номер КАК Номер,
| Приобретение.Дата КАК Дата,
| Приобретение.РасшУТ_ДатаВПечать КАК ДатаВПечать
|ИЗ
| Документ.ПриобретениеТоваровУслуг КАК Приобретение
|";
РезультатЗапроса = Запрос.Выполнить().Выгрузить(); //Получили COM объект
Преобразование = ЗначениеИзСтрокиВнутр(Соединение.ЗначениеВСтрокуВнутр(РезультатЗапроса));
КонецПроцедуры
Показать
У расширения безопасный режим и защита от опасных действий отключены.
Использовать основную роль для всех пользователей включено.
Назаначение - дополнение.
(14)
спасибо!
не знаю что изменилось. но все заработало. ей богу не понимаю, что изменилось.
взял твой код и переделал под свою конфигурацию.
сравнивал потом в чем разница - нету ее, но все работает.
спасибо огромное.