То что пример рабочий я сам знаю.я пробую его переделать под себя.
Взял пример, убрал то, что не нужно. Оставил только то, что связано с моей конфигурацией. Результат - списывает товары в минус, сообщение не выводит.Ну в чем причина??
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ТоварыНаСкладах.Записывать = Истина;
// Создать менеджер временных таблиц
МенеджерВТ = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
// Укажем, какой менеджер временных таблиц использует этот запрос
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияМатериалы.Номенклатура,
| РеализацияМатериалы.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
| СУММА(РеализацияМатериалы.Количество) КАК КоличествоВДокументе
|ПОМЕСТИТЬ НоменклатураДокумента
|ИЗ
| Документ.Реализация.Материалы КАК РеализацияМатериалы
|ГДЕ
| РеализацияМатериалы.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РеализацияМатериалы.Номенклатура";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Результат = Запрос.Выполнить();
Запрос2 = Новый Запрос;
Запрос2.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос2.Текст = "ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура,
| НоменклатураДокумента.ВидНоменклатуры,
| НоменклатураДокумента.КоличествоВДокументе,
| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Количество,
| ТоварыНаСкладахОстатки.Штрихкод
|ИЗ
| НоменклатураДокумента КАК НоменклатураДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
| ,
| Материал В
| (ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура
| ИЗ
| НоменклатураДокумента)) КАК ТоварыНаСкладахОстатки
| ПО НоменклатураДокумента.Номенклатура = ТоварыНаСкладахОстатки.Материал";
// Запишем пустые наборы записей чтобы читать остатки без учета данных в документе
Движения.ТоварыНаСкладах.Записать();
Результат = Запрос2.Выполнить();
//ТЗ = Результат.Выгрузить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.ВидНоменклатуры = Перечисления.ВидНоменклатуры.Материал Тогда // регистр ТоварыНаСкладах Расход
// регистр ТоварыНаСкладах Расход
Движения.ТоварыНаСкладах.Записывать = Истина;
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
Движение = Движения.ТоварыНаСкладах.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Склад = Склад;
Движение.Штрихкод = ВыборкаДетальныеЗаписи.Штрихкод;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Движения.Записать();
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
// Проверить отрицательные остатки
Запрос3 = Новый Запрос;
Запрос3.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос3.Текст = "ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Материал,
| ТоварыНаСкладахОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(
| ,
| Материал В
| (ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура
| ИЗ
| НоменклатураДокумента)
| И Склад = &Склад) КАК ТоварыНаСкладахОстатки
|ГДЕ
| ТоварыНаСкладахОстатки.КоличествоОстаток < 0";
Запрос3.УстановитьПараметр("Склад", Склад);
Результат = Запрос3.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "Не хватает " + Строка(- ВыборкаДетальныеЗаписи.КоличествоОстаток) + " единиц материала """ + ВыборкаДетальныеЗаписи.Материал + """";
Сообщение.Сообщить();
Отказ = Истина;
КонецЦикла;
КонецЕсли;
КонецПроцедуры