Передача пустого параметра

Возникла необходимость получить остатки по регистру накопления из Террасофта.
В 1С подобную операцию я бы сделал таким образом :
РегистрыНакопления.ВзаиморасчетыСКонтрагентами.Остатки(ТекущаяДата(), Фильтр);
либо вообще не передавал бы первый параметр
Как это реализовать в террасофте - не понимаю.
При попытке вызова Obj1C.ТекущаяДата() получаю вполне логичное "Объект не поддерживает это свойство или метод"
При попытке оставить пустое место вместо параметра - не менее логичное "Синтаксическая ошибка"
При передаче null или '20090807' - "Несоответствие типов"
Подскажите как быть, пожалуйста.

Нравится

9 комментариев

Покажите часть кода как вы вызываете этот регистр

Здравствуйте, Антон.
Приведите, пожалуйста, текст Вашей функции. И, если честно, не очень понятно, что значит "остатки по регистру накопления".

Добрый день.
Вот так это выглядит в 1С :
Фильтр = Новый Структура();
Фильтр.Вставить("Контрагент",Справочники.Контрагенты.НайтиПоКоду("000002245"));
А = РегистрыНакопления.ВзаиморасчетыСКонтрагентами.Остатки ('20090807', Фильтр).Итог("СуммаВзаиморасчетов");
А вот так я это делаю в террасофт
var C1Account = Obj_1C.Справочники.Контрагенты.НайтиПоКоду("000002245");;
var C1Register = Obj_1C.РегистрыНакопления.ВзаиморасчетыСКонтрагентами;
var C1Filter = Obj_1C.NewObject("Структура");
C1Filter.Вставить("Контрагент",C1Account);
C1temp = C1Register.Остатки(null,C1Filter);
sum = C1temp.Итог("СуммаВзаиморасчетов");

Здравствуйте, Антон.
На сколько я понимаю, в 1С Вы делаете

.Остатки ('20090807', Фильтр).

а в JScript'е

.Остатки(null,C1Filter);

и в результате ругается на несоответствие типов?

Можете попробовать вот так:

var d = new Date();
C1temp = C1Register.Остатки(d ,C1Filter);

Это был лишь один из примеров. В JScripte можно написать

.Остатки('20090807',C1Filter);

и все равно ругается на несоответствие
спасибо за совет, но так тоже ругается на несоответствие типов :)

А вы уверены что ругается именно на дату?
У меня скрипты в Terrasoft работают с 1С, и дата вида '20090807' передается нормально. Скорее всего проблема в другом.

И еще, на всякий случай.
К 1С можно обращаться двумя способами: Как к серверу OLE

new ActiveXObject("V81.Application")

и как к COM объекту

 new ActiveXObject("V81.COMConnector")

Каждый из способов имеет свои плюсы и минусы.

Добрый день, коллеги!

Извините за вопрос в столь старой ветке, но, все же интересно - удалось ли решить проблему? В настоящий момент бьюсь над аналогичной задачей - получить из 1С остатки товаров на текущую дату.

За пример рабочего кода буде премного благодарен!

Здравствуйте!

К сожалению готового примера кода у нас нету. Пробовали ли Вы способ указанный в этой теме? Какие именно ошибки у Вас возникают? Каким способом Вы обращаетесь к 1С? Приведите, пожалуйста, также код, с помощью которого Вы пытаетесь получить остатки товаров для его анализа.

Спасибо.

Показать все комментарии