Получение запросом справочника из расширения COM соединением

1. Matveev_VS 165 24.03.22 17:12 Сейчас в теме
Коллеги, добрый день.

Нужна помощь!

1С:Предприятие 8.3.18.1208 (клиент-сервер)
Зарплата и управление персоналом КОРП, редакция 3.1
Управление производственным предприятием, редакция 1.3

В базе ЗУП создал расширение с новым справочником и создал новые элементы в справочнике.

В базе УПП подключаюсь COM соединением к базе ЗУП, и запросом получаю данные из ЗУПа.

При обходе результата, я вижу, что справочник из расширения не передается(номер и наименование - пустые), все остальные данные я получаю.

Хотя если я ставлю

БазаИсточник.Справочники.ДоговораФизическихЛиц.НайтиПоКоду("000000002")


То новый справочник в УПП видно.


Вопрос. Данные расширений возможно ли получить COM запросом?

Или как можно это обойти.
По теме из базы знаний
Найденные решения
22. Matveev_VS 165 11.09.22 08:11 Сейчас в теме
(21) Обращаясь на прямую к расширению:

"ВЫБРАТЬ
|    ДоговораФизическихЛиц.Ссылка КАК Ссылка,
|    ДоговораФизическихЛиц.ВерсияДанных КАК ВерсияДанных,
|    ДоговораФизическихЛиц.ПометкаУдаления КАК ПометкаУдаления,
|    ДоговораФизическихЛиц.Код КАК Код,
|    ДоговораФизическихЛиц.Наименование КАК Наименование,
|    ДоговораФизическихЛиц.Номер КАК Номер,
|    ДоговораФизическихЛиц.Дата КАК Дата,
|    ДоговораФизическихЛиц.ВидПрочегоДохода КАК ВидПрочегоДохода,
|    ДоговораФизическихЛиц.ФизическоеЛицо КАК ФизическоеЛицо,
|    ДоговораФизическихЛиц.Предопределенный КАК Предопределенный,
|    ДоговораФизическихЛиц.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных,
|    ДоговораФизическихЛиц.Представление КАК Представление
|ИЗ
|    Справочник.ДоговораФизическихЛиц КАК ДоговораФизическихЛиц
|";
Показать


Без временных таблиц в запросе.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. vadim.semyonov.rzn 24.03.22 17:26 Сейчас в теме
(1)
запросом получаю данные из ЗУПа
Надеюсь, запрос выполняется в базе ЗУП? Через БазаИсточник.NewObject("Запрос")?
2. dehro 7 24.03.22 17:21 Сейчас в теме
Код запроса покажи.

Практически: "БазаИсточник.Справочники.ДоговораФизическихЛиц.НайтиПоКоду("000000002")" - это тоже запрос.
4. Matveev_VS 165 24.03.22 17:31 Сейчас в теме
(3) Конечно. Сейчас выложу код.
5. Matveev_VS 165 24.03.22 17:34 Сейчас в теме
Попытка
		V8 = Новый COMОбъект("V83.ComConnector");
	Исключение             
		ОбщегоНазначения.СообщитьОбОшибке(Строка(ТекущаяДата()) 
			+ ": " + "Не удалось создать COM объект для соединения с базой!"       
			+ ОписаниеОшибки(), Ложь,"Ошибка при инициализации V83.Connector!",СтатусСообщения.Важное);            
		Возврат;
	КонецПопытки;
	
	Попытка
		СтрокаСоединения = "Srvr=" + Сервер + ";Ref=" + База + ";Usr=" + Пользователь + ";Pwd=" + Пароль;
		БазаИсточник = V8.Connect(СтрокаСоединения);
		СоединениеУстановлено = Истина;
	Исключение              
		ОбщегоНазначения.СообщитьОбОшибке(Строка(ТекущаяДата()) 
			+ ": " + "Не удалось соединиться с информационной базой" + Символы.ПС 
			+ ОписаниеОшибки(), Ложь,"Ошибка при соединении!",СтатусСообщения.Важное);
		СоединениеУстановлено = Ложь;
		Возврат;
	КонецПопытки;
	Попытка             
		Запрос = БазаИсточник.NewObject("Запрос");      
	Исключение      
		ОбщегоНазначения.СообщитьОбОшибке(Строка(ТекущаяДата()) 
		+ ": " + "Не удалось создать COM объект для соединения с базой!"
		,Ложь,"Ошибка при  подготовке запроса к  базе-источнику", СтатусСообщения.Важное);   
		Возврат;      
	КонецПопытки;
	
	Запрос.УстановитьПараметр("Организация", БазаИсточник.Справочники.Организации.НайтиПоНаименованию(НовыйДок.Организация.Наименование));
	Запрос.УстановитьПараметр("ПериодРегистрации", НовыйДок.ПериодРегистрации);
	Запрос.УстановитьПараметр("Ссылка",  Ссылка);
	
	Запрос.Текст =
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	СуммаПрочихНачислений.ФизическоеЛицо КАК ФизическоеЛицо,
		|	НачисленияУдержанияВзносы.НДФЛ КАК НДФЛ,
		|	НачисленияУдержанияВзносы.Договор КАК Договор,
		|	СуммаПрочихНачислений.СуммаНДФЛ КАК СуммаНДФЛ
		|ПОМЕСТИТЬ ВТПрочиеДоходы
		|ИЗ
		|	(ВЫБРАТЬ
		|		ПрочиеДоходоыНачисленияУдержанияВзносы.ФизическоеЛицо КАК ФизическоеЛицо,
		|		СУММА(ПрочиеДоходоыНачисленияУдержанияВзносы.НДФЛ) КАК СуммаНДФЛ
		|	ИЗ
		|		Документ.РегистрацияПрочихДоходов.НачисленияУдержанияВзносы КАК ПрочиеДоходоыНачисленияУдержанияВзносы
		|	ГДЕ
		|		ПрочиеДоходоыНачисленияУдержанияВзносы.Ссылка.Организация = &Организация
		|		И ПрочиеДоходоыНачисленияУдержанияВзносы.Ссылка.ПериодРегистрации = &ПериодРегистрации
		|	
		|	СГРУППИРОВАТЬ ПО
		|		ПрочиеДоходоыНачисленияУдержанияВзносы.ФизическоеЛицо) КАК СуммаПрочихНачислений
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РегистрацияПрочихДоходов.НачисленияУдержанияВзносы КАК НачисленияУдержанияВзносы
		|		ПО СуммаПрочихНачислений.ФизическоеЛицо = НачисленияУдержанияВзносы.ФизическоеЛицо
		|ГДЕ
		|	НачисленияУдержанияВзносы.Ссылка.Организация = &Организация
		|	И НачисленияУдержанияВзносы.Ссылка.ПериодРегистрации = &ПериодРегистрации
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	НачисленныйНДФЛ.Ссылка.Номер КАК НомерДокаОтражения,
		|	НачисленныйНДФЛ.ФизическоеЛицо КАК ФизическоеЛицо,
		|	ПРЕДСТАВЛЕНИЕ(НачисленныйНДФЛ.ВидОперации) КАК ВидОперации,
		|	НачисленныйНДФЛ.СтатьяФинансирования.Наименование КАК СтатьяФинансирования,
		|	НачисленныйНДФЛ.КодПоОКАТО КАК КодПоОКАТО,
		|	НачисленныйНДФЛ.КодПоОКТМО КАК КодПоОКТМО,
		|	НачисленныйНДФЛ.КПП КАК КПП,
		|	НачисленныйНДФЛ.КодНалоговогоОргана КАК КодНалоговогоОргана,
		|	ВЫБОР
		|		КОГДА НачисленныйНДФЛ.Сумма = ВТПрочиеДоходы.СуммаНДФЛ
		|			ТОГДА ВТПрочиеДоходы.НДФЛ
		|		ИНАЧЕ НачисленныйНДФЛ.Сумма
		|	КОНЕЦ КАК Сумма,
		|	ВТПрочиеДоходы.ФизическоеЛицо КАК ФизическоеЛицо1,
		|	ВТПрочиеДоходы.НДФЛ КАК НДФЛ,
		|	ВТПрочиеДоходы.СуммаНДФЛ КАК СуммаНДФЛ,
		|	ВТПрочиеДоходы.Договор КАК Договор,
		|	ВТПрочиеДоходы.Договор.Ссылка КАК ДоговорСсылка,
		|	ВТПрочиеДоходы.Договор.ВерсияДанных КАК ДоговорВерсияДанных,
		|	ВТПрочиеДоходы.Договор.ПометкаУдаления КАК ДоговорПометкаУдаления,
		|	ВТПрочиеДоходы.Договор.Код КАК ДоговорКод,
		|	ВТПрочиеДоходы.Договор.Наименование КАК ДоговорНаименование,
		|	ВТПрочиеДоходы.Договор.Номер КАК ДоговорНомер,
		|	ВТПрочиеДоходы.Договор.Дата КАК ДоговорДата,
		|	ВТПрочиеДоходы.Договор.ВидПрочегоДохода КАК ДоговорВидПрочегоДохода,
		|	ВТПрочиеДоходы.Договор.ФизическоеЛицо КАК ДоговорФизическоеЛицо,
		|	ВТПрочиеДоходы.Договор.Предопределенный КАК ДоговорПредопределенный,
		|	ВТПрочиеДоходы.Договор.ИмяПредопределенныхДанных КАК ДоговорИмяПредопределенныхДанных,
		|	ВТПрочиеДоходы.Договор.Представление КАК ДоговорПредставление
		|ИЗ
		|	Документ.ОтражениеЗарплатыВБухучете.НачисленныйНДФЛ КАК НачисленныйНДФЛ
		|		ПОЛНОЕ СОЕДИНЕНИЕ ВТПрочиеДоходы КАК ВТПрочиеДоходы
		|		ПО НачисленныйНДФЛ.ФизическоеЛицо = ВТПрочиеДоходы.ФизическоеЛицо
		|ГДЕ
		|	НачисленныйНДФЛ.Ссылка.Организация = &Организация
		|	И НачисленныйНДФЛ.Ссылка = &Ссылка
		|	И НачисленныйНДФЛ.Ссылка.ПериодРегистрации = &ПериодРегистрации
		|";    
	ВыборкаНДФЛ = Запрос.Выполнить().Выгрузить(); 
Показать


Договор полностью пустой.
7. vadim.semyonov.rzn 24.03.22 18:50 Сейчас в теме
(5) А вот параметр "Ссылка" - это ведь тоже должен быть COM-объект. Как он получается, из листинга не ясно.
PlatonStepan; +1 Ответить
8. vik2006 136 25.03.22 08:10 Сейчас в теме
(5) И не получицца из запроса. Тоже с этой хренью сталкивался. Я делал так: выгружал еще Код элемента справочника в виде строки и уже потом в базе-приемнике искал элемент соответствующего справочника по коду, типа: Справочники.НужныйСправочник.НайтиПоКоду("123");
9. vik2006 136 25.03.22 08:13 Сейчас в теме
(5) Но это в том случае, если коды и там и там совпадают. Если же нет, то тут только извращаться с поиском по наименованию, что не есть хорошо, а очень плохо. Затрахаешься выбирать со всякими извращениями типа "СокрЛП". Но тожеть можно делать. Бывают сбои, но редко.
6. Matveev_VS 165 24.03.22 17:35 Сейчас в теме
Может из запроса нужно убрать ВЫБРАТЬ РАЗРЕШЕННЫЕ?
10. Matveev_VS 165 25.03.22 09:33 Сейчас в теме
(8) Можно по подробнее, каким образом выгружал код справочника.
11. vik2006 136 25.03.22 09:36 Сейчас в теме
(10) В запросе к выгружаемой БД, а это была УПП, просто тупо делал новое поле, путем переноса поля код. А потом после выгрузки запроса пробегался по его полям и заменял данные поля Код, это же строка, так: Стр.Код= СокрЛП(Стр.Код).
12. vik2006 136 25.03.22 09:37 Сейчас в теме
(10) Ну, и, соответственно, когда начинал искать нужную номенклатуру в этой таблице значений из запроса, то тоже этот код заменял через СокрЛП.
13. Matveev_VS 165 25.03.22 10:01 Сейчас в теме
(11) т.е. добавил новый реквизит?
14. Matveev_VS 165 25.03.22 10:08 Сейчас в теме
Я ни могу понять, почему через com соединение так можно получить данные
БазаИсточник.Справочники.ДоговораФизическихЛиц.НайтиПоКоду("000000002")

А запросом нет.
15. SlavaKron 25.03.22 10:13 Сейчас в теме
(14) На вопрос из (7) ответьте, пожалуйста.
16. Matveev_VS 165 25.03.22 10:14 Сейчас в теме
Если я пишу запрос:
"ВЫБРАТЬ
|	ДоговораФизическихЛиц.Ссылка КАК Ссылка,
|	ДоговораФизическихЛиц.ВерсияДанных КАК ВерсияДанных,
|	ДоговораФизическихЛиц.ПометкаУдаления КАК ПометкаУдаления,
|	ДоговораФизическихЛиц.Код КАК Код,
|	ДоговораФизическихЛиц.Наименование КАК Наименование,
|	ДоговораФизическихЛиц.Номер КАК Номер,
|	ДоговораФизическихЛиц.Дата КАК Дата,
|	ДоговораФизическихЛиц.ВидПрочегоДохода КАК ВидПрочегоДохода,
|	ДоговораФизическихЛиц.ФизическоеЛицо КАК ФизическоеЛицо,
|	ДоговораФизическихЛиц.Предопределенный КАК Предопределенный,
|	ДоговораФизическихЛиц.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных,
|	ДоговораФизическихЛиц.Представление КАК Представление
|ИЗ
|	Справочник.ДоговораФизическихЛиц КАК ДоговораФизическихЛиц
|";
Показать


То данные получаю
17. Matveev_VS 165 25.03.22 10:22 Сейчас в теме
(15) Я не совсем понял вопрос.
18. SlavaKron 25.03.22 11:13 Сейчас в теме
(17) Какой тип имеет переменная "Ссылка" в строке Запрос.УстановитьПараметр("Ссылка", Ссылка)?
19. Matveev_VS 165 25.03.22 11:27 Сейчас в теме
20. Matveev_VS 165 25.03.22 14:38 Сейчас в теме
Вопрос решил. Всем спасибо.
21. rougudz 09.09.22 11:31 Сейчас в теме
(20)а не подскажешь как именно?
22. Matveev_VS 165 11.09.22 08:11 Сейчас в теме
(21) Обращаясь на прямую к расширению:

"ВЫБРАТЬ
|    ДоговораФизическихЛиц.Ссылка КАК Ссылка,
|    ДоговораФизическихЛиц.ВерсияДанных КАК ВерсияДанных,
|    ДоговораФизическихЛиц.ПометкаУдаления КАК ПометкаУдаления,
|    ДоговораФизическихЛиц.Код КАК Код,
|    ДоговораФизическихЛиц.Наименование КАК Наименование,
|    ДоговораФизическихЛиц.Номер КАК Номер,
|    ДоговораФизическихЛиц.Дата КАК Дата,
|    ДоговораФизическихЛиц.ВидПрочегоДохода КАК ВидПрочегоДохода,
|    ДоговораФизическихЛиц.ФизическоеЛицо КАК ФизическоеЛицо,
|    ДоговораФизическихЛиц.Предопределенный КАК Предопределенный,
|    ДоговораФизическихЛиц.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных,
|    ДоговораФизическихЛиц.Представление КАК Представление
|ИЗ
|    Справочник.ДоговораФизическихЛиц КАК ДоговораФизическихЛиц
|";
Показать


Без временных таблиц в запросе.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот