8.х Метод получить в тонком клиенте

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем prog_22, 8 июл 2013.

  1. TopicStarter Overlay
    prog_22
    Offline

    prog_22 Опытный в 1С

    Регистрация:
    31 окт 2012
    Сообщения:
    171
    Симпатии:
    0
    Баллы:
    26
    Добрый день!

    Какой аналог метода "Получить" в тонком клиенте? Он ведь работает только в толстом.

    Вот например на толстом:

    Код:
    Функция ПолучитьСотрудника(Должник, Момент) Экспорт
    Перем Запрос, Сотрудник;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ПривязкаСрезПоследних.Сотрудник
    |ИЗ
    | РегистрСведений.ПривязкаСотрудник.СрезПоследних(&Момент, Должник = &Должник) КАК ПривязкаСрезПоследних";
    
    Запрос.УстановитьПараметр("Должник", Должник);
    Запрос.УстановитьПараметр("Момент", Момент);
    
    тз = Запрос.Выполнить().Выгрузить();
    
    Если тз.Количество() > 0 Тогда
    Сотрудник = тз[тз.Количество()-1].Сотрудник;
    Иначе
    Сотрудник = Справочники.Сотрудники.ПустаяСсылка();
    КонецЕсли;
    
    Возврат Сотрудник;
    КонецФункции
    

    как сделать, чтоб на тонком работал? выдет ошибку "Значение не является значением объектного типа"
  2. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.358
    Симпатии:
    5
    Баллы:
    29
    Формируй запрос на сервере.


    Запрос

    Доступность:
    Сервер, толстый клиент, внешнее соединение.
  3. TopicStarter Overlay
    prog_22
    Offline

    prog_22 Опытный в 1С

    Регистрация:
    31 окт 2012
    Сообщения:
    171
    Симпатии:
    0
    Баллы:
    26
    Подробнее проблема вот в чем: в общем модуле есть функция, которая вызывается при проведении документа

    Я поставил перед ней &НаСервере.

    В документе так же:

    Код:
    &НаСервере
    Процедура ОбработкаПроведения(Отказ, Режим)
    Перем Запрос;
    //Отказ = ДоступностьИзмененийПоДатеЗапрета(Дата);
    // Получить данные для расчета
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | НачальныеДанныеДоговораСрезПоследних.ПроцентВознаграждения,
    | ПлатежиДолжники.НомерСтроки
    |ИЗ
    | Документ.Платежи.Должники КАК ПлатежиДолжники
    |  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НачальныеДанныеДоговора.СрезПоследних КАК НачальныеДанныеДоговораСрезПоследних
    |  ПО ПлатежиДолжники.Договор = НачальныеДанныеДоговораСрезПоследних.Договор
    |ГДЕ
    | ПлатежиДолжники.Ссылка = &ТекущийДокумент";
    
    Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);
    
    тзПроцентыВознаграждения = Запрос.Выполнить().Выгрузить();
    
    Для Каждого ТекСтрокаДолжники Из Должники Цикл
    Если ТекСтрокаДолжники.ДатаПлатежа = '00010101' Тогда
    ДатаПлатежа = Дата;
    Иначе
    ДатаПлатежа = ТекСтрокаДолжники.ДатаПлатежа;
    КонецЕсли;
    Ответственный  = Привязка.ПолучитьОтветственного(ТекСтрокаДолжники.Должник, НачалоДня(ДатаПлатежа));
    Сотрудник   = Привязка.ПолучитьСотрудникаАктивного(ТекСтрокаДолжники.Должник, НачалоДня(ДатаПлатежа));
    
    НайденнаяСтрока = тзПроцентыВознаграждения.Найти(ТекСтрокаДолжники.НомерСтроки, "НомерСтроки");
    Если НайденнаяСтрока = Неопределено Тогда
    Сообщить("Процент вознаграждения = 0. Реестром не загружены данные по договору: " + Строка(ТекСтрокаДолжники.Договор), СтатусСообщения.Внимание);
    ПроцентВознаграждения = 0;
    Иначе
    ПроцентВознаграждения = НайденнаяСтрока.ПроцентВознаграждения;
    КонецЕсли;
    
    // регистр БалансДолжников Приход
    Движение = Движения.БалансДолжников.Добавить();
    Движение.ВидДвижения  = ВидДвиженияНакопления.Расход;
    Движение.Период   = ДатаПлатежа;
    Движение.Должник   = ТекСтрокаДолжники.Должник;
    Движение.Договор   = ТекСтрокаДолжники.Договор;
    Движение.Сумма    = ТекСтрокаДолжники.Сумма;
    Движение.Описание   = "Поступил платёж";
    
    // регистр Платежи
    Движение = Движения.Платежи.Добавить();
    Движение.Период	 = ДатаПлатежа;
    Движение.Ответственный    = Сотрудник;
    Движение.Должник	 = ТекСтрокаДолжники.Должник;
    Движение.Договор	 = ТекСтрокаДолжники.Договор;
    Движение.Сумма	  = ТекСтрокаДолжники.Сумма;
    Движение.Количество    = 1;
    Движение.Вознаграждение   = ТекСтрокаДолжники.Сумма * ПроцентВознаграждения / 100;
    Движение.ПроцентВознаграждения  = ПроцентВознаграждения; 
    Движение.Сотрудник	 = Сотрудник;
    
    Движение.Реестр	 = ПолучитьРеестрДолжника(ДатаПлатежа,ТекСтрокаДолжники.Должник,ТекСтрокаДолжники.Договор);
    
    КонецЦикла;
    КонецПроцедуры
    
    все равно выдает ошибку на
    Код:
    Ответственный  = Привязка.ПолучитьОтветственного(ТекСтрокаДолжники.Должник, НачалоДня(ДатаПлатежа));
    то есть на вызываемую функцию из общего модуля "привязка"
  4. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а в свойствах общего модуля какая галочка выбрана ?
  5. TopicStarter Overlay
    prog_22
    Offline

    prog_22 Опытный в 1С

    Регистрация:
    31 окт 2012
    Сообщения:
    171
    Симпатии:
    0
    Баллы:
    26
    стояла галочка управляемое приложение, но не стояла сервер. поставил- заработало. спасибо!! всем плюсы)))
Похожие темы
  1. OXED
    Ответов:
    3
    Просмотров:
    2.649
Загрузка...

Поделиться этой страницей