Є запит (частина):
// ===============================
Функция ПолучитьНомЛиц(Контрагент)
Попытка
лиц = Контрагент.ТипЛицензии;
Если Лиц = Перечисление.ТипыЛицензий.Первый Тогда
Возврат 1;
ИначеЕсли Лиц = Перечисление.ТипыЛицензий.Второй Тогда
Возврат 2;
ИначеЕсли Лиц = Перечисление.ТипыЛицензий.Третий Тогда
Возврат 3;
ИначеЕсли Лиц = Перечисление.ТипыЛицензий.Четвертый Тогда
Возврат 4;
КонецЕсли;
Исключение
Возврат 0;
КонецПопытки;
КонецФункции
функция ПроверкаДокаПеремещение(Док)
попытка
если Док.Вид() = "ПеремещениеТМЦ" тогда
если Док.КодОперации = перечисление.КодыОпераций.ВозвратИзРозницы тогда
возврат 0;
иначе
Возврат 1;
конецесли;
иначе
Возврат 1;
конецесли;
Исключение
Возврат 0;
КонецПопытки;
КонецФункции
ЗапросТам = v7.EvalExpr("CreateObject(""Запрос"")");
ТекстЗапросаТам ="
|ПЕРИОД С '"+ВыбНачПериода+"' По '"+ВыбНачПериода+"';
|ОбрабатыватьДокументы Проведенные;
...
|Функция ВозвратИзРозницы = Сумма(Количество) Когда((ПолучитьНомЛиц(Контрагент)<>3)И(ПроверкаДокаПеремещение(ТекущийДокумент)=0));
...
Андрію, а чому ви їх туди(в конфігурацію іншої бази) не кинете?
Це не етично? )
Ще є ідея зробити їх експортними в глобальному модулі тієї бази, до якої підключаюсь.
"Не свариться", але і не працюють ці функції в запиті...
mister-x @ Сегодня, 11:14 , Функции в запросах не работают через ОЛЕ.
Как вариант, в подключаемой базе сделать глобальную функцию с нужными отборами. И уже вызывать именно эту глобальную функцию.
Acid @ Вчера, 10:36 ,
на жаль, ця функція верне у базу, з якої підключаюся, тільки простий тип даних, а мені необхідно хоча б ТЗ - результат запиту. Тут потрібно якось переробити запит без вкладених функцій.
Хм, хіба перебрати результат функції в базі-ОЛЕ і передати в цю базу примітивні типи даних. Попробую...
А если использовать "ЗначениеВСтроку"?
Строка Через ОЛЕ передается... вот только максимально допустимую длину не помню.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua