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

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

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

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

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

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

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

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

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


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


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

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

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


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

Практически: "БазаИсточник.Справочники.ДоговораФизическихЛиц.НайтиПоКоду("000000002")" - это тоже запрос.
4. Matveev_VS 155 24.03.22 17:31 Сейчас в теме
(3) Конечно. Сейчас выложу код.
5. Matveev_VS 155 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 132 25.03.22 08:10 Сейчас в теме
(5) И не получицца из запроса. Тоже с этой хренью сталкивался. Я делал так: выгружал еще Код элемента справочника в виде строки и уже потом в базе-приемнике искал элемент соответствующего справочника по коду, типа: Справочники.НужныйСправочник.НайтиПоКоду("123");
9. vik2006 132 25.03.22 08:13 Сейчас в теме
(5) Но это в том случае, если коды и там и там совпадают. Если же нет, то тут только извращаться с поиском по наименованию, что не есть хорошо, а очень плохо. Затрахаешься выбирать со всякими извращениями типа "СокрЛП". Но тожеть можно делать. Бывают сбои, но редко.
6. Matveev_VS 155 24.03.22 17:35 Сейчас в теме
Может из запроса нужно убрать ВЫБРАТЬ РАЗРЕШЕННЫЕ?
10. Matveev_VS 155 25.03.22 09:33 Сейчас в теме
(8) Можно по подробнее, каким образом выгружал код справочника.
11. vik2006 132 25.03.22 09:36 Сейчас в теме
(10) В запросе к выгружаемой БД, а это была УПП, просто тупо делал новое поле, путем переноса поля код. А потом после выгрузки запроса пробегался по его полям и заменял данные поля Код, это же строка, так: Стр.Код= СокрЛП(Стр.Код).
12. vik2006 132 25.03.22 09:37 Сейчас в теме
(10) Ну, и, соответственно, когда начинал искать нужную номенклатуру в этой таблице значений из запроса, то тоже этот код заменял через СокрЛП.
13. Matveev_VS 155 25.03.22 10:01 Сейчас в теме
(11) т.е. добавил новый реквизит?
14. Matveev_VS 155 25.03.22 10:08 Сейчас в теме
Я ни могу понять, почему через com соединение так можно получить данные
БазаИсточник.Справочники.ДоговораФизическихЛиц.НайтиПоКоду("000000002")

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


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

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


Без временных таблиц в запросе.
Оставьте свое сообщение
Вакансии
Функциональный архитектор
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб.
Полный день

Ведущий программист 1С (удаленно)
Пермь
зарплата от 150 000 руб.
Полный день

Программист 1С
Домодедово
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Аналитик-консультант 1C:ERP
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день