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