Имя: Пароль:
1C
1С v8
1.19 Задача. Спец по платформе 8.2
0 Xapac_2
 
05.06.12
13:28
Компания занимается оптовой торговлей. У некоторых товаров могут быть аналоги - другие позиции номенклатуры с теми же потребительскими свойствами ценой(слово не понятное но думаю что "ценой"), причем таких аналогов у товара может быть несколько.
Каждой номенклатурной позиции присваивается уникальный артикул. Считается, что пользователь сам контролирует уникальность артикулов и задает их в ручную.
Закупка товаров отражается документом "Приходная накладная", продажа - "Расходная накладная".
Учет остатков ведется в разрезе складов. В документах "Приходная накладная" и "Расходная накладная" склад только один(реквизит шапки).
Продажи оформляются документом "Расходная накладная". В случае нехватки товара автоматически должен списываться его аналог. В том случае, когда не хватает не только товара но и аналогов, документ не должен проводится. Порядок списания аналогов определяется артикулом. Следует учитывать, что один и тот же товар может являться аналогом для различных номенклатурных позиций.
Себестоимость товаров рассчитывается как средняя по складу.
Необходимо построить отчет по продажам товаров и их аналогов за период.


Вот задача такова. Хочется совета, как ее лучше решать.
пока сделал тз в справочнике "номенклатура". Но попал в тупик, когда появляется следующая ситуация:
ручка (номенклатура)
ручка1(аналог)
ручка2(аналог)
ручка3(аналог)

ручка1 (номенклатура)
ручка(аналог)
ручка2(аналог)
ручка3(аналог)

на складе:
ручка  - 10
ручка1 - 10
ручка2 - 10

в реализации списываем:
ручка - 20
ручка1 - 20
итого спишем ручка 10ть штук
ручка 1 10-ть штук(чтобы списать первую позицию в реализации)
когда дойдем до ручки2 у нас ее уже нет на складе, в таком случае получается нужно проверять остатки после перебора каждой позиции(то есть в цикле) а на экзамене за это бьют по попе.

как быть? или я как - то не верно вообще к делу подошел?
1 Нуф-Нуф
 
05.06.12
13:29
все можно решить ихмо в рамках одного запроса
2 Xapac_2
 
05.06.12
13:29
(1)вот и я хочу, но пока не могу сообразить как.
3 mrd2006
 
05.06.12
13:39
Ты же перебираешь результат запроса в цикла это нормально, а вот если бы запрос делал в цикле другое дело
4 Xapac_2
 
05.06.12
13:43
(3)Ну мне вить нужно получать остатки при переходе на новую позицию(вить ее могла списать предудущая запись). А это уже запрос в цикле. На этом и тормазнулся.
5 Алексей777
 
05.06.12
13:44
(3) т.е. выполнили запрос, а результат его в цикле разбираем? И такая ситуация на экзамене нормальная? (4)Если да, то чем мешает в ТЗ произвести распределение?
6 Алексей777
 
05.06.12
13:45
т.е. сняли остатки, а затем в ТЗ их распределили.
7 Xapac_2
 
05.06.12
13:48
(6)имеете в виду ОстатокРеальный = ОстатокИзЗапроса - ТоЧтоСписалиЭтойНоменклатурыВзятьИзТЗ
?
8 Алексей777
 
05.06.12
13:51
типа того
9 andrey153
 
05.06.12
13:56
10 Xapac_2
 
05.06.12
14:00
(9)Скачал я там самое "лучшее" решение. Эта проблема там не решена.
11 Starhan
 
05.06.12
14:00
(4) Опять ты за свое. "вить" - пишется с большой буквы. А если в том смысле в котором употребляешь ты, то правильно писать - ВЕДЬ
12 Strogg
 
05.06.12
14:01
Какое ТЗ? Справочник один - номенклатура.
Затем создаешь документ - установка аналогов номенклатуры, который будет записывать анные по аналогам в РС. Почему? Да потому, что аналогов может быть пролизвольное количество и сегодня они одни, а на следующий мсесяц - другие. При расчете аналогов используешь один запрос по периодическому РС, где, собсно, выбираешь аналоги. Для контроля остатков используешь остаточный РН, где, собсно, хранишь остатки товаров.
З.В. ГосподиИисусе, хочу сдать спеца по платформе....
13 riv40rus
 
05.06.12
14:04
Зачем периодический регистр? ведь в задании явно не указано хранить периодику
14 Xapac_2
 
05.06.12
14:06
(12)ну так заморачиваться я ведь не успею все задачи решить.
регистр можно сделать не проблема. но не в этом ПРОБЛЕМА.
15 riv40rus
 
05.06.12
14:08
(12) я к тому что можно обычный регистр без периодичности
16 Жан Пердежон
 
05.06.12
14:11
(12) >> Да потому, что аналогов может быть пролизвольное количество и сегодня они одни, а на следующий мсесяц - другие

что еще выдумаешь?
17 Strogg
 
05.06.12
14:13
(15), (16), да заради богов. Написал первое, что взбрело в голову :). Можно и непериодический)))
18 riv40rus
 
05.06.12
14:13
(16) пролизвольное количество и сегодня они одни, а на следующий мсесяц - другие - этого в задании явно нет, поэтому не нужно делать периодический регистр
19 Xapac_2
 
05.06.12
14:14
(16)Еще может быть 100500 уровеней вложенности.
ручка1 аналог ручки
ручка2 аналог ручки1
но у нас не сказано что ручка1 есть аналог ручки

если нет ручки1 и нету ручки то списывать ручку2.

это вить как-то вообще.
20 Кокос
 
05.06.12
14:16
(19) не вижу неразрешимой проблемы.
21 Strogg
 
05.06.12
14:19
(16), кстати, в каком-то 200лохматом году сдавал спеца по Зик7.7 и там тоже писал в ЖР строго как было описано в задаче. Таки препод доколебался, мол, почему сделал так, а не универсализировал...
22 Жан Пердежон
 
05.06.12
14:19
(19) обратное тоже не сказано) да и проблемы тут никакой нет,
в УТ11, кстати, резервы по заказам распределяются также, и в одном запросе всё
23 riv40rus
 
05.06.12
14:27
(19) я думаю тут вложенность до аналогов, т.е. искать у алалога аналог не надо. А по теме списания я бы здесь сделал так:
Получил бы остатки товаров и его аналогов
  Товар 1      50    Списать 100
     Аналог 1  200
     Аналог 2  300  
  Товар 2      0    Списать 200
     Аналог 1  200
(в данном примере Отказ = Истина)
в цикле обхода при списании запоминать сколько списали с текущего товара(например в массиве или ТЗ). При списании последующего товара учитывать количество списанного товара
При списании аналога товара 2 остаток равен 200 - 50, а списать нужно 200
П.С. Одним запросом наверное тут не подгонишь для списания одним обходом
24 riv40rus
 
05.06.12
14:30
(21) согласен, можно придраться к чему угодно.
25 riv40rus
 
05.06.12
14:33
(23) в массиве это я загнул конечно, лучше в ТЗ с колонками Номенклатура, Количество
26 Xapac_2
 
05.06.12
14:44
(25)Думаю так и сделаю
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс