8.х УТ Резервирование товаров по заказу покупателей(УТ 10.3)

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем rockedit, 3 май 2011.

  1. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Всем здравствуйте!
    Есть такой вопрос:
    Допустим на складе есть 40 стульев. Покупатель хочет заказать, скажем 50. Оформляем заказ покупателя, 40 стульев попадают в резерв, 10 надо дозаказать. Оформляем заказ поставщику(пусть он будет общий по нескольким заказам покупателей) в котором заказываем эти 10 стульев. Так вот, когда прийдет товар от поставщика, эти 10 стульев попадут в резерв для покупателя, который заказал их 50? или они будут как свободный товар и любой менеджер сможет их продать?
    Всем спасибо!
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    40 то штук вы уже зарезервировали по наличию... 10 после прихода встанут на резерв конкретному покупателю. Продать их можно только сняв резерв.
  3. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Спасибо. Есть еще пару вопросов:
    1) Может ли товар снятся с резерва автоматически, скажем через неделю например?
    2) Допустим на основании нескольких заказов покупателей мы сформировали один заказ поставщику, когда прийдет товар от поставщика, как определить для какого заказа покупателя предназначен какой товар? и какой менеджер оформил какой документ заказа покупателя.
  4. Diego
    Offline

    Diego Любитель 1С Команда форума

    Регистрация:
    3 апр 2009
    Сообщения:
    966
    Симпатии:
    2
    Баллы:
    29
    В заказе поставщику в табличной части в каждой строке должно быть указано, под какой заказ покупателя эта номенклатура предназначена. Тогда при проведении поступления товаров на основании этого заказа поставщику поступившие товары сразу зарезервируются под свой заказ.

    Заказ поставщику лучше формировать из отчета "Анализ заказов покупателей".
    Отбираете в нем нужные заказы и нажимаете сверху "Заказ поставщику". Тогда в документе будет сразу указано, под какой заказ покупателя данная номенклатура заказывается у поставщика.
  5. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Суть вопроса вот в чем. При поступлении товаров, я должен оповестить каждого менеджера по продаже о том, что товар по заказу покупателя, который он оформил пришел, нужно связатся с покупателем. Хочу это реализовать в виде заданий с оповещением. Т.е. при проведении документа поступление товаров и услуг я хочу узнать какие товары пришли для каких заказов покупателей и какому менеджеру нужно поставить задание.
    Подскажите как это реализовать можно, заранее большое спасибо!
  6. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    В обработку проведения напишите формирование задач. Я же вам описывал что-то подобное.
    Просто выберите список заказов из поступления и по ответственным сформируйте напоминания.
  7. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Может кому пригодится. Вот код в модуле объекта, документа - "Заказ поставщику"
    Код:
    // Движения по документу
    Если Не Отказ Тогда
    
    ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, 
    ТаблицаПоТоварам, ТаблицаПоУслугам, ТаблицаПоТаре,
    Отказ, Заголовок);
    
    
    // Доработка
    Запрос = Новый запрос;
    Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ЗаказПоставщикуТовары.Заказ КАК Заказ
    |ИЗ
    |    Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
    |ГДЕ
    |    ЗаказПоставщикуТовары.Ссылка = &Ссылка";
    Запрос.УстановитьПараметр("Ссылка",Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    Событие = Документы.Событие.СоздатьДокумент();
    Событие.Основание = Выборка.Заказ;
    Событие.Дата = ТекущаяДата();
    Событие.ОписаниеСобытия = "Сделан заказ поставщеку";
    Событие.Записать();
    Задача = Задачи.ЗадачиПользователя.СоздатьЗадачу();
    Задача.Исполнитель = Выборка.Заказ.Ответственный;
    Задача.Объект = Событие.Ссылка;
    Задача.Описание = "Информация о заказе";
    Задача.Наименование = "Новая";
    Задача.Дата = ТекущаяДата();
    Задача.Оповещение = TRUE;
    Задача.СрокОповещения = ТекущаяДата();
    Задача.СрокИсполнения = ТекущаяДата();
    Задача.Записать();
    КонецЦикла;
    КонецЕсли;
    
    
    
    Может код и не супер, но вроде работает. Если у кого есть предложения по улучшению с радостью выслушаю.
  8. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    1. Непонятно зачем вы создаете документ "Событие".
    2. Я бы добавил поиск ранее созданной задачи по этому заказу, например через объект-основание.
    3. Может лучше оповещать не о создании заказа поставщику, а о факте прихода товара, то есть поступления по заказу покупателя?
  9. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Да тут нюансов много. На сообщать и о заказе поставщику и о поступлении. Насчет того, чтоб проверять я знаю, не было времени реолизовать. Вот как сделать рассылку сообщений по поступлению пока не знаю. НО самый большой вопрос который меня волнует - как сделать, что при добавлении номенклутуры в табличную часть документа поступление товаров и услуг подставлялись заказ поставщику и заказ покупателя.
    Код кстати говоря уже другой
    Код:
    
    //  Доработка
    Запрос = Новый запрос;
    
    Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |	ЗаказПоставщикуТовары.Заказ КАК Заказ
    |ИЗ
    |	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
    |ГДЕ
    |	ЗаказПоставщикуТовары.Ссылка = &Ссылка
    |	И НЕ ЗаказПоставщикуТовары.Заказ = &Заказ";
    Запрос.УстановитьПараметр("Заказ",Документы.ЗаказПокупателя.ПустаяСсылка());			   
    Запрос.УстановитьПараметр("Ссылка",Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    Событие = Документы.Событие.СоздатьДокумент();
    Событие.Основание = Выборка.Заказ;
    Событие.Дата = ТекущаяДата();
    Событие.ВидСобытия = Перечисления.ВидыСобытий.ЗаказПоставщику;
    Событие.ОписаниеСобытия = "Сделан заказ поставщику";
    СодержаниеСобытия = "По Вашему заказу: " 
    + Выборка.Заказ + Символы.ПС;
    
    
    Запрос.Текст = "ВЫБРАТЬ
    |	ЗаказыПокупателейОстатки.КоличествоОстаток,
    |	ЕСТЬNULL(ЗаказыПокупателейОстатки.Номенклатура, ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.Номенклатура, РазмещениеЗаказовПокупателейОстатки.Номенклатура)) КАК Номенклатура,
    |	ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток1,
    |	РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток КАК КоличествоОстаток2
    |ИЗ
    |	РегистрНакопления.ЗаказыПокупателей.Остатки(&Период, ЗаказПокупателя = &ЗаказПокупателя) КАК ЗаказыПокупателейОстатки
    |		ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ДокументРезерва = &ЗаказПокупателя) КАК ТоварыВРезервеНаСкладахОстатки
    |		ПО ЗаказыПокупателейОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
    |		ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.РазмещениеЗаказовПокупателей.Остатки(&Период, ЗаказПокупателя = &ЗаказПокупателя) КАК РазмещениеЗаказовПокупателейОстатки
    |		ПО ЗаказыПокупателейОстатки.Номенклатура = РазмещениеЗаказовПокупателейОстатки.Номенклатура";
    
    
    Запрос.УстановитьПараметр("Период",Ссылка.Дата+1);
    Запрос.УстановитьПараметр("ЗаказПокупателя",Выборка.Заказ);
    Запрос.УстановитьПараметр("Ссылка",Ссылка);
    ВыборкаОстатки = Запрос.Выполнить().Выбрать();
    С = 1;
    Пока  ВыборкаОстатки.Следующий() Цикл
    
    СодержаниеСобытия = СодержаниеСобытия + С + ")" +  ВыборкаОстатки.Номенклатура +  Символы.ПС; 
    СодержаниеСобытия = СодержаниеСобытия + "Осталось отгрузить: " +
    ВыборкаОстатки.КоличествоОстаток +  Символы.ПС; 
    СодержаниеСобытия = СодержаниеСобытия + "Из них на складе: " +
    ВыборкаОстатки.КоличествоОстаток1 +  Символы.ПС; 
    СодержаниеСобытия = СодержаниеСобытия + "Заказано поставщику: " +
    ВыборкаОстатки.КоличествоОстаток2 +  Символы.ПС; 
    
    
    С = С + 1;	
    КонецЦикла;
    
    Событие.СодержаниеСобытия = СодержаниеСобытия;
    Событие.Записать();
    Задача = Задачи.ЗадачиПользователя.СоздатьЗадачу();
    Задача.Исполнитель = Выборка.Заказ.Ответственный;
    Задача.Объект = Событие.Ссылка;
    //
    Задача.Описание = "Информация о заказе";
    Задача.Наименование = "Новая";
    Задача.Дата = ТекущаяДата();
    Задача.Оповещение = TRUE;
    Задача.СрокОповещения = ТекущаяДата();
    Задача.СрокИсполнения = ТекущаяДата();
    
    Задача.Записать();
    КонецЦикла;
    
    
    
    
    

Поделиться этой страницей