Имя: Пароль:
1C
1С v8
получать остатки на момент продаж
0 zak555
 
16.06.13
16:14
есть два регистра
остатки
продажи (оборотный)

Как оптимальнее всего получать остатки на момент продажи?
30 Славен
 
16.06.13
17:13
(28)дааааа это будет ну намного быстрее
31 ИсчадиеADO
 
16.06.13
17:14
(30) да
32 ИсчадиеADO
 
16.06.13
17:15
(29) ну попробуй расчитай своим методом левого соединения остатки на каждый регистратор за год
33 sanja26
 
16.06.13
17:28
(32) да нафиг это надо за год , вообще не понимаю. Просто в скд выбрать таблицу остатков на начало, всю таблицу остатки и обороты, а остатки считать как начОстаток и накапливаемый приход минус накапливаемый расход
34 sanja26
 
16.06.13
17:29
(33) вместо остатки и обороты можно просто обороты
35 ИсчадиеADO
 
16.06.13
17:30
(33) скд делает тоже самое, по секрету скажу
я сразу  сказал, от контекста задачи зависит решение
36 zak555
 
16.06.13
17:30
кстати, в http://wiki.mista.ru/doku.php?id=1c:v8:srez_poslednix_na_kazhduju_datu_v_zaprose

рассказывается о периодическом РС с периодом день
у меня в одном дне может много операций
37 ИсчадиеADO
 
16.06.13
17:32
(36) там можно соединять по моменту времени. зависит от объема данных
38 sanja26
 
16.06.13
17:32
(35) только у тебя это будут тонны кода циклов и проверок
39 Славен
 
16.06.13
17:32
(36) да хоть на секунду
40 ИсчадиеADO
 
16.06.13
17:33
и кстати про контекст задачи тс до сих пор ниче не сказал :)
41 ИсчадиеADO
 
16.06.13
17:34
от ведь партизан :)
42 ИсчадиеADO
 
16.06.13
17:37
(38) да не так и много. я уже писал подобное. можно конечно макет скд создать и скомпоновать результат, вывести в тз, а не таблич.поле, но это макет нужно делать. Все от задачи зависит
43 zak555
 
16.06.13
17:38
(37) и ты возьмёшь максимум от момента/регистратора 1ого регистра ?
44 sanja26
 
16.06.13
17:40
хоть максимум, хоть минимум, момент времени регистратора уникален
45 ИсчадиеADO
 
16.06.13
17:41
(43) там же момент будет только для оборотного регистра, который сам с собой соед-ся. Потом соед-ся с нач.остатками по измерениям (в твоем случае номенклатура). Зачем там остаткам момент времени?
46 zak555
 
16.06.13
18:01
ещё раз

в запросе к РС на каждую дату получается значение из предыдущей установки значения

для РН это не подходит, т.к. мне не интересно предыдущее значение, мне интересен остаток
47 sanja26
 
16.06.13
18:03
прямо как со смартфонами уперся
48 Славен
 
16.06.13
18:09
(46)позови специалиста
49 zak555
 
16.06.13
18:13
по (36) получится

продажа1 -- осталось 100
продажа2 -- осталось 6
продажа3 -- осталось 1
50 GROOVY
 
16.06.13
18:15
sanja26 как вы получили сертификат "специалист"? Какие нафиг обороты, остатки и обороты? Жесть...
51 ИсчадиеADO
 
16.06.13
18:17
(46) че там не понятного. Ты обороты соединяешь с оборотами по условию равенства номенкл. и момент меньше нужного. У тя таблица растет геометрически. Потом эту получ.таблицу сворачиваешь, и получаешь оборот с начала выборки до опред.регистратора.  Потом цепляешь к этому делу нач.остатки. А нач.остатки + оборот = кон.остаток
52 sanja26
 
16.06.13
18:20
(50) что именно не понравилось?
53 zak555
 
16.06.13
18:23
у меня получилось так:
для остатков смотрю таблицу остатки/обороты по регистратору
и для оборотов таблицу оборотов по регистратору

но это разве оптимально ?
54 RomanYS
 
16.06.13
18:28
(53) в твоих примерах ни слова про обороты, что тебе все-таки надо получить?
55 zak555
 
16.06.13
18:29
(54) смотри внимательно (1) / (2) / (4)
56 ИсчадиеADO
 
16.06.13
18:30
(53) почему-то мне кажется, ты троллишь сейчас :)
57 zak555
 
16.06.13
18:31
(56) не понял
58 ИсчадиеADO
 
16.06.13
18:31
хоть скажи, родной, че мутишь то, отчет али как?
59 RomanYS
 
16.06.13
18:32
(55) в (4) тебе же последнюю таблицу надо получить, а начало - это входные данные. Или я не так понял?
60 ИсчадиеADO
 
16.06.13
18:32
если отчет, то на скд вообще просто. там просто нужно поля периода правильно указать и рессурсы
61 zak555
 
16.06.13
18:45
(59) да
62 RomanYS
 
16.06.13
18:46
(61) в ней нет оборотов, только остакти
63 Пеппи
 
16.06.13
18:47
(61) тебе же и нужны только остатки)
64 RomanYS
 
16.06.13
18:52
ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Регистратор,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
   ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг


или

ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Регистратор,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
   ТоварыНаСкладахОстаткиИОбороты.Регистратор В
           (ВЫБРАТЬ
               ПродажиОбороты.Регистратор
           ИЗ
               РегистрНакопления.Продажи.Обороты(, , Регистратор, ) КАК ПродажиОбороты)
65 zak555
 
16.06.13
18:54
ещё раз : есть два регистра

I. остатки (рн остатков) -- у него есть остатки и обороты
структура:
1. товар
2. количество


II. продажи (рн оборотов) -- у него есть только обороты
структура:
1. товар
2. сумма
66 Пеппи
 
16.06.13
18:54
(65) зачем тебе 2 регистра???
67 ИсчадиеADO
 
16.06.13
18:55
(65) ТС, скажи, ты отчет делаешь? Если да, то на СКД это решается на раз. Никакие сложные запросы писать не нужно
68 zak555
 
16.06.13
18:56
(64) что-то типа того (это я про 1ый запрос)
2ой не подойдёт, т.к. по остаткам может делать движения и другие регистраторы
69 ИсчадиеADO
 
16.06.13
18:56
(65) интересная структура у регистра продаж... кол-ва нет?  и если нет, то нах он вообще нужен?
70 zak555
 
16.06.13
18:57
(66) в одном факт продаж товара , в другом факт прихода/расхода товара
71 zak555
 
16.06.13
18:57
(69) даже если и было бы количество в решение вопрос оно не поможет
72 ИсчадиеADO
 
16.06.13
19:00
(71) мне просто интересно, зачем ты вообще его сюда пишешь? и где ответ на (67)?

Скажи честно, принял? :)
73 mistеr
 
16.06.13
19:00
Блин, я такой тупой оказывается. Даже исходную задачу не понял, не то что предлагаемые решения.
74 zak555
 
16.06.13
19:01
(72)
кого пишу ?
это не отчёт
нет
75 ИсчадиеADO
 
16.06.13
19:03
(74) ок. Если рег.Продаж не нужен, зачем нам о нем писать?
76 zak555
 
16.06.13
19:05
(75) почему не нужен ?
нужно получить остатки на регистратор, который делает движение по регистру Продажи =)
77 ИсчадиеADO
 
16.06.13
19:06
(76) ок, напишу запрос за небольшое вознаграждение :)
78 ИсчадиеADO
 
16.06.13
19:08
рублей 200 как для своего человека, чисто на пиво
79 ИсчадиеADO
 
16.06.13
19:11
чтобы взять обороты виртуальные таблицы тут не нужны
80 ИсчадиеADO
 
16.06.13
19:11
обращайся прям к физическим
81 zak555
 
16.06.13
19:13
(79) (80) тут без разницы к какой общаться : к физической или виртуальной оборотного рн продажи
ибо одно измерение и итоги не нужны
82 ИсчадиеADO
 
16.06.13
19:17
в регистре остаткоом вирт.таблица ОстаткиИОбороты оч.хитрая, к ней не имеет смысла в твоем случае обращаться и даже вредно.
в оборотном (продажи) тоже нет смысла, т.к. будет строится по физической. Выбрать различные Продажи.регистратор будет лучше
83 RomanYS
 
16.06.13
19:25
(76)  в (64.2) ровно то, что ты пишешь
84 zak555
 
16.06.13
19:40
(83) неа
85 zak555
 
16.06.13
19:41
(84) регистратор продажи не делает на расход количества
это делается другим документом
86 Пеппи
 
16.06.13
19:45
(76) остатки нужны не на регистратор а на момент времени регистратора!!!
87 Славен
 
16.06.13
19:54
(86)давай Пеппи разгоняй этих ламеров
88 zak555
 
16.06.13
20:00
(86) естественно, но у виртуальной таблицы ОстаткиИОбороты иногда эти поля Неопределенны
89 RomanYS
 
16.06.13
20:01
(85)  феерично
задача теперь понятна
непонятно как до такой структуры можно было дойти
90 zak555
 
16.06.13
20:02
(89)

1. феерично, с чего вдруг ?
2. не ко мне про структуру
91 Пеппи
 
16.06.13
20:13
(87) это бесполезно!)
92 sdv2000
 
16.06.13
20:14
не факт
93 Пеппи
 
16.06.13
20:14
(85) каким другим?
94 zak555
 
16.06.13
20:15
(93) другим
95 Пеппи
 
16.06.13
20:24
(94) у вас там своя УТ чтоли, оригинальная и самописная?
96 zak555
 
16.06.13
20:28
уточнение


ещё раз : есть два регистра

I. остатки (рн остатков) -- у него есть остатки и обороты
структура:

1. товар
2. количество


II. продажи (рн оборотов) -- у него есть только обороты
структура:

1. товар
2. сумма


"продажа" делается двумя регистратора
списание -- по рн остатки, продажа -- по рн продажи

пример:

Остаток на начало 01.01 100 шт

Списание1 3шт
Продажа1 100 р

Поступление1 6 шт

Списание2 2 шт
Продажа2  50 р

Поступление2 1 шт

Остаток на начало 02.01 102 шт

Списание3 100 шт
Продажа3  5 р

делаем запрос с 01.01 по 31.01

продажа1 -- осталось 97
продажа2 -- осталось 101
продажа3 -- осталось 2
97 RomanYS
 
16.06.13
20:40
Как связаны документы "списание" и "продажа"?
98 zak555
 
16.06.13
20:54
(97) два разных регистратора
99 ИсчадиеADO
 
16.06.13
20:55
ордерная схема
100 Пеппи
 
16.06.13
20:55
(98) ты во франче работаешь?
101 ИсчадиеADO
 
16.06.13
20:57
(100) фото и телефон сразу спрашивай :)
102 zak555
 
16.06.13
20:57
(100) нет
+ это имеет отношение ?
103 zak555
 
16.06.13
20:58
это нетиповая конфа
104 ИсчадиеADO
 
16.06.13
20:59
а че, методом левого соединения запрос не взлетел?
105 Пеппи
 
16.06.13
20:59
(101) может еще и адрес спросить?)))

(102) ну ты хоть внимательнее вопросы чтоли читай)
106 RomanYS
 
16.06.13
21:01
какой смысл определять остаток на момент продажи, если ты не можешь определить был ли этот товар уже списан или нет?
107 zak555
 
16.06.13
21:02
(104) это ты про какой ?

(105) ты про какой именно спрашиваешь ?
108 zak555
 
16.06.13
21:05
(106) мне придумывать для тебя примеры ?
109 Пеппи
 
16.06.13
21:06
(108) конфа у тебя а не у нас, была бы типовая))
110 ИсчадиеADO
 
16.06.13
21:06
(107) в (9) который, я так понял, ты уже его начал делать...
111 zak555
 
16.06.13
21:09
(109) перевести её на типовую -- это уже другой вопрос
112 ИсчадиеADO
 
16.06.13
21:11
(111) таки, повторяю, напишу запрос за 200р на пиво и фотку Пеппи :)
113 RomanYS
 
16.06.13
21:12
(108) просто объяснить как идет списание, точнее объяснить как система поддерживает равенство списанного и проданного товара, если как ты утверждаешь никакой связи между регистраторами нет.
114 ИсчадиеADO
 
16.06.13
21:14
(113) Пример,
реализация по ордерной схеме.  +продажи  +резервы. Контроль при проведении остатки-резервы. Ордер -остатки -резервы
115 Пеппи
 
16.06.13
21:14
(112) зачем тебе моя фотка то?)))
116 Пеппи
 
16.06.13
21:15
(111) тебе надеюсь 200 руб не дорого?)
117 zak555
 
16.06.13
21:15
(110) и как связать Обороты(&Дата1, &Дата2, Регистратор, ) с ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , )
118 Пеппи
 
16.06.13
21:15
(117) может по регистратору?)
119 ИсчадиеADO
 
16.06.13
21:16
(115) может, познакомицца захочу :))
120 zak555
 
16.06.13
21:16
(113) я продал сейчас, а товар забрали вчера
121 RomanYS
 
16.06.13
21:18
(114) ты хочешь сказать, что в ордерной схеме нет связи между ордером о реализацией?
ТС, утверждает что у него нет.
122 zak555
 
16.06.13
21:18
ведь

выбрать

Регистратор

из

Остатки.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , )

будет

Неопределено
Списание1
Списание2
Списание3
Неопределено
123 Пеппи
 
16.06.13
21:20
(122) а, точно. в остатках нет регистратора. забыла)

(119)  да ладно тебе)
124 RomanYS
 
16.06.13
21:21
(120) что тебе даст остаток на момент сегодняшней продажи, если возможно на этот момент уже списаны (или не списаны) все завтрашние продажи?
125 zak555
 
16.06.13
21:22
(124) это регистр остатков по факту, может заберут через месяц
смысла дальше выдумывать я не вижу)))
126 Пеппи
 
16.06.13
21:23
(122) скорее всего по периоду нужно соединять )
127 Пеппи
 
16.06.13
21:23
но это я пальцем в небо))
128 zak555
 
16.06.13
21:52
(126) а что же не по моменту *?
129 zak555
 
17.06.13
14:37
разве это оптимально ?



ВЫБРАТЬ
   продажиОбороты.Товар,
   продажиОбороты.Регистратор.МоментВремени,
   продажиОбороты.суммаОборот
ПОМЕСТИТЬ вт
ИЗ
   РегистрНакопления.продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК продажиОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВложенныйЗапрос.Товар,
   ВложенныйЗапрос.РегистраторМоментВремени,
   остаткиОстаткиИОбороты.количествоКонечныйОстаток КАК осталось
ИЗ
   (ВЫБРАТЬ
       вт.Товар КАК Товар,
       вт.РегистраторМоментВремени КАК РегистраторМоментВремени,
       МАКСИМУМ(остаткиОстаткиИОбороты.Период) КАК Период
   ИЗ
       вт КАК вт
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.остатки.ОстаткиИОбороты(&ДатаНач, &ДатаКон , Регистратор, , ) КАК остаткиОстаткиИОбороты
           ПО вт.Товар = остаткиОстаткиИОбороты.Период
               И вт.РегистраторМоментВремени >= остаткиОстаткиИОбороты.Регистратор.МоментВремени
   
   СГРУППИРОВАТЬ ПО
       вт.Товар,
       вт.РегистраторМоментВремени) КАК ВложенныйЗапрос
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.остатки.ОстаткиИОбороты(&ДатаНач, &ДатаКон , Регистратор, , ) КАК остаткиОстаткиИОбороты
       ПО ВложенныйЗапрос.Товар = остаткиОстаткиИОбороты.Товар
           И ВложенныйЗапрос.Период = остаткиОстаткиИОбороты.Период
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший