Вход | Регистрация


1С:Предприятие ::

Метки:

Товар/Тара, но надо только долг по товару

Я
   a_aladdin
 
12.03.04 - 13:19
Всем привет. Есть комплексная конф.(4.4),Номенклатура - Товар и Тара(ящики)(тара оборотная, стоит денег, но долги по ней покупателей только количественные). Когда делается расход.накл., набивается соответственно товар и его тара.
Менеджерам нужно знать, скоко покупатели должны по товару.
Реализовать это получилось (у меня) токо след. методом - сначала запрос по рег. ПОКУПАТЕЛИ, потом запрос по рег.ПартииНаличие с поиском тары ну и далее  по результатам обоих запросов - вычисляется долг по товару и по таре раздельно.
НО ЭТО ОЧЕНЬ долго, т.к. приходится перебирать все док. с начала базы.
Кто-нибудь может предложить способ получше?
 
 
   It is me
 
1 - 12.03.04 - 14:14
Заведи регистр, аналогичный покупателям и храни там только товар...
   a_aladdin
 
2 - 12.03.04 - 15:44
я уже думал об этом, но как быть с теми документами, которые уже введены?
перепровести все я не могу
   AlexMan
 
3 - 12.03.04 - 16:26
(0) Я наверное не понял чегото но почему нельзя долг покупателя взять как:  СводныйОстаток(,)???
   AlexMan
 
4 - 12.03.04 - 16:26
(0) Я наверное не понял чегото но почему нельзя долг покупателя взять как:  СводныйОстаток(,)???
   a_aladdin
 
5 - 12.03.04 - 18:44
а что же тогда указать в измерениях?
не получится..  :(
   skunk
 
6 - 12.03.04 - 19:17
(5)контрагента
   AlexMan
 
7 - 12.03.04 - 19:18
В измерениях указать Контрагента и применять СводныйОстаток(,) к регистру ПОКУПАТЕЛИ а по таре сделать отдельный регистр , перепровести всю базу и ты в ШОКОЛАДЕ.....
   a_aladdin
 
8 - 12.03.04 - 19:34
(7)Че-то я запутался..
- то СводныйОстаток, то новый регистр
Если мог новый регистр создать, зачем тогда этот СводныйОстаток нужен - все бы из запроса вытаскивал.

Перепровести базу не могу - только с начала этого года

(6)  нету там такого измерения - Контрагент
Договор есть, можно через него до контрагента добраться, но тары-то своей я все-равно не получу-токо долг общий (СуммаРуб)
   skunk
 
9 - 12.03.04 - 19:39
тогда я не понял, что ты спрашивал в (5)
   AlexMan
 
10 - 12.03.04 - 19:50
(8) Насчет регистра нового погоречился ,вспылил вобщем исправлюсь...
долг по товарам:
Конт=Регистр.Покупатели.Договор.Родитель
Долг=Регистр.Покупатели.Сумма
Должок=КонОст(Долг)
долг по таре: в регистре есть ресурс типа Справочник.Номенклатура?
 
  Рекламное место пустует
   AlexMan
 
11 - 12.03.04 - 19:51
(8) Что является признаком тары? как ты ее в регистре отличаеш?
   a_aladdin
 
12 - 12.03.04 - 19:55
(9) AlexMAn предложил СводныйОстаток(), я подумал, что мож че-то я не до конца в нем понимаю
а он вишь - "отдельный регистр" :)

Думаю теперь - создам все-таки этот регистр под тару и как-нибудь с начала этого года к примеру надо будет прогнать  через него остатки долгов по таре - искуственно двинуть регистры по каждому покупателю. И документам соответствующим прописать его двигать..
   AlexMan
 
13 - 12.03.04 - 19:59
(12) читай (10) и (11)
   a_aladdin
 
14 - 12.03.04 - 20:05
(13) - не увидел вовремя (10,11 извини)
(10)нету номенклатуры (Комплексная 4.4) - в этом трабла
почему       Конт=Регистр.Покупатели.Договор.Родитель
я всегда думал Конт=Регистр.Покупатели.Договор.Владелец

(11) Признак тары - Перечисление.ВидыНоменклатуры.Тара
либо Товар (там же еще и материалы - тупо сделано, ноэто так = к слову)
и еще есть рекизит свой (остался со старых времен)Тара=1 или Тара=0
   a_aladdin
 
15 - 12.03.04 - 20:07
+(10) Должок- будет долг товар+тара
   AlexMan
 
16 - 12.03.04 - 20:10
(14) действительно Владелец (конец рабочей недели сам понимаеш)
а из регистра ПартииНаличие ти инфу только по таре береш?
   a_aladdin
 
17 - 12.03.04 - 20:16
(16)инфу по таре с доками, потом ищу эти доки в первом запросе и разделяю долги

...говорят в восьмерке наконец-то предусмотрели что-то вроде подобных оборотных вещей,но мне от этого не легче...
   AlexMan
 
18 - 12.03.04 - 20:18
Я счас отойти должен буду позже .... короче если я все правильно понял из Рег Покупатели ты береш инфу : долг по товарам а из Рег Партии береш инфу :  долг по таре если это так тогда вроде знаю как решить проблему.......
   a_aladdin
 
19 - 12.03.04 - 20:24
да,  все прально
токо из рег Покупатели я беру ОБЩИЙ долг по клиенту с
группировкой по докам, ну и потом эти доки ищу в запросе по ПаРТИИНаличие и т .д.
Буду ждать - тогда я щас тоже отваливаю, утром почитаю, че предложишь
   AlexMan
 
20 - 12.03.04 - 23:40
Блин вроде я понял в чем трабл.... трабл в том что у тебя в регистре  ПартииНаличные тип значения реквизита МПЗ (или Номенклатура или еще как) "Справочник" т.е. не указано какой конкретно ... (у меня нет под рукой компл 4_4). так вот если ты пишеш в запросе например:
ПризнакТары=Регистр.ПартииНаличные.МПЗ.Тара
то запрос не выполняется (выдается ошибка не верно указанного пути)
Надо здесь использовать ВНЕШНЮЮ ФУНКЦИЮ  чтото вроде:
Номенклатурка=Регистр.ПартииНаличные.МПЗ
КолТары=Регистр.ПартииНаличные.Количество
Фунуция Кол=КонОст(ВзятьНеВзятьКоличество(Номенклатурка,КолТары))  
т.е. во внешнюю функцию посылаем саму номенклатуру (в общем случае это может быть и материал и что угодно) и количество которое в случае если номенклатура оказалась тарой можно вернуть вот и осталось только написать ПРИМЕРНЫЙ код функции:
Функция ВзятьНеВзятьКоличество(Ном,Кол)
результат=0;
Если Ном.Вид()="Номенклатура" Тогда
Если Ном.Тара=1 Тогда
результат=Кол;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
в этом примере всю базу шерстить не надо достаточно взять в качестве начала и конца запроса РабочаяДата() или ТекущийДокумент() если в документе расчитываеш
ну вроде все ....
P.S. возможно (скорей всего так оно и есть) мой ответ не точен но я думаю он натолкнет тебя на правильную мысль (добовлять новый регистр крайний случай)
   a_aladdin
 
21 - 13.03.04 - 11:17
(20) ПартииНаличие, Измерение Номенклатура = Справочник.Номенклатура (другого и быть и не может - товар, материалы и тары - все запихано в этот справочник)
Я что-то типа этого и делаю, только (как теперь понимаешь для этого внешняя функция не нужна) - тут много способов, я делая через статус партии (есть там такое измерение):
|Функция Увел_Тары = Расход(Сум_тар) когда((Опер = глКО.Продажа) и (Статус = глСП.Т_Тара));
|Функция Увел_Кол = Расход(Кол_Тара) когда((Опер = глКО.Продажа) и (Статус = глСП.Т_Тара));
|Функция Уменьш_Тары = Приход(Сум_тар) когда((Опер = глКО.ВозвратОтПокупателя) и (Статус = глСП.Т_Тара));
|Функция Уменьш_Кол = Приход(Кол_Тара)когда(((Опер = глКО.ВозвратОтПокупателя) и (Статус = глСП.Т_Тара));

"в этом примере всю базу шерстить не надо достаточно взять в качестве начала и конца запроса РабочаяДата() или ТекущийДокумент() если в документе расчитываеш
ну вроде все .... "
- не догоняю опять - Мне нужно получить долг по таре конкретного клиента. Что мне даст РабочаяДата()? Мне же нужно в документы залезть, которые увеличивали и уменьшали остатки по таре.
Или я че-то не понял по (20)?
   AlexMan
 
22 - 15.03.04 - 10:01
Если все так как ты пишеш в (21) тогда зачем в запросе : Расход() Приход()?????? кстате фунункции вычисляются за период с начала базы как я понял а почему бы не испорльзовать КонОст() для этой функции Дата начала запроса не важна и можно запросто использовать только РабочаяДата()...
Зачем "лесть" в документы движения по таре не пишутся чтоли в регистры? если не пишутся тогда быстрей чем у тебя написан запрос ты врятли что то придумаеш...



Список тем форума
  Рекламное место пустует
Прочитай, хотя бы, Митичкина "Разработка в системе 1С:Предприятие 8". Волшебник
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует