|   |   | 
| 
 | v7: Возврат товара | ☑ | ||
|---|---|---|---|---|
| 0
    
        Nutsa12 31.10.12✎ 14:45 | 
        Здравствуйте. Помогите пожалуйста создать запрос в документе возврат товара. В регистре есть измерения: фирма, товар, контрагент. Ресурсы: ОстатокТовара, ЦенаТовара. 
  Сейчас у меня так: Процедура ОбработкаПроведения() Перем Запрос, ТекстЗапроса,НомСтр,ВыбТовар,ВыбКол; СЗВозврат = СоздатьОбъект("СписокЗначений"); ВыгрузитьТабличнуюЧасть(СЗВозврат, "Товар"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаДок по ДатаДок; |Фирма = Регистр.ОстатокТовара.Фирма; |Товар = Регистр.ОстатокТовара.Товар; |Контрагент = Регистр.ОстатокТовара.Контрагент; |ОстатокТовара = Регистр.ОстатокТовара.ОстатокТовара; |ЦенаТовара = Регистр.ОстатокТовара.ЦенаТовара; |Функция ОстатокТовараКонОст = КонОст(ОстатокТовара); |Группировка Контрагент Без Групп; |Группировка Товар без групп; |Условие(Товар в СЗВозврат); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; ТЗВозврат = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗВозврат); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл НомСтр = 0; Если ТЗВозврат.НайтиЗначение(Товар,НомСтр, "Товар") =1 Тогда ТЗВозврат.ПолучитьСтрокуПоНомеру(НомСтр); ВыбКол=ТЗВозврат.ОстатокТовараКонОст; Если ВыбКол <= Количество Тогда Сообщить(Шаблон("Контрагент [Контрагент] покупал [ВыбКол], а возвращает [Количество]")); СтатусВозврата(0); КонецЕсли; КонецЕсли; КонецЦикла; ВыбратьСтроки(); Пока ПолучитьСтроку()>0 Цикл Если Количество > 0 Тогда Регистр.ОстатокТовара.Контрагент = Контрагент; Регистр.ОстатокТовара.Товар = Товар; Регистр.ОстатокТовара.ОстатокТовара = Количество; Регистр.ОстатокТовара.ЦенаТовара = ЦенаТовара; Регистр.ОстатокТовара.ДвижениеПриходВыполнить(); КонецЕсли; КонецЦикла; КонецПроцедуры И при выводе сообщения выводится общий остаток товара. Как сделать чтобы на одного клиента. Я такая понимаю надо группировку добавить? | |||
| 1
    
        Ёпрст гуру 31.10.12✎ 14:47 | 
        (0) надо весь код выкинуть в топку     | |||
| 2
    
        1Сергей 31.10.12✎ 14:50 | 
        ЦенаТовара в регистре остатков? Это в какой конфе?     | |||
| 3
    
        Ёпрст гуру 31.10.12✎ 14:50 | 
        впрочем, как и забавный регистр с забавными измерениями..тоже в топку.
  И.. если че, остаток, это не "клиентос покупал" | |||
| 4
    
        Попытка1С 31.10.12✎ 14:52 | 
        Без фотки не взлетит.     | |||
| 5
    
        Nutsa12 31.10.12✎ 15:30 | 
        фотка уже была     | |||
| 6
    
        Nutsa12 31.10.12✎ 15:31 | 
        помогите нормальный код написать, пожалуйста     | |||
| 7
    
        Ёпрст гуру 31.10.12✎ 15:33 | 
        (6) Тебе не код надо нормальный писать, а разобраться сперва со структурой хранения данных.
  У тебя нелепый регистр с нелепыми измерениями. | |||
| 8
    
        Voronve 31.10.12✎ 15:35 | 
        (5) Мы не видели "Фотка уже была"     | |||
| 9
    
        Nutsa12 31.10.12✎ 15:55 | 
        (7) вот я и пытаюсь разобраться...
  Это задача примитивная, учебная | |||
| 10
    
        Nutsa12 31.10.12✎ 15:56 | 
        Давайте забудем про код. и начнем с начала :) С чего начать?     | |||
| 11
    
        Ёпрст гуру 31.10.12✎ 15:57 | 
        (10) открыть типовой ТиС и посмотреть там, хотя бы структуру регистров.     | |||
| 12
    
        Ёпрст гуру 31.10.12✎ 16:00 | ||||
| 13
    
        Nutsa12 31.10.12✎ 16:01 | 
        (12) под рукой ничего нет. но я немного понимаю как работать с регистрами     | |||
| 14
    
        Ёпрст гуру 31.10.12✎ 16:03 | ||||
| 15
    
        Ёпрст гуру 31.10.12✎ 16:04 | ||||
| 16
    
        Ёпрст гуру 31.10.12✎ 16:05 | ||||
| 17
    
        Nutsa12 31.10.12✎ 16:08 | 
        спасибо буду разбираться!!!!     | |||
| 18
    
        Nutsa12 01.11.12✎ 06:47 | 
        снова прошу помощи...     | |||
| 19
    
        Гефест 01.11.12✎ 06:55 | 
        плохо просишь, ни фотки, ни вопроса     | |||
| 20
    
        Nutsa12 01.11.12✎ 06:57 | 
        Как сделать чтобы по каждому контрагенту была отдельная сумма по каждому товару?     | |||
| 21
    
        Nutsa12 01.11.12✎ 06:57 | 
        в первой моей теме уже было фото     | |||
| 22
    
        Гефест 01.11.12✎ 07:00 | 
        (20) Даже не знаю, с чего начинать рассказывать
  (21) Ссылка уже не работает | |||
| 23
    
        Nutsa12 01.11.12✎ 07:11 | 
        (22) плохо( Я на работе, фото тут нет     | |||
| 24
    
        Nutsa12 01.11.12✎ 07:13 | 
        начнем с проведения расходной наклодной.Запись в регистр такая:
  ВыбратьСтроки(); Пока ПолучитьСтроку()>0 Цикл Регистр.ОстатокТовара.Товар = Товар; Регистр.ОстатокТовара.Контрагент = Контрагент; Регистр.ОстатокТовара.ЦенаТовара = ЦенаТовара; Регистр.ОстатокТовара.КолТовара = Количество; Регистр.ОстатокТовара.ДвижениеВыполнить(); КонецЦикла; | |||
| 25
    
        Гефест 01.11.12✎ 07:23 | 
        (24) Кошмар. Выбрось этот регистр в топку     | |||
| 26
    
        Nutsa12 01.11.12✎ 07:28 | 
        (25) почему?     | |||
| 27
    
        ЧеловекДуши 01.11.12✎ 07:30 | 
        (24)Опиши народу структуру регистра...
  Если у вас там в качестве измерения Цена, то без фото не взлетит, т.е. ты попала и проблема тут не в коде, а в (7) - попытайся вдуматься в слова Ёпрст4 | |||
| 28
    
        ЧеловекДуши 01.11.12✎ 07:33 | 
        (26)Потому, что:
  1. Цена всегда разная 2. У нас мало данных, что бы тебе подсказать, а телепат утром отдыхает 3. Без фото у тебя не взлетит 4. По остаткам без даты, ты все ровно не сможешь определить, какой товар был продан покупателю, а какой нет 5. При таком регистре, у вас должен быть еще один документ, который должен закрывать сей регистр в 0 "Ноль", т.е. списывать остатки по уже не возвратным позициям. 6.... и т.д. и т.п. - Где фото? | |||
| 29
    
        ЧеловекДуши 01.11.12✎ 07:36 | 
        + Хотя судя по команде "ДвижениеВыполнить", это еще и оборотный регистр :DDDDD
  А какие к черту остатки по оборотному регистру? | |||
| 30
    
        ЧеловекДуши 01.11.12✎ 07:36 | 
        + Увольняйся, 1С, не твой конек :)     | |||
| 31
    
        Nutsa12 01.11.12✎ 07:36 | 
        Регистр остатков: ОстаткиТовара
  Измерения: Контрагент, товар Ресурсы: ЦенаТовара, КолТовара | |||
| 32
    
        Nutsa12 01.11.12✎ 07:37 | 
        я только учусь и пытаюсь разобраться     | |||
| 33
    
        ЧеловекДуши 01.11.12✎ 07:38 | 
        (31)Ты уверена, что остатков?
  И как ты собираешься по остатку отделить возврат от не возврата? | |||
| 34
    
        ЧеловекДуши 01.11.12✎ 07:40 | 
        + Еще на последок:
  Конструкция типа "Запрос = СоздатьОбъект("Запрос");" В модуле проведения не всегда отрабатывает и вообще для быстроты проведения не рекомендуется в модель проведения помещать долгоиграющие запросы. Транзакция, однако. | |||
| 35
    
        Nutsa12 01.11.12✎ 07:43 | 
        Есть документ: ВозвратТовара. 
  В нем реквизит шапки: Контрагент Реквизит табличной части: Товар, Количество, ЦенаТовара Вводятся данные. Если контрагент возвращает количество больше чем было в расходной накладной и по другой цене, выдать сообщение об этом | |||
| 36
    
        ЧеловекДуши 01.11.12✎ 07:43 | 
        + Ну и вообще последнее.
  Так то, при продаже, происходит полное списание остатка со склада в ноль. Т.е. в большинстве случаев вообще нет и не должно быть остатка при заведении возврата. Это в типовой ТиС-е. Так что, если нужно вернуть товар, то просто делай приход, без проверки остатков. | |||
| 37
    
        ЧеловекДуши 01.11.12✎ 07:44 | 
        +(35)Это у вас ваше ноу-хау? Или все же у вас ТиС типовой?     | |||
| 38
    
        ЧеловекДуши 01.11.12✎ 07:44 | 
        + Я про регистр     | |||
| 39
    
        ЧеловекДуши 01.11.12✎ 07:48 | 
        + Так то если добавить некий регистр с измерениями:
  1. Контрагент 2. Товар 3. Дата продажи (типо горантийное) 4. //Ресурсы 1. Сумма за товар, С НДС, что бы не замарачиваться. 2. Количество проданного в базовой единице измерения //Это для того что бы получить после цену То тогда у вас должен быть автомат, или документ, который по истечению срока будет списывать остаток с этого регистра, по истечению возвратного момента. И тем самым у вас будет механизм проверки, а покупал ли этот товар покупатель или нет, и по какой цене :) | |||
| 40
    
        Nutsa12 01.11.12✎ 07:53 | 
        Это просто учебная задача.
  Вы как-то все усложняете :) По сути надо записать данные в регистр, о том кто, что, сколько и по какой цене покупал. А потом при возврате проверить есть ли такое | |||
| 41
    
        ЧеловекДуши 01.11.12✎ 07:54 | 
        (40)Я работаю, мне некогда играться :)     | |||
| 42
    
        ЧеловекДуши 01.11.12✎ 07:55 | 
        +(40)Какой вопрос, такие и ответы, вам туда (15) и по ссылкам.     | |||
| 43
    
        KRV 01.11.12✎ 08:01 | 
        (40) и кто тебе в этом мешает?     | |||
| 44
    
        Bahon 01.11.12✎ 11:31 | 
        Если Выбклиент.Выбран()=1 Тогда
  ТекстЗапроса=ТекстЗапроса+" |Условие(Клиент=Выбклиент) | |||
| 45
    
        Nutsa12 01.11.12✎ 12:00 | 
        (44) Спасиибо!
  Но с задачей я уже справилась по другому | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |