Группа: Пользователи
Сообщений: 40
Спасибо сказали: 2 раз
Рейтинг: 0
Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы. Добрый день. Подскажите пожалуйста в следующем. Мне нужно создать обработку, с помощью которой я смогу создавать документы оприходования товара на основе не проведённого документа возврат от покупателей. То есть получать позиции и количество из документа возврат от покупателей плюс нужно рассчитать себе стоимость. То есть есть реализация проведённая, есть её не проведённый возврат. Нужно вместо возврат создать документ оприходования. Товар из регистра партии товаров на складах списывается через реализацию по принципу FIFO. Документ возврат от покупателей возвращает товар немного иначе, последний товар который был списан из реализации будет первым в возврате (ну и остальные партии по такому же принципу). То есть оприходование должно записывать партии в такой же очерёдности как документ возврат от покупателей. Подскажите, как реализовать. Небольшие наработки:
ВЫБРАТЬ ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура, ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализация ПОМЕСТИТЬ ЗапросПоВозврату ИЗ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары ГДЕ ВозвратТоваровОтПокупателяТовары.Ссылка = &ДокументВозврата ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗапросПоВозврату.Номенклатура КАК Номенклатура, ПартииТоваровНаСкладах.Количество КАК Количество, ПартииТоваровНаСкладах.Стоимость КАК Стоимость, ПартииТоваровНаСкладах.ДокументОприходования КАК ДокументОприходования ИЗ ЗапросПоВозврату КАК ЗапросПоВозврату ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах ПО ЗапросПоВозврату.Номенклатура = ПартииТоваровНаСкладах.Номенклатура И ЗапросПоВозврату.Реализация = ПартииТоваровНаСкладах.Регистратор
ВЫБРАТЬ ПЕРВЫЕ 1 ПартииТоваровНаСкладахОбороты.Номенклатура КАК Номенклатура, ПартииТоваровНаСкладахОбороты.Регистратор КАК Регистратор, ПартииТоваровНаСкладахОбороты.Период КАК Период ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Обороты(, , Регистратор, Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОбороты ГДЕ ПартииТоваровНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТовраов
СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОбороты.Период, ПартииТоваровНаСкладахОбороты.Номенклатура, ПартииТоваровНаСкладахОбороты.Регистратор
Группа: Пользователи
Сообщений: 40
Спасибо сказали: 2 раз
Рейтинг: 0
stark @ Вчера, 17:59
, Нужно как то сделать грамотный отбор после запроса,в котором будут сравниваться строки одной таблицы (возвраты) и другой (партий). Ну и одновременно высчитывать нужное количество из таблицы партий в таблицу возвратов.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура, | ВозвратТоваровОтПокупателяТовары.Количество КАК Количество, | ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализация, | ВозвратТоваровОтПокупателяТовары.Склад КАК Склад, | ВозвратТоваровОтПокупателяТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения |ПОМЕСТИТЬ ЗапросПоВозврату |ИЗ | Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары |ГДЕ | ВозвратТоваровОтПокупателяТовары.Ссылка = &ДокументВозврата |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЗапросПоВозврату.Номенклатура КАК Номенклатура, | ЗапросПоВозврату.Количество КАК КоличествоНоменклатурыВозврата, | ПартииТоваровНаСкладах.Количество КАК Количество, | ЗапросПоВозврату.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ПартииТоваровНаСкладах.Стоимость КАК Стоимость, | ЗапросПоВозврату.Склад КАК Склад |ИЗ | ЗапросПоВозврату КАК ЗапросПоВозврату | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах | ПО ЗапросПоВозврату.Номенклатура = ПартииТоваровНаСкладах.Номенклатура | И ЗапросПоВозврату.Реализация = ПартииТоваровНаСкладах.Регистратор | |УПОРЯДОЧИТЬ ПО | Номенклатура, | ПартииТоваровНаСкладах.ДокументОприходования УБЫВ |АВТОУПОРЯДОЧИВАНИЕ";
Группа: Пользователи
Сообщений: 40
Спасибо сказали: 2 раз
Рейтинг: 0
Мой решение:
Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура, | ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализация, | ВозвратТоваровОтПокупателяТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения |ПОМЕСТИТЬ ЗапросПоВозврату |ИЗ | Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары |ГДЕ | ВозвратТоваровОтПокупателяТовары.Ссылка = &ДокументВозврата |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЗапросПоВозврату.Номенклатура КАК Номенклатура, | ПартииТоваровНаСкладах.Количество КАК Количество, | ЗапросПоВозврату.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ПартииТоваровНаСкладах.Стоимость КАК Стоимость, | ПартииТоваровНаСкладах.Склад КАК Склад |ИЗ | ЗапросПоВозврату КАК ЗапросПоВозврату | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах | ПО ЗапросПоВозврату.Номенклатура = ПартииТоваровНаСкладах.Номенклатура | И ЗапросПоВозврату.Реализация = ПартииТоваровНаСкладах.Регистратор | |УПОРЯДОЧИТЬ ПО | Номенклатура, | ПартииТоваровНаСкладах.ДокументОприходования УБЫВ |АВТОУПОРЯДОЧИВАНИЕ";
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!