В проведении Расходной Накладной при списании партий ФИФО|ЛИФО не получается найти значение партии по коду. Лист кода прилагаю:
Процедура ОбработкаПроведения()
Запрос = СоздатьОбъект("Запрос");
Таб = СоздатьОбъект("ТаблицаЗначений");
СпрПарт = СоздатьОбъект("Справочник.Партии");
ВремРегистры=СоздатьОбъект("Регистры");
Рег = ВремРегистры.ТМЦ;
Рег.УстановитьЗначениеФильтра("ТМЦ",ТМЦ,1);
Рег.УстановитьЗначениеФильтра("Склад",Склад,1);
Рег.УстановитьЗначениеФильтра("Партия",Партия,1);
Если ИтогиАктуальны()=0 Тогда
Рег.ВременныйРасчет(1);
ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());
КонецЕсли;
ТЗ = "
|Период с (НачалоПериодаБИ());
|Товар = Регистр.ТМЦ.ТМЦ;
|Скл = Регистр.ТМЦ.Склад;
|Парт = Регистр.ТМЦ.Партия;
|Кол = Регистр.ТМЦ.Количество;
|Сум = Регистр.ТМЦ.Сумма;
|Функция КолКонОст = КонОст(Кол);
|Функция СумКонОст = КонОст(Сум);
|Группировка Товар Без Групп;
|Группировка Скл Без Групп;
|Группировка Парт упорядочить по Парт.Дата Без Групп;
|Условие (Скл = Склад);
|Без Итогов;
|";
Если Запрос.Выполнить(ТЗ) = 0 Тогда
Сообщить("Запрос по Регистру не выполнен");
Возврат;
КонецЕсли;
Запрос.Выгрузить(Таб);
Метод = Константа.МетодСписанияПартий.Идентификатор();
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
УчСумма = 0;
Кво = 0;
Раз = 0;
Если (Метод = "ФИФО") ИЛИ (Метод = "ЛИФО") Тогда
Раз = Количество;
Если Метод = "ЛИФО" Тогда
Таб.Сортировать("-Парт");
КонецЕсли;
Таб.ВыбратьСтроки();
Пока Таб.ПолучитьСтроку() = 1 Цикл
Если Таб.Товар = ТМЦ Тогда
Если Таб.КолКонОст > 0 Тогда
Если Раз>=Таб.КолКонОст Тогда
Кво = Кво + Таб.КолКонОст;
СпрПарт.ИспользоватьВладельца(ТМЦ);
СпрПарт.НайтиПоКоду(Таб.Парт,1);
УчСумма = УчСумма+СпрПарт.Цена * Таб.КолКонОст;
Регистр.ТМЦ.ТМЦ = ТМЦ;
Регистр.ТМЦ.Склад = Склад;
Регистр.ТМЦ.Партия = Таб.Парт;
Регистр.ТМЦ.Сумма = Таб.СумКонОст;
Регистр.ТМЦ.Количество = Таб.КолКонОст;
Регистр.ТМЦ.ПривязыватьСтроку(НомерСтроки);
Регистр.ТМЦ.ДвижениеРасходВыполнить();
Раз = Раз - Таб.КолКонОст;
Таб.КолКонОст = 0;
ИначеЕсли Раз<>0 Тогда
Кво = Кво + Раз;
СпрПарт.ИспользоватьВладельца(ТМЦ);
СпрПарт.НайтиПоКоду(Таб.Парт,1);
УчСумма = УчСумма + СпрПарт.Цена*Раз;
Регистр.ТМЦ.ТМЦ = ТМЦ;
Регистр.ТМЦ.Склад = Склад;
Регистр.ТМЦ.Партия = Таб.Парт;
Регистр.ТМЦ.Сумма = СпрПарт.Цена*Раз;
Регистр.ТМЦ.Количество = Раз;
Регистр.ТМЦ.ПривязыватьСтроку(НомерСтроки);
Регистр.ТМЦ.ДвижениеРасходВыполнить();
Таб.КолКонОст = Таб.КолКонОст-Раз;
Раз = 0;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
УчЦена = УчСумма/Кво;
П = Таб.Парт;
Иначе
Кво = Рег.Остаток(ТМЦ,Склад,Партия,"Количество");
Если Кво<Количество Тогда
Сообщить ("В выбранной партии недостаточно товаров!");
Возврат;
Иначе
УчЦена = Рег.Остаток(ТМЦ,Склад,Партия,"Сумма")/Кво;
УчСумма = УчЦена * Количество;
Регистр.ТМЦ.ТМЦ = ТМЦ;
Регистр.ТМЦ.Склад = Склад;
Регистр.ТМЦ.Партия = Партия;
Регистр.ТМЦ.Сумма = УчСумма;
Регистр.ТМЦ.Количество = Количество;
Регистр.ТМЦ.ПривязыватьСтроку(НомерСтроки);
Регистр.ТМЦ.ДвижениеРасходВыполнить();
П = Партия;
КонецЕсли;
КонецЕсли;
Регистр.Продажи.ТМЦ = ТМЦ;
Регистр.Продажи.Кол = Количество;
Регистр.Продажи.Сум = Сумма;
Регистр.Продажи.ПривязыватьСтроку(НомерСтроки);
Регистр.Продажи.ДвижениеВыполнить();
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду("902");
Операция.Кредит.Счет = СчетУчета;
Операция.Кредит.ТМЦ = ТМЦ;
Операция.Кредит.Партии = П;
Операция.Кредит.МестаХранения = Склад;
Операция.Сумма = УчСумма;
Операция.Коментарий = "Списание товаров";
КонецЦикла;
Регистр.Взаиморасчеты.Контрагент = Контрагент;
Регистр.Взаиморасчеты.Сумма = Итог("Сумма")+Итог("НДС");
Регистр.Взаиморасчеты.ДвижениеПриходВыполнить();
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетУКон;
Операция.Дебет.Контрагент = Контрагент;
Операция.Кредит.Счет = СчетПоКоду("702");
Операция.Сумма = Итог("Сумма")+Итог("НДС");
Операция.Коментарий = "Получение оплаты";
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду("702");
Операция.Кредит.Счет = СчетПоКоду("644");
Операция.Сумма = Итог("НДС");
Операция.Коментарий = "Учет НДС";
Операция.Содержание = "Продажа товара";
Операция.СуммаОперации = Итог("Сумма")+Итог("НДС");
Операция.Записать();
КонецПроцедуры
Значения в таблицу все попадают, из таблицы код партии выдается правильно, а вот поиск по справочнику не происходит. Может у кого-то есть идеи, поделитесь пожалуйста?