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