Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Связь 7.7 - 7.7 по OLE, передача функции в запросе
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
mister-x
Є запит (частина):

// ===============================
Функция ПолучитьНомЛиц(Контрагент)
    Попытка
        лиц = Контрагент.ТипЛицензии;
        Если Лиц = Перечисление.ТипыЛицензий.Первый Тогда
            Возврат 1;
        ИначеЕсли  Лиц = Перечисление.ТипыЛицензий.Второй Тогда
            Возврат 2;
        ИначеЕсли  Лиц = Перечисление.ТипыЛицензий.Третий Тогда
            Возврат 3;
        ИначеЕсли  Лиц = Перечисление.ТипыЛицензий.Четвертый Тогда
            Возврат 4;
        КонецЕсли;                      
    Исключение
        Возврат 0;
    КонецПопытки;
КонецФункции



функция ПроверкаДокаПеремещение(Док)
    
    попытка
        если Док.Вид() = "ПеремещениеТМЦ" тогда
            если Док.КодОперации = перечисление.КодыОпераций.ВозвратИзРозницы тогда
                возврат 0;
            иначе
                Возврат 1;    
            конецесли;    
        иначе
            Возврат 1;    
        конецесли;    
       Исключение
        Возврат 0;
    КонецПопытки;

КонецФункции


ЗапросТам = v7.EvalExpr("CreateObject(""Запрос"")");
        ТекстЗапросаТам ="         
        |ПЕРИОД С '"+ВыбНачПериода+"' По '"+ВыбНачПериода+"';
        |ОбрабатыватьДокументы Проведенные;
                ...
                |Функция ВозвратИзРозницы = Сумма(Количество) Когда((ПолучитьНомЛиц(Контрагент)<>3)И(ПроверкаДокаПеремещение(ТекущийДокумент)=0));
                ...


Чи є можливість передати ці функції (і як) для викон. запиту в базу, яка підключена по OLE, а то при виконані запиту вибиває помилку, що ці функції не знайдені?
Домовик
Андрію, а чому ви їх туди(в конфігурацію іншої бази) не кинете?
Це не етично? )
mister-x
Ще є ідея зробити їх експортними в глобальному модулі тієї бази, до якої підключаюсь.

"Не свариться", але і не працюють ці функції в запиті...
Acid
mister-x @ Сегодня, 11:14 необходимо зарегистрироваться для просмотра ссылки, Функции в запросах не работают через ОЛЕ.
Как вариант, в подключаемой базе сделать глобальную функцию с нужными отборами. И уже вызывать именно эту глобальную функцию.
mister-x
Acid @ Вчера, 10:36 необходимо зарегистрироваться для просмотра ссылки,
на жаль, ця функція верне у базу, з якої підключаюся, тільки простий тип даних, а мені необхідно хоча б ТЗ - результат запиту. Тут потрібно якось переробити запит без вкладених функцій.
mister-x
Хм, хіба перебрати результат функції в базі-ОЛЕ і передати в цю базу примітивні типи даних. Попробую...
Мичман Харитонов
А если использовать "ЗначениеВСтроку"?
Строка Через ОЛЕ передается... вот только максимально допустимую длину не помню.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.