Имя: Пароль:
1C
1С v8
УТ 10.3 Переместить весь товар, который находится на складе.
0 Koliaff
 
03.12.13
19:54
Нужно переместить весь товар с одного склада на другой. Создал вручную документ "Перемещение товаров". В шапке документа выбрал "Склад отправитель" и "Склад получатель". Табличную часть решил заполнить программно. Написал процедуру, которая заполняет документ "Перемещение товаров" остатками из регистра "Партии товаров на складах" :

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

    
    
    НашДок = Док.ПолучитьОбъект();
    НашДок.Товары.Очистить();
    НашДок.Товары.Загрузить(Запрос.Выполнить().Выгрузить());
    
    Для Каждого Стр из НашДок.Товары Цикл
        СТр.ЕдиницаИзмерения = Стр.Номенклатура.ЕдиницаХраненияОстатков;
        Стр.Коэффициент = 1;
    КонецЦикла;    
    
    
НашДок.Записать();    
КонецПроцедуры

===========================================

Но есть товары, которые находятся в резерве и документ не проводится из-за этого. Резервы у нас делаются без учета серии номенклатуры. Как  правильно заполнить документ "Перемещение товаров"  чтобы резервы снять и переместить весь товар. Пробовал заполнить документ "Закрытие заказов покупателей" произвольным отбором, в котором указывал только склад. Но почему-то он не видит резервов... Может кто-то уже делал подобное, поделитесь опытом...
1 НикДляЗапросов
 
03.12.13
19:58
Инвентаризация, списание, копировать ТЧ
2 ProProg
 
03.12.13
19:59
в перемещении можно перемещать резервы
3 Шапокляк
 
03.12.13
19:59
Я бы запросом выбрала все свободные остатки  и все резервы с документами резервирования, результатом чего стала бы таблица, из которой я б заполнила ПЕремещение (если я не ошибаюсь, там в табличной части есть колонка с документом резервирования). А потом по кнопке Заполнить и провести заполнила серии и провела.
4 ProProg
 
03.12.13
19:59
там есть этот весь функционал
5 ProProg
 
03.12.13
20:00
достаточно по тем товарам у которых резервы также заполнить в поле заказ покупателя в перемещении ссылки на нужные количества и тп
6 ProProg
 
03.12.13
20:00
сделай два перемещения. первый - заполнение из регистра резервы по складам - по нудному складу. по логике резервы = остатки под ними.

А второе уже из всех остальных остатков что останутся.
7 Koliaff
 
03.12.13
20:34
(НикДляЗапросов) Не подойдет, нет учета резервов.
(Шапокляк) Хорошая идея, сейчас попробую.
(ProProg) Два перемещения, как-то не серьезно. Да и не понял, как ты их разделять собрался
8 PaulBC
 
04.12.13
02:45
В УТ 10.3 в перемещении есть кнопка "Заполнить остатками на складе-отправителе".