В больших базах данных, где большой ассортимент товара, много складов часто возникают отрицательные остатки по товару. По прошествии времени товарные минуса убираются с помощью оприходования. Фактически нужно скопировать строку из отчета (номенклатура, количество) в документ оприходования, поставить закупочную цену и провести документ. Проще, если обработкой получить все товарные минуса по складу и автоматически перенести их в документ. Для этого понадобиться обработка. 

Важные заметки: необходимо создать запрос и отобрать только отрицательные остатки по конкретному складу. Т.е. обязательные параметры запроса: склад, остаток меньше нуля. Запрос нужно создавать перед тем как мы покажем пользователю готовый документ. Т.е. выполняем команду для того чтобы создать документ, а затем заполняем его с помощью данных из запроса. После окончания запроса необходимо создать цикл, который переберет все строки из запроса и перенесет их в документ.

ШАБЛОН КОДА

Процедура ОсновныеДействияФормыДействие(Кнопка)

Док = Документы.ОприходованиеТоваров.СоздатьДокумент(); //создаем новый документ
Док.Дата = ТекущаяДата();
Док.Склад = Склад;

Запрос = Новый Запрос; // создаем новый запрос, чтобы с помощью него заполнить документ
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.Текст =

"ВЫБРАТЬ
| ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
| ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
| ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК Остаток,
| ТоварыНаСкладахОстаткиИОбороты.Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения,
| ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Ссылка КАК СсылкаНоменклатура,
| ТоварыНаСкладахОстаткиИОбороты.Номенклатура.БазоваяЕдиницаИзмерения.Ссылка КАК СсылкаБазоваяЕдиницаИзмерения,
| ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Ссылка КАК ЕдиницаИзмерения
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
|ГДЕ
| ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток < 0
| И ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура";

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

Товары = Док.Товары; //заполнение табличной части документа
Пока Выборка.Следующий() Цикл
Стр = Товары.Добавить();
//переносим строки из запроса в табличную часть документа
Стр.Номенклатура = Выборка.СсылкаНоменклатура;
Стр.Количество = Выборка.Остаток * (-1);
Стр.ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;
Стр.Коэффициент = 1 ;
Стр.Качество = Справочники.Качество.НайтиПоКоду("000000001");

КонецЦикла;
Форма = Док.ПолучитьФорму("ФормаДокумента");
Форма.Открыть();
КонецПроцедуры

СКРИНШОТ КОДА

Вложения:
Скачать этот файл (Oprihodovanie_minus_oststkov.epf)Oprihodovanie_minus_oststkov.epf10 Kb

Наши проекты | Купить 1С | Услуги по 1С | ПрограммированиеАренда сервера | FAQ 1C

Сопровождение, доработка, консультация, обучение, по программе 1С. Информационно-технический консалтинг, почасовая и сдельная оплата. Запуск новых проектов, реализация решений под ключ.

© 2021 1С ПРОЕКТЫ И РЕШЕНИЯ /1С СЕРВИС 24/7