Имя: Пароль:
1C
1С v8
Перемещение товаров в торговли на 8.3
0 Morozov Roman
 
27.02.23
10:43
Здравствуйте, кто знает как написать обработку по перемещению всего товара с одного склада на другой? Запрос, создание док, заполнение ТЧ все это сделал, есть лишь один нюанс, не знаю как обойти, в форме док перемещение, есть подбор по сериям, нажимаешь на него открывается окно там выходят доступные остатки по срокам и оттуда указываешь в документ сколько тебе надо, как можно прописать в коде механизм подбора или как правильно обойти этот момент? Вручную тысячи товаров перемещать не вариант, помогите пжлста!
Пока черновой код обработки:

Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК НоменклатураНаименование,
    |    ТоварыНаСкладахОстатки.Номенклатура.Код КАК НоменклатураКод,
    |    ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаДляОтчетов КАК НоменклатураЕдиницаДляОтчетов,
    |    ТоварыНаСкладахОстатки.Характеристика КАК Характеристика,
    |    ТоварыНаСкладахОстатки.Серия КАК Серия,
    |    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток,
    |    ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры КАК ВидНоменклатурыВЭлементе,
    |    ТоварыНаСкладахОстатки.Серия.ВидНоменклатуры КАК ВидНоменклатурыВСерии,
    |    ТоварыНаСкладахОстатки.Серия.ВидНоменклатуры.СкладскаяГруппа КАК СерияВидНоменклатурыСкладскаяГруппа
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(
    |            ,
    |            Склад = &Склад
    |                И Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки";
    
    Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоНаименованию("Основной склад"));
    Запрос.УстановитьПараметр("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("00-00001362"));
    
    ТЗОстатки = Запрос.Выполнить().Выгрузить();
    
    ДокПеремещение = Документы.ПеремещениеТоваров.СоздатьДокумент();
    ДокПеремещение.Дата                    = ТекущаяДата();
    ДокПеремещение.СкладОтправитель        = Справочники.Склады.НайтиПоНаименованию("Основной склад");
    ДокПеремещение.СкладПолучатель         = Справочники.Склады.НайтиПоНаименованию("Безорденый склад");
    ДокПеремещение.Организация             = Справочники.Организации.НайтиПоНаименованию("PRODMARKET.KZ");
    ДокПеремещение.ВариантПриемкиТоваров   = Перечисления.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным;
    ДокПеремещение.ВидЦены                 = Справочники.ВидыЦен.НайтиПоНаименованию("Себестоимость");
    ДокПеремещение.СпособДоставки          = Перечисления.СпособыДоставки.Самовывоз;
    ДокПеремещение.Ответственный           = ПараметрыСеанса.ТекущийПользователь;
    
    Индекс = 0;
    Для каждого СтрокаТЗ из ТЗОстатки Цикл
        НоваяСтрока                            = ДокПеремещение.Товары.Добавить();
        НоваяСтрока.Номенклатура               = Справочники.Номенклатура.НайтиПоНаименованию(ТЗОстатки[Индекс].НоменклатураНаименование);
        //ВидНоменклатуры                      = Справочники.ВидыНоменклатуры.НайтиПоНаименованию(ТЗОстатки[Индекс].ВидНоменклатурыВЭлементе);
        НоваяСтрока.Количество                 = ТЗОстатки[Индекс].ВНаличииОстаток;
        НоваяСтрока.КоличествоУпаковок         = ТЗОстатки[Индекс].ВНаличииОстаток;
        
        Индекс = Индекс + 1;    
    КонецЦикла;
    
    Попытка
        ДокПеремещение.Записать();
    Исключение
        Сообщить(ОписаниеОшибки());
        Отказ = Истина;
    КонецПопытки;
1 Morozov Roman
 
27.02.23
10:45
В России Торговля 11.4 кажется
2 Morozov Roman
 
27.02.23
10:46
Скрин как приложить можно?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший