Как подтянуть остатки из регистра в документ?

1. user790607 01.04.19 12:35 Сейчас в теме
Доброго времени суток дамы и господа!

Есть документОснование, в котором есть позиции номенклатуры, он пишет сведения об остатках в регистр накопления(наименование, номерПартии, колличество)
Есть документ ОтгрузочнаяНакладная, создаётся на основании ДокументаОснования, суть вопроса в том, чтобы выводить актуальные остатки при создании на основании.
Скрины документов и состава регистра прилагаются.

С запросами тяжковато, сам понимаю, пока только такое выдумал:
&НаСервере
	Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
		Запрос = Новый Запрос;   
		Запрос.Текст =
"ВЫБРАТЬ
|	ОстаткиДокументаОснованияОстатки.ДокументОснование КАК ДокументОснование,
|	ОстаткиДокументаОснованияОстатки.НомерПартии КАК НомерПартии,
|	ОстаткиДокументаОснованияОстатки.Номенклатура КАК Номенклатура,
|	ОстаткиДокументаОснованияОстатки.КоличествоОстаток КАК КоличествоОстаток,
|	ОтгрузочнаяНакладная.Номенклатура.(
|		Наименование КАК Наименование,
|		НомерПартии КАК НомерПартии
|	) КАК Номенклатура1
|ИЗ
|	РегистрНакопления.ОстаткиДокументаОснования.Остатки КАК ОстаткиДокументаОснованияОстатки
|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтгрузочнаяНакладная КАК ОтгрузочнаяНакладная
|		ПО ОстаткиДокументаОснованияОстатки.Номенклатура = ОтгрузочнаяНакладная.Номенклатура.Наименование
|			И ОстаткиДокументаОснованияОстатки.НомерПартии = ОтгрузочнаяНакладная.Номенклатура.НомерПартии";
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаЗапроса = РезультатЗапроса.Выбрать();
Показать


Подскажите как гармотнее это обработать в запросе...
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
20. SedovSU@mail.ru 297 09.04.19 11:10 Сейчас в теме
(19) Извиняюсь нужно подправить на ВыборкаЗапроса

&НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    СтрокаТЧ = Элементы.Номенклатура.ТекущиеДанные;
    СтрокаТЧ.Остаток = ПолучитьОстаткиИзРегистра(СтрокаТЧ.Наименование, СтрокаТЧ.НомерПартии, Объект.ДокументОснование);
    КонецПроцедуры


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


У вас в функции нету возврата значения, поэтому она и не заполняет ни чего
user790607; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Boneman 298 01.04.19 12:45 Сейчас в теме
1. у таблицы остатков нужно период задать, там есть в параметрах таблицы, дату среза - и передавать в запрос, текущую дату.
2. В соединении таблиц надо условие ставить на поля одинаковых типов. Т.е. номенклатуру (ссылку) надо сравнивать с номенклатурой (ссылкой), а не с наименованием...т.к. это уже будет другой тип,(строка)

а вообще структуру регистра бы посмотреть...там что, у вас "документОснование" это реквизит регистра ?
3. YannikAlx 43 01.04.19 12:47 Сейчас в теме
Остатки совершенно бессмысленное понятие без привязки к конкретному моменту времени...
У вас нигде не фигурирует время
5. kaliuzhnyi 135 01.04.19 14:14 Сейчас в теме
(3) А зачем ему время? Может ему нужно на момент создания документа, ну во всяком случае я так понял из описания...
7. YannikAlx 43 01.04.19 14:23 Сейчас в теме
(5) Потому что осатки без момента на который вы их хотите увидеть не существуют.
Даже когда вы не указываете дату при обращении к виртуальной таблице остатков, подразумевается , что вы запрашиваете на ТЕКУЩИЙ момент времени.
Но понимать то программист ДОЛЖЕН , что остатков без момента времени не бывает, то есть остатки на вчера или на 01.01.2000 00:00:00 или на 31.03.2019 23:59:59
4. SedovSU@mail.ru 297 01.04.19 13:15 Сейчас в теме
Вам в параметрах таблицы остатков необходимо добавить параметры
РегистрНакопления.ОстаткиДокументаОснования.Остатки(&Период, ДокументОснование = &ДокументОснование) КАК ОстаткиДокументаОснованияОстатки


Далее установить эти параметры
Запрос.УстановитьПараметр("Период", Объект.МоментВремени());
Запрос.УстановитьПараметр("ДокументОснование", Объект.ДокументОснование);
8. user790607 03.04.19 11:21 Сейчас в теме
(4) Сделал так:
 &НаСервере
	Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
		Запрос = Новый Запрос;   
		Запрос.Текст =
"ВЫБРАТЬ
|	ОстаткиДокументаОснованияОстатки.ДокументОснование КАК ДокументОснование,
|	ОстаткиДокументаОснованияОстатки.НомерПартии КАК НомерПартии,
|	ОстаткиДокументаОснованияОстатки.Номенклатура КАК Номенклатура,
|	ОстаткиДокументаОснованияОстатки.КоличествоОстаток КАК КоличествоОстаток,
|	ОтгрузочнаяНакладная.Номенклатура.(
|		Наименование КАК Наименование,
|		НомерПартии КАК НомерПартии
|	) КАК Номенклатура1
|ИЗ
|	РегистрНакопления.ОстаткиДокументаОснования.Остатки(&Период, ДокументОснование = &ДокументОснование) КАК ОстаткиДокументаОснованияОстатки
|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтгрузочнаяНакладная КАК ОтгрузочнаяНакладная
|		ПО ОстаткиДокументаОснованияОстатки.Номенклатура = ОтгрузочнаяНакладная.Номенклатура.Наименование
|			И ОстаткиДокументаОснованияОстатки.НомерПартии = ОтгрузочнаяНакладная.Номенклатура.НомерПартии";
	Запрос.УстановитьПараметр("Период", Объект.Дата);
	Запрос.УстановитьПараметр("ДокументОснование", Объект.ДокументОснование);
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаЗапроса = РезультатЗапроса.Выбрать();
	Пока ВыборкаЗапроса.Следующий() Цикл

КонецЦикла;	
	КонецПроцедуры
Показать

ничего не возвращает...
9. SedovSU@mail.ru 297 03.04.19 12:45 Сейчас в теме
(8) вы берите не ссылку на документ в запросе / не из реквизитов документа а из табличной части

Запрос = Новый Запрос;   
 Запрос.Текст =
"ВЫБРАТЬ
|    ОстаткиДокументаОснованияОстатки.ДокументОснование КАК ДокументОснование,
|    ОстаткиДокументаОснованияОстатки.НомерПартии КАК НомерПартии,
|    ОстаткиДокументаОснованияОстатки.Номенклатура КАК Номенклатура,
|    ОстаткиДокументаОснованияОстатки.КоличествоОстаток КАК КоличествоОстаток,
|    ОтгрузочнаяНакладная.Номенклатура.Наименование КАК Номенклатура1,
|    ОтгрузочнаяНакладная.Номенклатура.НомерПартии КАК НомерПартии1
|ИЗ
|    РегистрНакопления.ОстаткиДокументаОснования.Остатки(&Период, ДокументОснование = &ДокументОснование) КАК ОстаткиДокументаОснованияОстатки
|        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтгрузочнаяНакладная.Номенклатура КАК ОтгрузочнаяНакладная
|        ПО ОстаткиДокументаОснованияОстатки.Номенклатура = ОтгрузочнаяНакладная.Наименование
|            И ОстаткиДокументаОснованияОстатки.НомерПартии = ОтгрузочнаяНакладная.НомерПартии";
    Запрос.УстановитьПараметр("Период", Объект.Дата);
    Запрос.УстановитьПараметр("ДокументОснование", Объект.ДокументОснование);
Показать
10. user790607 04.04.19 06:18 Сейчас в теме
(9) может я не там всё таки помещаю код, такое ощущение что не видит значения ТЧ....

{Документ.ОтгрузочнаяНакладная.Форма.ФормаДокумента.Форма(43)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(6, 26)}: Поле не найдено "ОтгрузочнаяНакладная.Номенклатура.Наименование"
ОтгрузочнаяНакладная.<<?>>Номенклатура.Наименование КАК Номенклатура1,
11. SedovSU@mail.ru 297 04.04.19 06:23 Сейчас в теме
(10) У вас структуру документа ОтгрузочнаяНакладаная какая, в ней есть табличная часть Номенклатура?
12. user790607 04.04.19 06:46 Сейчас в теме
(11) это всё перепроверил, думал может опечатка где...
Прикрепленные файлы:
13. SedovSU@mail.ru 297 04.04.19 06:48 Сейчас в теме
(12) блин нужно вот так написать, это я вам изначально не так написал (не обратил внимания, мы же из табличной части выборку то делаем)
Вот пробуйте - ошибки не будет

|    ОтгрузочнаяНакладная.Наименование КАК Номенклатура1,
|    ОтгрузочнаяНакладная.НомерПартии КАК НомерПартии1
14. user790607 04.04.19 07:09 Сейчас в теме
(13) документ создался без ошибок, но ничего не возвращает...
15. SedovSU@mail.ru 297 04.04.19 07:13 Сейчас в теме
(14) то есть у вас переменная ВыборкаЗапроса - пустая, количество = 0 ????
16. user790607 09.04.19 04:54 Сейчас в теме
(15) в общем немножко переделал и разбил на процедуру и функцию...

&НаСервере
	Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	СтрокаТЧ = Элементы.Номенклатура.ТекущиеДанные;
	СтрокаТЧ.Остаток = ПолучитьОстаткиИзРегистра(СтрокаТЧ.Наименование, СтрокаТЧ.НомерПартии, Объект.ДокументОснование);
	КонецПроцедуры


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

КонецЦикла;	
	
	КонецФункции
Показать


Получил вот что:
{Документ.ОтгрузочнаяНакладная.Форма.ФормаДокумента.Форма(28,92)}: Слишком много фактических параметров (ПолучитьОстаткиИзРегистра)
СтрокаТЧ.Остаток = ПолучитьОстаткиИзРегистра(СтрокаТЧ.Наименование, СтрокаТЧ.НомерПартии, <<?>>Объект.ДокументОснование);
17. user790607 09.04.19 08:57 Сейчас в теме
(15) предидущая была ересь, доработал чутка, но ничего не возвращает почему-то...
Колонка Остаток всё равно не заполняется...

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

КонецЦикла;	
	
	КонецФункции
Показать
18. SedovSU@mail.ru 297 09.04.19 10:45 Сейчас в теме
(17) вы в коде написашите Возврат ВыборкаЗапроса.КоличествоОстаток

Если ВыборкаРезультата.Количество() = 0 Тогда
Возврат 0
Иначе
ВыборкаЗапроса.Следующий()
Возврат ВыборкаЗапроса.КоличествоОстаток
КонецЕсли
user790607; +1 Ответить
19. user790607 09.04.19 11:06 Сейчас в теме
(18)
Если ВыборкаРезультата.Количество() = 0 Тогда
Возврат 0
Иначе
ВыборкаЗапроса.Следующий()
Возврат ВыборкаЗапроса.КоличествоОстаток
КонецЕсли

{Документ.ОтгрузочнаяНакладная.Форма.ФормаДокумента.Форма(46,7)}: Переменная не определена (ВыборкаРезультата)
Если <<?>>ВыборкаРезультата.Количество() = 0 Тогда (Проверка: Сервер)
{Документ.ОтгрузочнаяНакладная.Форма.ФормаДокумента.Форма(49,1)}: Переменная не определена (ВыборкаЗапроса)
<<?>>ВыборкаЗапроса.Следующий(); (Проверка: Сервер)
{Документ.ОтгрузочнаяНакладная.Форма.ФормаДокумента.Форма(50,9)}: Переменная не определена (ВыборкаЗапроса)
Возврат <<?>>ВыборкаЗапроса.КоличествоОстаток (Проверка: Сервер)
{Документ.ОтгрузочнаяНакладная.Форма.ФормаДокумента.Форма(46,7)}: Переменная не определена (ВыборкаРезультата)
Если <<?>>ВыборкаРезультата.Количество() = 0 Тогда (Проверка: Мобильное приложение-сервер)
{Документ.ОтгрузочнаяНакладная.Форма.ФормаДокумента.Форма(49,1)}: Переменная не определена (ВыборкаЗапроса)
<<?>>ВыборкаЗапроса.Следующий(); (Проверка: Мобильное приложение-сервер)
{Документ.ОтгрузочнаяНакладная.Форма.ФормаДокумента.Форма(50,9)}: Переменная не определена (ВыборкаЗапроса)
Возврат <<?>>ВыборкаЗапроса.КоличествоОстаток (Проверка: Мобильное приложение-сервер)
20. SedovSU@mail.ru 297 09.04.19 11:10 Сейчас в теме
(19) Извиняюсь нужно подправить на ВыборкаЗапроса

&НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    СтрокаТЧ = Элементы.Номенклатура.ТекущиеДанные;
    СтрокаТЧ.Остаток = ПолучитьОстаткиИзРегистра(СтрокаТЧ.Наименование, СтрокаТЧ.НомерПартии, Объект.ДокументОснование);
    КонецПроцедуры


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


У вас в функции нету возврата значения, поэтому она и не заполняет ни чего
user790607; +1 Ответить
21. user790607 09.04.19 11:39 Сейчас в теме
(20)
РезультатЗапроса = Запрос.Выполнить();
ВыборкаЗапроса = РезультатЗапроса.Выбрать();
Если выборказапроса.Количество() = 0 Тогда
Возврат 0
Иначе
ВыборкаЗапрос.Следующий()
Возврат ВыборкаЗапроса.КоличествоОстаток
Конецесли

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


Спасибо, вот так работает!

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


Правда возвращает не корректные сведения )
Для всех партий берёт один остаток
Прикрепленные файлы:
22. user790607 10.04.19 06:28 Сейчас в теме
(20) не пойму в чём проблема, но подбирает одинаковый остаток для всех строк, в том числе даже для пустой, где ничего не выбрано из номенклатуры...
23. SedovSU@mail.ru 297 10.04.19 07:39 Сейчас в теме
(22) у вас потому что нету отбора по номенклатуре и партии. У вас есть только отбор по документу основания. в этом и ошибка


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


Дописать нужно в параметрах РегистрНакопления.ОстаткиДокументаОснования.Остатки(&Период, ДокументОснование = &ДокументОснование И Номенклатура = &Номенклатура И НомерПартии = &НомерПартии)
24. user790607 10.04.19 07:58 Сейчас в теме
(23)
И Номенклатура = &Номенклатура И НомерПартии = &НомерПартии

вот затупил.... от души благодарю!
25. SedovSU@mail.ru 297 10.04.19 08:18 Сейчас в теме
6. kaliuzhnyi 135 01.04.19 14:20 Сейчас в теме
Ну для начала, советую использовать модуль объекта и обработку заполнения, а не на форме все это делать.
26. user790607 10.04.19 10:03 Сейчас в теме
Народ, а может кто подскажет в какую процедуру лучше поместить данный листинг, чтобы при создании документа на основании уже заполнялась колонка остатка в форме?
Оставьте свое сообщение

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