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

1. Elected 21 17.01.19 10:45 Сейчас в теме
Добрый день! Помогите передать номер документа в функцию общего модуля!

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


Есть документ "Требование накладная" из формы документа которой получаю базисный жир:
Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура);


Мне надо в функции "ПолучитьБазисныйЖир" в общем модуле получить дату документа "ТребованиеНакладная", чтобы сделать вот такое условие:
		Пока Выборка.Следующий() цикл
                                Если ДатаДокумента > "01.01.2019" Тогда
         			         Возврат Выборка.Жирность2;	
                                Иначе
			                 Возврат Выборка.Жирность;	
                                КонецЕсли;
		КонецЦикла;

Можно такое сделать?
По теме из базы знаний
Найденные решения
4. SedovSU@mail.ru 297 17.01.19 10:54 Сейчас в теме
Добавить в общую функцию еще один параметр

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


При вызове данной процедуры передавайте туда дату документа
ДатаДокумента = ТребованиеНакладная.Дата;
Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. d.batovskiy 17.01.19 10:52 Сейчас в теме
Да можно в Функция ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента) Экспорт

Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура, Объект.Дата);
3. Неопределено 90 17.01.19 10:52 Сейчас в теме
А зачем передавать туда номер?
Жирность = Производство.ПолучитьБазисныйЖир(Номенклатура, Объект.Дата);
Функция ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента) Экспорт
        Запрос = Новый Запрос;
        Запрос.Текст = "ВЫБРАТЬ
        |    БазисныеПоказатели.Жирность,
        |    БазисныеПоказатели.Жирность2
        |ИЗ
        |    РегистрСведений.БазисныеПоказатели КАК БазисныеПоказатели
        |ГДЕ
        |    БазисныеПоказатели.Номенклатура = &Номенклатура";
        Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
        
        Выборка = Запрос.Выполнить().Выбрать();
        
        Пока Выборка.Следующий() цикл
                Если ДатаДокумента > Дата(2019, 1, 1) Тогда
                        Возврат Выборка.Жирность2;    
                Иначе
                        Возврат Выборка.Жирность;    
                КонецЕсли;    
        КонецЦикла;
        
        Возврат 0; //это если запрос пустой            
    
КонецФункции
Показать
5. Elected 21 17.01.19 11:02 Сейчас в теме
(3) так не работает... ошибка
{ОбщийМодуль.тфПроизводство.Модуль(2,82)}: Ожидается символ ')'
Функция ПолучитьБазисныйЖир(Номенклатура,СерияНоменклатуры = неопределено, Объект<<?>>.Дата) Экспорт (Проверка: Толстый клиент (обычное приложение))
{ОбщийМодуль.тфПроизводство.Модуль(20,30)}: Ошибка в выражении
Выборка = Запрос.Выполнить(<<?>>).Выбрать(); (Проверка: Толстый клиент (обычное приложение))
4. SedovSU@mail.ru 297 17.01.19 10:54 Сейчас в теме
Добавить в общую функцию еще один параметр

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


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

Вот такая ошибка.
8. Elected 21 17.01.19 15:38 Сейчас в теме
Общий модуль:
Функция ПолучитьБазисныйЖир(Номенклатура, ДатаДокумента) Экспорт
	
		Запрос = Новый Запрос;
		Запрос.Текст = "ВЫБРАТЬ
		|	БазисныеПоказатели.Жирность КАК Жирность,
		|	БазисныеПоказатели.Жирность2 КАК Жирность2
		|ИЗ
		|	РегистрСведений.БазисныеПоказатели КАК БазисныеПоказатели
		|ГДЕ
		|	БазисныеПоказатели.Номенклатура = &Номенклатура";
		Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
		
		Выборка = Запрос.Выполнить().Выбрать();
		
		Пока Выборка.Следующий() цикл
			
			Если ДатаДокумента > Дата('20190101000000') Тогда
				Возврат Выборка.Жирность2;    
			Иначе
				Возврат Выборка.Жирность;    
			КонецЕсли;    	
		КонецЦикла;
		
		Возврат 0; //это если запрос пустой			
		
КонецФункции
Показать

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

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот