|
Подключение к другой БД через v82.COMConnector и получение массива | ☑ | ||
---|---|---|---|---|
0
Вебер
23.07.15
✎
04:22
|
Всем привет! Верите в мистику? через раз работает v82.COMConnector, может считать данные или может закрыть платформу. Пробовал на разных платформах на разных ПК везде одна и таже песня? ЧЯДН?
Умных людей хотел спросить в БП 2 создал общий модуль который отрабатывает функцию и отдает массив. В БП 3 написал код Соединение = новый COMОбъект("v82.COMConnector"); попытка V82 = Соединение.Connect("File=""D:\БАЗЫ 1с\ОАО РУС\2015\2"";Usr=""Вебер"";Pwd="); исключение Сообщить("Не удалось подключиться к базе!"); возврат; конецПопытки; ОтфактурованныеПоступления = Соединение.NG.ПолучитьТЗ(); конецесли; ВЫДАЕТ который выдает {Документ.ЗачетНДС_19_КВ.МодульОбъекта(352)}: Поле объекта не обнаружено (NG) ОтфактурованныеПоступления = Соединение.NG.ПолучитьТЗ(); |
|||
1
Andrewww123
23.07.15
✎
04:48
|
Так наверное нужно: "ОтфактурованныеПоступления = V82.NG.ПолучитьТЗ();"?
|
|||
2
Вебер
23.07.15
✎
04:57
|
(1) действительно как все просто
|
|||
3
Вебер
23.07.15
✎
04:58
|
(1) напоролся на еще одну проблему {ОбщийМодуль.NG.Модуль(2,9)}: Процедура или функция с указанным именем уже определена (ПолучитьТЗ)
|
|||
4
Andrewww123
23.07.15
✎
05:03
|
(3) Код модуля в студию :) Только если не большой
|
|||
5
Вебер
23.07.15
✎
05:06
|
(4) поменял имя с ПолучитьТЗ на ПолучитьТЗМассив
теперь пишет Параметр не опциональный |
|||
6
Вебер
23.07.15
✎
05:07
|
(4) Функция ПолучитьТЗМассив (ТЗ) Экспорт
Организация=Справочники.Организации.НайтиПоКоду("000000002"); ПроцентЗакрытия=100; ОбъектРаспределяемый=Справочники.ОбъектыСтроительства.НайтиПоКоду("000000140"); Дата = ТекущаяДата(); Запрос = Новый Запрос("ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Поставщик, | ХозрасчетныйОстаткиИОбороты.Субконто2 КАК СчетФактура, | ХозрасчетныйОстаткиИОбороты.Субконто3 КАК ОбъектСтроительства, | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток * &Процент / 100 КАК СуммаБУ |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты( | , | &КонПериода, | Период, | ДвиженияИГраницыПериода, | Счет = &Счет19_КВ, | , | Организация = &Организация | И Субконто3 = &ОбъектСтроительства) КАК ХозрасчетныйОстаткиИОбороты | |УПОРЯДОЧИТЬ ПО | Поставщик, | СчетФактура"); Запрос.УстановитьПараметр("Счет19_КВ",ПланыСчетов.Хозрасчетный.НДСпоЗатратамНаКВ); Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("КонПериода", Дата); Запрос.УстановитьПараметр("Процент", ПроцентЗакрытия); Запрос.УстановитьПараметр("ОбъектСтроительства", ОбъектРаспределяемый); Результат19_КВ = Запрос.Выполнить().Выбрать(); //Если НЕ Результат19_КВ.Следующий() Тогда // Возврат; //Иначе Таб19_КВ = Запрос.Выполнить().Выгрузить(); //КонецЕсли; Массив_СчФ = Таб19_КВ.ВыгрузитьКолонку("СчетФактура"); //СОБРАЛИ ОПЕРАЦИИ ПО СЧЕТУ 19 И ВЫГРУЗИЛИ КОЛОНКУ СФ Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НДСПредъявленныйОстатки.Организация, | НДСПредъявленныйОстатки.СчетФактура КАК СчетФактура, | НДСПредъявленныйОстатки.ВидЦенности, | НДСПредъявленныйОстатки.СтавкаНДС, | НДСПредъявленныйОстатки.СчетУчетаНДС, | НДСПредъявленныйОстатки.Поставщик, | НДСПредъявленныйОстатки.ДатаОплаты, | ВЫБОР | КОГДА ЕСТЬNULL(СУММА(НДСПредъявленныйОстаткиИтог.СуммаБезНДСОстаток), 0) = 0 | ТОГДА 0 | ИНАЧЕ (ЕСТЬNULL(СУММА(НДСПредъявленныйОстаткиИтог.СуммаБезНДСОстаток), 0) - ЕСТЬNULL(НДСпоОСиНМАОстатки.СуммаБезНДСОстаток, 0) - ЕСТЬNULL(НДСПредъявленныйРеализация0Остатки.СуммаБезНДСОстаток, 0)) / ЕСТЬNULL(СУММА(НДСПредъявленныйОстаткиИтог.СуммаБезНДСОстаток), 0) * ЕСТЬNULL(НДСПредъявленныйОстатки.СуммаБезНДСОстаток, 0) | КОНЕЦ КАК СуммаБезНДС, | ВЫБОР | КОГДА ЕСТЬNULL(СУММА(НДСПредъявленныйОстаткиИтог.НДСОстаток), 0) = 0 | ТОГДА 0 | ИНАЧЕ (ЕСТЬNULL(СУММА(НДСПредъявленныйОстаткиИтог.НДСОстаток), 0) - ЕСТЬNULL(НДСПредъявленныйРеализация0Остатки.НДСОстаток, 0) - ЕСТЬNULL(НДСпоОСиНМАОстатки.НДСОстаток, 0)) / ЕСТЬNULL(СУММА(НДСПредъявленныйОстаткиИтог.НДСОстаток), 0) * ЕСТЬNULL(НДСПредъявленныйОстатки.НДСОстаток, 0) | КОНЕЦ КАК НДС, | ЕСТЬNULL(НДСПредъявленныйОстатки.СчетФактура.Дата, &Дата) КАК СчетФактураДата, | НДСПредъявленныйОстатки.ИсправленныйСчетФактура |ИЗ | РегистрНакопления.НДСПредъявленный.Остатки( | &ДатаГраница, | Организация = &Организация | И НЕ ВидЦенности В (&ИсключаемыеВидыЦенностей) | И ВЫБОР | КОГДА ВидЦенности В (&ВидыЦенностейОплата) | ТОГДА ДатаОплаты <> ДАТАВРЕМЯ(1, 1, 1) | КОГДА ВидЦенности В (&ВидыЦенностей_ОплатаПоНДССМР) | ТОГДА ВЫБОР | КОГДА ЕСТЬNULL(СчетФактура.Дата, &Дата) < ДАТАВРЕМЯ(2009, 1, 1) | ТОГДА ДатаОплаты <> ДАТАВРЕМЯ(1, 1, 1) | ИНАЧЕ ИСТИНА | КОНЕЦ | ИНАЧЕ ИСТИНА | КОНЕЦ | И НЕ СчетФактура ССЫЛКА Документ.КорректировкаРеализации | И СчетФактура В (&Массив_СчФ)) КАК НДСПредъявленныйОстатки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НДСпоОСиНМА.Остатки( | &ДатаГраница, | Организация = &Организация | И НДСВключенВСтоимость = ЛОЖЬ | И НЕ ВидЦенности В (&ИсключаемыеВидыЦенностей) | И НеВлияетНаВычет = ЛОЖЬ) КАК НДСпоОСиНМАОстатки | ПО НДСПредъявленныйОстатки.СчетФактура = НДСпоОСиНМАОстатки.СчетФактура | И НДСПредъявленныйОстатки.ВидЦенности = НДСпоОСиНМАОстатки.ВидЦенности | И НДСПредъявленныйОстатки.СтавкаНДС = НДСпоОСиНМАОстатки.СтавкаНДС | И НДСПредъявленныйОстатки.СчетУчетаНДС = НДСпоОСиНМАОстатки.СчетУчетаНДС | И (НДСпоОСиНМАОстатки.СуммаБезНДСОстаток + НДСпоОСиНМАОстатки.НДСОстаток > 0) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НДСПредъявленныйРеализация0.Остатки( | &ДатаГраница, | Организация = &Организация | И НЕ ВидЦенности В (&ИсключаемыеВидыЦенностей)) КАК НДСПредъявленныйРеализация0Остатки | ПО НДСПредъявленныйОстатки.СчетФактура = НДСПредъявленныйРеализация0Остатки.СчетФактура | И НДСПредъявленныйОстатки.ВидЦенности = НДСПредъявленныйРеализация0Остатки.ВидЦенности | И НДСПредъявленныйОстатки.СтавкаНДС = НДСПредъявленныйРеализация0Остатки.СтавкаНДС | И НДСПредъявленныйОстатки.СчетУчетаНДС = НДСПредъявленныйРеализация0Остатки.СчетУчетаНДС | И (НДСПредъявленныйРеализация0Остатки.СуммаБезНДСОстаток + НДСПредъявленныйРеализация0Остатки.НДСОстаток > 0) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НДСПредъявленный.Остатки( | &ДатаГраница, | Организация = &Организация | И НЕ ВидЦенности В (&ИсключаемыеВидыЦенностей) | И ВЫБОР | КОГДА ВидЦенности В (&ВидыЦенностейОплата) | ТОГДА ДатаОплаты <> ДАТАВРЕМЯ(1, 1, 1) | КОГДА ВидЦенности В (&ВидыЦенностей_ОплатаПоНДССМР) | ТОГДА ВЫБОР | КОГДА ЕСТЬNULL(СчетФактура.Дата, &Дата) < ДАТАВРЕМЯ(2009, 1, 1) | ТОГДА ДатаОплаты <> ДАТАВРЕМЯ(1, 1, 1) | ИНАЧЕ ИСТИНА | КОНЕЦ | ИНАЧЕ ИСТИНА | КОНЕЦ) КАК НДСПредъявленныйОстаткиИтог | ПО НДСПредъявленныйОстатки.СчетФактура = НДСПредъявленныйОстаткиИтог.СчетФактура | И НДСПредъявленныйОстатки.ВидЦенности = НДСПредъявленныйОстаткиИтог.ВидЦенности | И НДСПредъявленныйОстатки.СтавкаНДС = НДСПредъявленныйОстаткиИтог.СтавкаНДС | И НДСПредъявленныйОстатки.СчетУчетаНДС = НДСПредъявленныйОстаткиИтог.СчетУчетаНДС | И НДСПредъявленныйОстатки.Организация = НДСПредъявленныйОстаткиИтог.Организация | И НДСПредъявленныйОстатки.Поставщик = НДСПредъявленныйОстаткиИтог.Поставщик |ГДЕ | (НДСПредъявленныйОстатки.СуммаБезНДСОстаток > 0 | ИЛИ НДСПредъявленныйОстатки.НДСОстаток > 0) | |СГРУППИРОВАТЬ ПО | НДСПредъявленныйОстатки.Организация, | НДСПредъявленныйОстатки.СчетФактура, | НДСПредъявленныйОстатки.ВидЦенности, | НДСПредъявленныйОстатки.СтавкаНДС, | НДСПредъявленныйОстатки.СчетУчетаНДС, | НДСПредъявленныйОстатки.Поставщик, | ЕСТЬNULL(НДСПредъявленныйОстатки.СчетФактура.Дата, &Дата), | НДСПредъявленныйОстатки.ДатаОплаты, | НДСпоОСиНМАОстатки.СуммаБезНДСОстаток, | НДСПредъявленныйРеализация0Остатки.СуммаБезНДСОстаток, | НДСПредъявленныйОстатки.СуммаБезНДСОстаток, | НДСПредъявленныйРеализация0Остатки.НДСОстаток, | НДСпоОСиНМАОстатки.НДСОстаток, | НДСПредъявленныйОстатки.НДСОстаток, | НДСПредъявленныйОстатки.ИсправленныйСчетФактура | |ИМЕЮЩИЕ | СУММА(ЕСТЬNULL(НДСПредъявленныйОстаткиИтог.СуммаБезНДСОстаток, 0) - ЕСТЬNULL(НДСпоОСиНМАОстатки.СуммаБезНДСОстаток, 0) - ЕСТЬNULL(НДСПредъявленныйРеализация0Остатки.СуммаБезНДСОстаток, 0) + ЕСТЬNULL(НДСПредъявленныйОстаткиИтог.НДСОстаток, 0) - ЕСТЬNULL(НДСПредъявленныйРеализация0Остатки.НДСОстаток, 0) - ЕСТЬNULL(НДСпоОСиНМАОстатки.НДСОстаток, 0)) > 0 | |УПОРЯДОЧИТЬ ПО | СчетФактураДата"; //| И НДСПредъявленныйОстатки.СчетФактура В(&Массив_СчФ) Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Дата", КонецДня(Дата)); Запрос.УстановитьПараметр("ДатаГраница", новый Граница(КонецДня(Дата),ВидГраницы.Включая)); Запрос.УстановитьПараметр("СчетКВ", ПланыСчетов.Хозрасчетный.НДСпоЗатратамНаКВ); Запрос.УстановитьПараметр("Массив_СчФ", Массив_СчФ); // Исключаемые из анализа виды ценностей ИсключаемыеВидыЦенностей = Новый СписокЗначений; ИсключаемыеВидыЦенностей.Добавить(Перечисления.ВидыЦенностей.АвансыПолученные); ИсключаемыеВидыЦенностей.Добавить(Перечисления.ВидыЦенностей.АвансыПолученные0); ИсключаемыеВидыЦенностей.Добавить(Перечисления.ВидыЦенностей.АвансыВыданные); // Виды ценностей, по которым требуется оплата ВидыЦенностейОплата = Новый СписокЗначений; ВидыЦенностейОплата.Добавить(Перечисления.ВидыЦенностей.НалоговыйАгентАренда); ВидыЦенностейОплата.Добавить(Перечисления.ВидыЦенностей.НалоговыйАгентРеализацияИмущества); ВидыЦенностейОплата.Добавить(Перечисления.ВидыЦенностей.НалоговыйАгентИностранцы); // Виды ценностей с особым порядком распределения оплат - по НДС выплаченному в бюджет ВидыЦенностей_ОплатаПоНДССМР = Новый СписокЗначений; ВидыЦенностей_ОплатаПоНДССМР.Добавить(Перечисления.ВидыЦенностей.СМРСобственнымиСилами); Запрос.УстановитьПараметр("ИсключаемыеВидыЦенностей", ИсключаемыеВидыЦенностей); Запрос.УстановитьПараметр("ВидыЦенностейОплата", ВидыЦенностейОплата); Запрос.УстановитьПараметр("ВидыЦенностей_ОплатаПоНДССМР", ВидыЦенностей_ОплатаПоНДССМР); Таблица_НДСкВычету = Запрос.Выполнить().Выгрузить(); //СписокСчетовФактур = ОбщегоНазначенияБПВызовСервера.УдалитьПовторяющиесяЭлементыМассива(Таблица_НДСкВычету.ВыгрузитьКолонку("СчетФактура"), Истина); //ТаблицаСФ = УчетНДСПереопределяемый.ОпределитьНаличиеСчетовФактурПолученных(,КонецДня(Дата),Организация, СписокСчетовФактур,Ложь, Истина, Истина, КонецДня(Дата)); СписокСчетовФактур = ОбщегоНазначения.УдалитьПовторяющиесяЭлементыМассива(Таблица_НДСкВычету.ВыгрузитьКолонку("СчетФактура"), Истина); ТаблицаСФ = УчетНДС.ОпределитьНаличиеСчетовФактурПолученных(,КонецДня(Дата),Организация, СписокСчетовФактур,Ложь, Истина, Истина, КонецДня(Дата)); ОтфактурованныеПоступления = ОбщегоНазначения.УдалитьПовторяющиесяЭлементыМассива(ТаблицаСФ.ВыгрузитьКолонку("Документ"),Истина); Возврат ОтфактурованныеПоступления; Конецфункции |
|||
7
Вебер
23.07.15
✎
05:07
|
запросы норм отрабатывают и массив нужный мне я получаю
|
|||
8
Вебер
23.07.15
✎
05:09
|
попробовал с Функция ПолучитьТЗМассив (ТЗ) Экспорт
на Функция ПолучитьТЗМассив () Экспорт выдает Несоответствие типов (параметр номер '1') |
|||
9
Вебер
23.07.15
✎
05:11
|
(4) спасибо, заработало
|
|||
10
Andrewww123
23.07.15
✎
05:12
|
(8) Значит вызываешь функцию с неправильным параметром
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |