Имя: Пароль:
1C
1С v8
Получить дату последнего прихода из регистра накопления "Партии товаров на складе"
0 abda123
 
05.04.14
14:49
В нетиповой конфигурации "Управление торговлей для Казахстана", редакция 2.2 (Аналог УТ 10.3) создал новый документ инвентаризации. Возникла необходимость проведения документа по регистру партий товаров на складах (упр). Этот документ может производить движения и по списанию и  по оприходованию товара. Для оприходования товара необходимо получить последнюю себестоимость. Если я правильно понимаю то нужно взять дату последнего поступления из таблицы движений регистра партий и получить оттуда цену поступления. Подскажите как правильно реализовать эту задачу.
1 abda123
 
05.04.14
14:53
В нетиповой конфигурации "Управление торговлей для Казахстана", редакция 2.2 (Аналог УТ 10.3) создал новый документ инвентаризации. Возникла необходимость проведения документа по регистру партий товаров на складах (упр). Этот документ может производить движения и по списанию и  по оприходованию товара. Для оприходования товара необходимо получить последнюю себестоимость. Если я правильно понимаю то нужно на дату последнего поступления из таблицы движений регистра партий получить цену поступления. Подскажите как реализовать эту задачу.
2 StanleyMarsh
 
05.04.14
15:05
Залезть в реализацию и посмотреть как она списывает себестоимость(по фифо или средней). А вообще себестоимость - не однозначная цифра. Можно сделать как в реализации. В УТ 11 при возвратах товаров осуществляется оприходование, себестоимость оприходования берется из регистра Стоимость товаров, куда цифра себестоимости записывается заблаговременно)) Можно сделать как ты описал. Запрос по регистру с отбором по товару, виду движения, сортировкой по дате чтобы "выбрать первый" - был последний приход.
3 abda123
 
05.04.14
15:06
Проще будет спросить, как построить запрос чтобы из регистра партий товаров вытащить движения на дату последнего прихода (по отношению к дате документа), с отбором по списку товара из документа и отбором по регистратору "Поступление товаров и услуг".
4 StanleyMarsh
 
05.04.14
15:10
(3) тут подумать чуть-чуть. в общем я написал - сортировка под дате и выбрать первый - тебе помогут.
5 abda123
 
05.04.14
15:12
(2) Спс. В принципе сама процедура проведения готова, все свелось к тому что в документе нужно просто подготовить таблицу для списания/оприходования и отправить ее в общий модуль управления партионным учетом, а там конфа уже сама все движений сделает. Трабл в том что при оприходовании необходимо в таблицу закинуть еще и цену поступления, которой в моем документе нет, поэтому необходимо взять цену из последнего поступления и закинуть в таблицу. Задумался над правильным построением запроса и решил посоветоваться как его лучше построить.
6 abda123
 
05.04.14
15:18
(4) Данная задача аналогична задаче получения цены номенклатуры из регистра сведений на дату документа. В общем разобрался, нечто подобное получилось



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

СГРУППИРОВАТЬ ПО
  ВТ_Товары.Номенклатура,
  ВТ_Товары.ЕдиницаИзмерения,
  ВТ_Товары.СерияНоменклатуры,
  ВТ_Товары.НомерСтроки) КАК ДанныеСДатой
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
  ПО ДанныеСДатой.Номенклатура = ПартииТоваровНаСкладах.Номенклатура
   И ДанныеСДатой.ЕдиницаИзмерения = ПартииТоваровНаСкладах.ЕдиницаИзмерения
   И ДанныеСДатой.СерияНоменклатуры = ПартииТоваровНаСкладах.СерияНоменклатуры
   И ДанныеСДатой.Период = ПартииТоваровНаСкладах.Период
   И (ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг)
   И (ПартииТоваровНаСкладах.Стоимость <> 0)

СГРУППИРОВАТЬ ПО
ДанныеСДатой.Номенклатура,
ДанныеСДатой.ЕдиницаИзмерения,
ДанныеСДатой.СерияНоменклатуры,
ДанныеСДатой.НомерСтроки,
ВЫБОР
  КОГДА ПартииТоваровНаСкладах.Количество = 0
   ТОГДА 0
  ИНАЧЕ ПартииТоваровНаСкладах.Стоимость / ПартииТоваровНаСкладах.Количество
КОНЕЦ

УПОРЯДОЧИТЬ ПО
НомерСтроки
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.