Добрый день! Помогите передать номер документа в функцию общего модуля!

Есть общий модуль "Производство" и в нём функция ПолучитьБазисныйЖир.

```1c
    Функция ПолучитьБазисныйЖир(Номенклатура) Экспорт

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | БазисныеПоказатели.Жирность,
    | БазисныеПоказатели.Жирность2
    |ИЗ
    | РегистрСведений.БазисныеПоказатели КАК БазисныеПоказатели
    |ГДЕ
    | БазисныеПоказатели.Номенклатура = &Номенклатура";
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);

    Выборка = Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() цикл
    Возврат Выборка.Жирность;
    КонецЦикла;

    Возврат 0; //это если запрос пустой

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

Есть документ "Требование накладная" из формы документа которой получаю базисный жир:

```1c
    Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура);
```

Мне надо в функции "ПолучитьБазисныйЖир" в общем модуле получить дату документа "ТребованиеНакладная", чтобы сделать вот такое условие:

```1c
    Пока Выборка.Следующий() цикл
    Если ДатаДокумента > "01.01.2019" Тогда
    Возврат Выборка.Жирность2;
    Иначе
    Возврат Выборка.Жирность;
    КонецЕсли;
    КонецЦикла;
```

Можно такое сделать?
---
Добавить в общую функцию еще один параметр

```1c
    ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента)
```

При вызове данной процедуры передавайте туда дату документа

```1c
    ДатаДокумента = ТребованиеНакладная.Дата;
    Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента)
```
---
Да можно в Функция ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента) Экспорт

Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура, Объект.Дата);
---
А зачем передавать туда номер?

```1c
    Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура, Объект.Дата);
    Функция ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | БазисныеПоказатели.Жирность,
    | БазисныеПоказатели.Жирность2
    |ИЗ
    | РегистрСведений.БазисныеПоказатели КАК БазисныеПоказатели
    |ГДЕ
    | БазисныеПоказатели.Номенклатура = &Номенклатура";
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);

    Выборка = Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() цикл
    Если ДатаДокумента > Дата(2019, 1, 1) Тогда
    Возврат Выборка.Жирность2;
    Иначе
    Возврат Выборка.Жирность;
    КонецЕсли;
    КонецЦикла;

    Возврат 0; //это если запрос пустой

    КонецФункции
```
---
так не работает... ошибка
{ОбщийМодуль.тфПроизводство.Модуль(2,82)}: Ожидается символ ')'
Функция ПолучитьБазисныйЖир(Номенклатура,СерияНоменклатуры = неопределено, Объект<<?>>.Дата) Экспорт (Проверка: Толстый клиент (обычное приложение))
{ОбщийМодуль.тфПроизводство.Модуль(20,30)}: Ошибка в выражении
  Выборка = Запрос.Выполнить(<<?>>).Выбрать(); (Проверка: Толстый клиент (обычное приложение))
---
Добавить в общую функцию еще один параметр

```1c
    ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента)
```

При вызове данной процедуры передавайте туда дату документа

```1c
    ДатаДокумента = ТребованиеНакладная.Дата;
    Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента)
```
---
А в общем модуле нельзя переписать запрос в котором получить виртуальную таблицу с требованиями накладными и потом уже связать с таблицой базисные жиры? Ведь в регистр сведений какой-то регистратор пишет или это регистр независимый?
---
{ОбщийМодуль.Производство.Модуль(51)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
   ДатаДокумента > Дата(2019, 1, 1)
Вот такая ошибка.
---
Общий модуль:

```1c
    Функция ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента) Экспорт

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | БазисныеПоказатели.Жирность КАК Жирность,
    | БазисныеПоказатели.Жирность2 КАК Жирность2
    |ИЗ
    | РегистрСведений.БазисныеПоказатели КАК БазисныеПоказатели
    |ГДЕ
    | БазисныеПоказатели.Номенклатура = &Номенклатура";
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);

    Выборка = Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() цикл

    Если ДатаДокумента > Дата('20190101000000') Тогда
    Возврат Выборка.Жирность2;
    Иначе
    Возврат Выборка.Жирность;
    КонецЕсли;
    КонецЦикла;

    Возврат 0; //это если запрос пустой

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

Вызов функции из формы документа:

```1c
    ДатаДокумента = Дата;
    Жирность = тфПроизводство.ПолучитьБазисныйЖир(Продукция, ДатаДокумента);
```

С датами разобрался... Далее заполнил в регистре сведений БазисныеПоказатели колонки Жирность и Жирность2 у номенклатур. Если дата документа меньше 01.01.2019, тогда условие "Возврат Выборка.Жирность" выполняется и заполняется в документе... а если дата документа больше 01.01.2019, то условие выполняется, но Жирность не заполняется... она равна 0. Что не так?
---
Всё работает, спасибо всем! Регистр сведений "БазисныеПоказатели" колонка "Жирность2" по тестируемой номенклатуре не была заполнена. Мой косяк. Тему можно закрывать. Ещё раз всем спасибо!