Передать номер документа в функцию общего модуля
Добрый день! Помогите передать номер документа в функцию общего модуля!
Есть общий модуль "Производство" и в нём функция ПолучитьБазисныйЖир.
Есть документ "Требование накладная" из формы документа которой получаю базисный жир:
Мне надо в функции "ПолучитьБазисныйЖир" в общем модуле получить дату документа "ТребованиеНакладная", чтобы сделать вот такое условие:
Можно такое сделать?
Есть общий модуль "Производство" и в нём функция ПолучитьБазисныйЖир.
Функция ПолучитьБазисныйЖир(Номенклатура) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| БазисныеПоказатели.Жирность,
| БазисныеПоказатели.Жирность2
|ИЗ
| РегистрСведений.БазисныеПоказатели КАК БазисныеПоказатели
|ГДЕ
| БазисныеПоказатели.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() цикл
Возврат Выборка.Жирность;
КонецЦикла;
Возврат 0; //это если запрос пустой
КонецФункции
ПоказатьЕсть документ "Требование накладная" из формы документа которой получаю базисный жир:
Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура);
Мне надо в функции "ПолучитьБазисныйЖир" в общем модуле получить дату документа "ТребованиеНакладная", чтобы сделать вот такое условие:
Пока Выборка.Следующий() цикл
Если ДатаДокумента > "01.01.2019" Тогда
Возврат Выборка.Жирность2;
Иначе
Возврат Выборка.Жирность;
КонецЕсли;
КонецЦикла;
Можно такое сделать?
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
А зачем передавать туда номер?
Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура, Объект.Дата);
Функция ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| БазисныеПоказатели.Жирность,
| БазисныеПоказатели.Жирность2
|ИЗ
| РегистрСведений.БазисныеПоказатели КАК БазисныеПоказатели
|ГДЕ
| БазисныеПоказатели.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() цикл
Если ДатаДокумента > Дата(2019, 1, 1) Тогда
Возврат Выборка.Жирность2;
Иначе
Возврат Выборка.Жирность;
КонецЕсли;
КонецЦикла;
Возврат 0; //это если запрос пустой
КонецФункции
Показать
(3) так не работает... ошибка
{ОбщийМодуль.тфПроизводство.Модуль(2,82)}: Ожидается символ ')'
Функция ПолучитьБазисныйЖир(Номенклатура,СерияНоменклатуры = неопределено, Объект<<?>>.Дата) Экспорт (Проверка: Толстый клиент (обычное приложение))
{ОбщийМодуль.тфПроизводство.Модуль(20,30)}: Ошибка в выражении
Выборка = Запрос.Выполнить(<<?>>).Выбрать(); (Проверка: Толстый клиент (обычное приложение))
Функция ПолучитьБазисныйЖир(Номенклатура,СерияНоменклатуры = неопределено, Объект<<?>>.Дата) Экспорт (Проверка: Толстый клиент (обычное приложение))
{ОбщийМодуль.тфПроизводство.Модуль(20,30)}: Ошибка в выражении
Выборка = Запрос.Выполнить(<<?>>).Выбрать(); (Проверка: Толстый клиент (обычное приложение))
Добавить в общую функцию еще один параметр
При вызове данной процедуры передавайте туда дату документа
ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента)
При вызове данной процедуры передавайте туда дату документа
ДатаДокумента = ТребованиеНакладная.Дата;
Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента)
А в общем модуле нельзя переписать запрос в котором получить виртуальную таблицу с требованиями накладными и потом уже связать с таблицой базисные жиры? Ведь в регистр сведений какой-то регистратор пишет или это регистр независимый?
Общий модуль:
Вызов функции из формы документа:
С датами разобрался... Далее заполнил в регистре сведений БазисныеПоказатели колонки Жирность и Жирность2 у номенклатур. Если дата документа меньше 01.01.2019, тогда условие "Возврат Выборка.Жирность" выполняется и заполняется в документе... а если дата документа больше 01.01.2019, то условие выполняется, но Жирность не заполняется... она равна 0. Что не так?
Функция ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| БазисныеПоказатели.Жирность КАК Жирность,
| БазисныеПоказатели.Жирность2 КАК Жирность2
|ИЗ
| РегистрСведений.БазисныеПоказатели КАК БазисныеПоказатели
|ГДЕ
| БазисныеПоказатели.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() цикл
Если ДатаДокумента > Дата('20190101000000') Тогда
Возврат Выборка.Жирность2;
Иначе
Возврат Выборка.Жирность;
КонецЕсли;
КонецЦикла;
Возврат 0; //это если запрос пустой
КонецФункции
ПоказатьВызов функции из формы документа:
ДатаДокумента = Дата;
Жирность = тфПроизводство.ПолучитьБазисныйЖир(Продукция, ДатаДокумента);
С датами разобрался... Далее заполнил в регистре сведений БазисныеПоказатели колонки Жирность и Жирность2 у номенклатур. Если дата документа меньше 01.01.2019, тогда условие "Возврат Выборка.Жирность" выполняется и заполняется в документе... а если дата документа больше 01.01.2019, то условие выполняется, но Жирность не заполняется... она равна 0. Что не так?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот