PDA

Просмотр полной версии : Помогите с ошибкой по 1с Практическое пособие разработчика



Belfox
21.05.2022, 18:07
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ОказаниеУслуги.М� �дульОбъекта(68)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос2.Выполнить();
по причине:
{(9, 2)}: Таблица не найдена "НоменклатураДокумента"
<<?>>НоменклатураДокумента КАК НоменклатураДокумента












Процедура ОбработкаПроведения(Отказ, Режим)

// регистр ОстатокМатериалов Расход
Движения.ОстатокМатериало� �.Записывать = Истина;
Движения.СтоимостьМатериа� �ов.Записывать = Истина;
Движения.Продажи.Записыват ь = Истина;

//Создать менеджер временных таблиц
МенеджерВТ = Новый МенеджерВременныхТаблиц;


Запрос = Новый Запрос;

//Какой менеджер временных таблиц использует этот запрос
Запрос.МенеджерВременныхТ� �блиц = МенеджерВТ;

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

Запрос.УстановитьПараметр("Ссылка", Ссылка);

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

//Запишем пустые наборы записей, что бы читать остатки без учета данных в документе
Движения.СтоимостьМатериа� �ов.Записать();
Движения.ОстатокМатериало� �.Записать();

РезультатЗапроса = Запрос2.Выполнить();

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

Пока ВыборкаДетальныеЗаписи.Сл� �дующий() Цикл

Если ВыборкаДетальныеЗаписи.Ко� �ичество = 0 Тогда
СтоимостьМатериала = 0;
Иначе
СтоимостьМатериала = ВыборкаДетальныеЗаписи.Ст� �имость / ВыборкаДетальныеЗаписи.Ко� �ичество;
КонецЕсли;


Если ВыборкаДетальныеЗаписи.Ви� �Номенклатуры = Перечисления.ВидыНоменкла� �уры.Материалы Тогда

// регистр ОстатокМатериалов Расход
Движение = Движения.ОстатокМатериало� �.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
Движение.Период = Дата;
Движение.Материалы = ВыборкаДетальныеЗаписи.Но� �енклатура;
Движение.Склад = Склад;
Движение.Количество = ВыборкаДетальныеЗаписи.Ко� �ичествоВДокументе;

//регистр СтоимостьМатериалов Расход
Движение = Движения.СтоимостьМатериа� �ов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
Движение.Период = Дата;
Движение.Материал = ВыборкаДетальныеЗаписи.Но� �енклатура;
Движение.Стоимость = ВыборкаДетальныеЗаписи.Ко� �ичествоВДокументе * СтоимостьМатериала;
КонецЕсли;

//регистр Продажи

Движение = Движения.Продажи.Добавить() ;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Но� �енклатура;
Движение.Клиент = Клиент;
Движение.Мастер = Мастер;
Движение.Количество = ВыборкаДетальныеЗаписи.Ко� �ичествоВДокументе;
Движение.Выручка = ВыборкаДетальныеЗаписи.Су� �маВДокументе;
Движение.Стоимость = ВыборкаДетальныеЗаписи.Ко� �ичествоВДокументе * СтоимостьМатериала;


КонецЦикла;



КонецПроцедуры