|   |   | 
| 
 | v7: Изменение ТЧ документа. Не меняет | ☑ | ||
|---|---|---|---|---|
| 0
    
        AntiBuh 23.03.12✎ 08:09 | 
        Программно меняю реквизиты ТЧ части документа
  ДВижения формируются по новым реквизитам При открытии формы документа - всё старое в чем может быть проблема? | |||
| 1
    
        Irbis 23.03.12✎ 08:10 | 
        В чём угодно, даже в ДНК.     | |||
| 2
    
        Wobland 23.03.12✎ 08:12 | 
        (0) телепатирую. при записи документ куда-то сохраняет старые данные, а при открытии достаёт их и подставляет в себя обратно     | |||
| 3
    
        AntiBuh 23.03.12✎ 08:16 | 
        (2) так док записывается, проводится
  движения уже с новыми реквизитами | |||
| 4
    
        Wobland 23.03.12✎ 08:18 | 
        (3) я не возражаю. технически возможен вариант подстановки старых данных при открытии. в угадайку больше играть не хочу     | |||
| 5
    
        AntiBuh 23.03.12✎ 08:31 | 
        какую инфу сообщить чтоб с телепатией не заморачиваться?     | |||
| 6
    
        dk 23.03.12✎ 08:32 | 
        (0) отладчик твой друг и товарищ?
  а так же docprint.ert | |||
| 7
    
        AntiBuh 23.03.12✎ 08:44 | 
        отладчик кажет годно - новые реквизиты, и после записи, и после проведения
  а докпринт - старые | |||
| 8
    
        Ёпрст гуру 23.03.12✎ 08:50 | 
        и всё это поди в незакрытой транзакции     | |||
| 9
    
        AntiBuh 23.03.12✎ 08:53 | 
        вроде закрывается
  после транзакции отладчик тоже годно кажет да и транзакцию пробовал убирать - один хрен | |||
| 10
    
        Ёпрст гуру 23.03.12✎ 08:56 | 
        :)     | |||
| 11
    
        AntiBuh 23.03.12✎ 09:06 | 
        ага
  мне тоже смешно | |||
| 12
    
        Ёпрст гуру 23.03.12✎ 09:07 | 
        нам отсюда не видно, как ты "программно" меняешь реквизиты документа     | |||
| 13
    
        AntiBuh 23.03.12✎ 09:10 | 
        примерно так
  Док.ПолучитьСтрокуПоНомеру(стр); Док.Цена = ЦенаНовая; Док.Сумма = Док.Цена * Док.Количество; Док.Записать(); Док.Провести(); | |||
| 14
    
        Ёпрст гуру 23.03.12✎ 09:13 | 
        и ? где тут транзакция в коде ?     | |||
| 15
    
        alxxsssar 23.03.12✎ 09:13 | 
        (0) может есть какой-нибудь реквизит вроде типа цен и при открытии документ его считывает, считывает цену согласно типа и пересчитывает и суммы в соответствии с этой ценой     | |||
| 16
    
        Ёпрст гуру 23.03.12✎ 09:24 | 
        (15) врят ли - он же докпринтом проверяет потом.
  тут 99% - (8) | |||
| 17
    
        AntiBuh 23.03.12✎ 09:24 | 
        (14) да не в транзакции дело, пробовал и без нее
  а так - тоже самое, но с НАчать... Зафиксировать... | |||
| 18
    
        AntiBuh 23.03.12✎ 09:27 | 
        (16) даже если предположить что так, движения то документа с измененными реквизитами     | |||
| 19
    
        ale-sarin 23.03.12✎ 09:28 | 
        (16) ПОчему вряд ли? Докпринтом проверяет после своего изменения, а при следующем открытии, возможно, изменяется.
  Ведь после повторного открытия и записи никто проводки не проверял? | |||
| 20
    
        alxxsssar 23.03.12✎ 09:28 | 
        (16) а при чем здесь докпринт? он же не открывает документы интерактивно, а такая вещь может в "ПриОткрытии" быть зашита     | |||
| 21
    
        ale-sarin 23.03.12✎ 09:29 | 
        Думаю, надо при открытии смотреть.     | |||
| 22
    
        alxxsssar 23.03.12✎ 09:30 | 
        (16) вот он и делает движения верные, а при следующем открытии перерассчитывает документ. Попробовать закрыть не сохраняя изменения и посмотреть проводки ис-под журнала     | |||
| 23
    
        Ёпрст гуру 23.03.12✎ 09:32 | 
        (19,20)  ну вы п..ц просто :
  docprint.ert смотрит ЗАПИСАННЫЙ документ - если там старые реквизиты - то поделка автора не записывает НИЧЕГО При чем тут ПриОткрытии вообще ?! | |||
| 24
    
        ale-sarin 23.03.12✎ 09:33 | 
        (23) а-а-а, не понял я. думал, что докпринт новые данные показывает. Тогда правда не записывает.     | |||
| 25
    
        ale-sarin 23.03.12✎ 09:34 | 
        (23) и... не ругайся.     | |||
| 26
    
        alxxsssar 23.03.12✎ 09:34 | 
        (23) смотри, чел изменил ТЧ, записал, провел, документ сохранился, посдле этого смотрит докпринт - тот показывает нормуль, потому что документ еще изменен, потом открывает форму и только в этот момент документ перерассчитывается. в момент докпринта реквизиты то новые и все норм.     | |||
| 27
    
        Ёпрст гуру 23.03.12✎ 09:34 | 
        (24) хотя, хрен знает где автор свой код выполняет - во внешней обработке или в самой форме документа.. :)))     | |||
| 28
    
        ale-sarin 23.03.12✎ 09:35 | 
        А может надо ДокЖЖЖ = СоздатьОбъект("Документ"), а потом ДокЖЖЖ.НайтиДОкумент(Док.ТекущийДокумент())?
  Чем черт не шутит. Это так на всякий случай. | |||
| 29
    
        alxxsssar 23.03.12✎ 09:36 | 
        (27) сорри не заметил что докпринт тоже старые данные показывает     | |||
| 30
    
        AntiBuh 23.03.12✎ 09:43 | 
        (27) код во внешней обработке
  (28) Док через выборку получается, естественно Док = СоздатьОбъект | |||
| 31
    
        ale-sarin 23.03.12✎ 09:45 | 
        (30) Ну вот и смотри(28).     | |||
| 32
    
        Ёпрст гуру 23.03.12✎ 09:45 | 
        видать в коде нет Записать() а есть тока Провести()     | |||
| 33
    
        ale-sarin 23.03.12✎ 09:46 | 
        +(31) Если Док - это выборка. То отдельно надо объект получить для изменения = ДокОбъект.НайтиДОкумент(Док.ТекущийДокумент())     | |||
| 34
    
        Ёпрст гуру 23.03.12✎ 09:46 | 
        ну , пока кода нет, можно еще поугадывать в чем затупил ТС     | |||
| 35
    
        Ёпрст гуру 23.03.12✎ 09:46 | 
        (33) :)))))))))))))))))
  сам этот бред придумал, али подсказал кто ? | |||
| 36
    
        Ёпрст гуру 23.03.12✎ 09:47 | 
        если дата документа не меняется - выборка не сбивается     | |||
| 37
    
        ale-sarin 23.03.12✎ 09:48 | 
        (35) У тебя другое мнение? Попробуй изменить документ: 
  Док = СоздатьОБъект(Документ.Акт); Док.ВыбратьДокументы() Пока ДОк.ПолучитьДокумент() = 1 Цикл Док.Номер = "333"; Док.Записать(); КонецЦикла; Вопрос: даст изменить? | |||
| 38
    
        ale-sarin 23.03.12✎ 09:49 | 
        +(37)Док = СоздатьОБъект("Документ.Акт");     | |||
| 39
    
        Ёпрст гуру 23.03.12✎ 09:53 | 
        (37) Ты откуда вообще вылез то ?
  Конечно даст | |||
| 40
    
        Ёпрст гуру 23.03.12✎ 09:54 | 
        выборка по документам сбивается только при изменении даты     | |||
| 41
    
        ale-sarin 23.03.12✎ 09:54 | 
        (39) Оттуда, от откуда и ты. Проверил?     | |||
| 42
    
        alxxsssar 23.03.12✎ 09:54 | 
        (38) а тот же докпринт не может быть дописанным? если отладчик нормальные реквизиты после проведения дока показывает?     | |||
| 43
    
        AntiBuh 23.03.12✎ 09:55 | 
        (36) а если время?
  в принципе там всего один документ (37) а, типа в шапке чтото изменить? | |||
| 44
    
        Ёпрст гуру 23.03.12✎ 09:55 | 
        (41) Зачем? Я и так это всё знаю, а проверял еще лет 10 назад     | |||
| 45
    
        Эльниньо 23.03.12✎ 09:56 | 
        Пятница     | |||
| 46
    
        AntiBuh 23.03.12✎ 10:01 | 
        (45) 146%
  не изменяется ничего пичалька | |||
| 47
    
        Ёпрст гуру 23.03.12✎ 10:03 | 
        (46) код своей поделки покажешь весь или и дальше будешь пичалиться ?     | |||
| 48
    
        ale-sarin 23.03.12✎ 10:03 | 
        Ого. Блин, и правда работает.
  Че-то я не понял. А бывало, что не работало. Приходилось писать: Док = СоздатьОБъект("Документ.Акт"); ДокОб = СоздатьОБъект("Документ"); Док.ВыбратьДокументы() Пока ДОк.ПолучитьДокумент() = 1 Цикл ДокОб.НайтиДокумент(Док.ТекущийДокумент()); ДокОб.Номер = "333"; ДокОб.Записать(); КонецЦикла; Ладно. Согласен, что затупил в этот раз. Но дело точно такое бывало. И только у меня. ТИпа справочники в цикле изменяли, а доки - нет. | |||
| 49
    
        Tymoha 23.03.12✎ 10:04 | 
        (46) так как в (7) - не бывает ... что-то не договариваешь ...     | |||
| 50
    
        Tymoha 23.03.12✎ 10:05 | 
        +(49) ставлю на то, что изменения откатываются взад при проведении ... ))))     | |||
| 51
    
        ale-sarin 23.03.12✎ 10:05 | 
        +(48) "И только у меня" =  "И НЕ только у меня. "     | |||
| 52
    
        alxxsssar 23.03.12✎ 10:09 | 
        (50) а как они могут откатываться? реквизиты то новые уже записаны     | |||
| 53
    
        Tymoha 23.03.12✎ 10:15 | 
        (52) перезаписываются ...     | |||
| 54
    
        alxxsssar 23.03.12✎ 10:15 | 
        (53) имею в виду откуда старые значения возьмутся?     | |||
| 55
    
        Tymoha 23.03.12✎ 10:18 | 
        (54) та хз ... анализируй обработку проведения ...     | |||
| 56
    
        alxxsssar 23.03.12✎ 10:21 | 
        (55) была бы она у меня... ветка то не моя)))     | |||
| 57
    
        Tymoha 23.03.12✎ 10:25 | 
        (56) а ну да ... пардоньте ))) хотя .... судя по имени ТС - точно бухи прячуть, а потом достают из засады ... вот ))))     | |||
| 58
    
        AntiBuh 23.03.12✎ 10:31 | 
        выборка движений регистра по данному документу может повлиять?     | |||
| 59
    
        Ёпрст гуру 23.03.12✎ 10:34 | 
        (58) если смотреть сверху -  то сбоку кажется, что снизу ничего не видно ©...     | |||
| 60
    
        alxxsssar 23.03.12✎ 10:37 | 
        да вряд ли, документ то сам не трогается     | |||
| 61
    
        Irbis 23.03.12✎ 10:42 | 
        (58) Могут, если после удара бейсбольной битой по голове у тебя шнурки развязываются.     | |||
| 62
    
        Tymoha 23.03.12✎ 10:42 | 
        (58) поскольку речь идет о ценах ... смею предположить, что речь будет идти или о периодике или об отдельном справочнике с ценами ... но это чистый дедуктивный метод ... )))     | |||
| 63
    
        AntiBuh 23.03.12✎ 10:49 | 
        вот и я думаю что не причем
  но ощущение что реквизиты дока блокируются от изменения причем все | |||
| 64
    
        alxxsssar 23.03.12✎ 10:50 | 
        (62) я выше писал что возможно есть типы цен, а это как раз и предполагает отдельный или справочник или регистр     | |||
| 65
    
        Ёпрст гуру 23.03.12✎ 10:50 | 
        (63) код покажешь али так и будешь ломаться как ц..а ?     | |||
| 66
    
        AntiBuh 23.03.12✎ 11:11 | 
        вот так:
  
  | |||
| 67
    
        AntiBuh 23.03.12✎ 11:12 | 
        КонецЦикла     | |||
| 68
    
        Ёпрст гуру 23.03.12✎ 11:12 | 
        (66) покажи весь код     | |||
| 69
    
        zak555 23.03.12✎ 11:12 | 
        (66) сначала умножаем, потом делим     | |||
| 70
    
        Ёпрст гуру 23.03.12✎ 11:13 | 
        хотя не надо .. и так виден бред сразу     | |||
| 71
    
        AntiBuh 23.03.12✎ 11:14 | 
        (70) ткни носом     | |||
| 72
    
        Ёпрст гуру 23.03.12✎ 11:15 | 
        (71) ну для начала вот это :
  стр = рег.НомерСтроки(); Док.ПолучитьСтрокуПоНомеру(стр); | |||
| 73
    
        Ёпрст гуру 23.03.12✎ 11:16 | 
        Уверен, что есть привязка строки в регистре ?     | |||
| 74
    
        Ёпрст гуру 23.03.12✎ 11:17 | 
        //Рег.ВыбратьДвиженияДокумента(Док);
  Рег.ВыбратьДвиженияДокумента(Док.ТекущийДокумент()); | |||
| 75
    
        Ёпрст гуру 23.03.12✎ 11:17 | 
        Нахрена там ТЗ уперлаь для этого кода ?!     | |||
| 76
    
        Tymoha 23.03.12✎ 11:18 | 
        (73) ну ведь было же заявлено что отладчик после записи показывает нужный вариант )))     | |||
| 77
    
        AntiBuh 23.03.12✎ 11:18 | 
        (72) а как надо?     | |||
| 78
    
        Ёпрст гуру 23.03.12✎ 11:19 | 
        потом, нужно делать так:
  Док.Сумма = Рег.СуммаРуб; глПересчетТабЧасти(Док,"Сумма").. | |||
| 79
    
        Ёпрст гуру 23.03.12✎ 11:19 | 
        И.. больше кода - т.е весь целиком     | |||
| 80
    
        AntiBuh 23.03.12✎ 11:19 | 
        (73) уверен
  (74) пробовал, всё так же (75) тз используется еще в другом месте | |||
| 81
    
        Ёпрст гуру 23.03.12✎ 11:19 | 
        Нам отсюда не видно твоей незавершенной транзакции     | |||
| 82
    
        Ёпрст гуру 23.03.12✎ 11:22 | 
        И СуммаРуб - это ресурс ПартииНаличие, там номер строки не привязывается + если автоподбор партий - то может быть несколько строк с одной номенклатурой и разными партиями, т.е весь код в (66) в топку.     | |||
| 83
    
        Ёпрст гуру 23.03.12✎ 11:23 | 
        че пытался делать автор и так понятно - продать товар по себестоимости, которая на тот момент есть в регистре, токма сделал всё это через ж..у , еще и код не хочет показывать     | |||
| 84
    
        Ёпрст гуру 23.03.12✎ 11:24 | 
        даже, если строки и привязываются - еще хуже при данном коде     | |||
| 85
    
        AntiBuh 23.03.12✎ 11:24 | 
        (78) Док.Сумма может не соответствовать Рег.СуммаРуб
  этот регистр останется без изменений, содержимое ТЧ влияет на другой (79) да нет больше ничего | |||
| 86
    
        AntiBuh 23.03.12✎ 11:28 | 
        (82) да может быть несколько, но выбирается одна     | |||
| 87
    
        AntiBuh 23.03.12✎ 11:29 | 
        в данном случае партия одна     | |||
| 88
    
        Ёпрст гуру 23.03.12✎ 11:30 | 
        (85) :)
  ты не поверишь - и на этот тоже - изменятся реквизиты регистра. А код не весь, не ври Хотя пофик - он и так идеологически не верный. Нужно сворачивать движуху регистра по номенклатуре сперва - потом уже изменять СУММУ (а не цену документа) И у тебя один фиг - незавершенная транзакция в коде. которую ты до сих пор не показал. | |||
| 89
    
        zak555 23.03.12✎ 11:30 | 
        (80) > (73) уверен 
  в курсе, что одна стока может породить несколько движений ?! | |||
| 90
    
        AntiBuh 23.03.12✎ 11:31 | 
        (83) да, смысл примерно такой
  для расчета цены берется последняя партия по конкретной номенклатуре | |||
| 91
    
        AntiBuh 23.03.12✎ 11:32 | 
        нет транзакции     | |||
| 92
    
        Ёпрст гуру 23.03.12✎ 11:34 | 
        (90) это не верно, нет понятия цены - всегда нужно опперировать понятием сумма
  (91) есть, покажи весь код целиком | |||
| 93
    
        Ёпрст гуру 23.03.12✎ 11:36 | 
        + если это типовой Тис, то как минимум, ты не установил новую СуммВзаиморасчетов - тоже болт в регистрах     | |||
| 94
    
        Ёпрст гуру 23.03.12✎ 11:37 | 
        в общем,  один сплошной косяк.
  ЗЫ: покажи весь код целиком | |||
| 95
    
        AntiBuh 23.03.12✎ 12:06 | 
        (93) док не реализация, а переделка Перемещения     | |||
| 96
    
        AntiBuh 23.03.12✎ 12:07 | 
        Регистр ПартииНаличие не изменяется     | |||
| 97
    
        Ёпрст гуру 23.03.12✎ 12:09 | 
        (96) че правда ?!
  И давно это у нас в перемещении появилась сумма ? Али это перемещение в розницу ? | |||
| 98
    
        Ёпрст гуру 23.03.12✎ 12:12 | 
        и если что ПродСтоимость меняется в регистре при перемещении в розницу     | |||
| 99
    
        AntiBuh 23.03.12✎ 12:12 | 
        (97) да в розницу     | |||
| 100
    
        Ёпрст гуру 23.03.12✎ 12:12 | 
        Сотка
  и .. весь код показывай.. :) | |||
| 101
    
        AntiBuh 23.03.12✎ 12:15 | 
        да нечего больше показывать
  там несколько условий на выборку и всё транзакций нет, если только они из каментов конечно как-нибудь вылазят | |||
| 102
    
        zak555 23.03.12✎ 12:21 | 
        секретный код     | |||
| 103
    
        AntiBuh 23.03.12✎ 12:23 | 
        да ничего секретного
  все выдал как есть убрал пару условий и срач коментариев | |||
| 104
    
        Ёпрст гуру 23.03.12✎ 12:27 | 
        Как проверяешь
  1. что движения в регистре привязаны и привязка соответствует тому, что в табличной части дока ? 2. как проверяешь, что документ не записался ? | |||
| 105
    
        AntiBuh 23.03.12✎ 12:36 | 
        (104) не совсем понял вопрос     | |||
| 106
    
        AntiBuh 23.03.12✎ 12:38 | 
        Движения ПартииНиличие привязываются к строкам, это при проведении задано
  а проверка записи документа Попытка Док.Записать(); Исключение Сообщить("Ошибка записи"); Сообщить(ОписаниеОшибки()); КонецПопытки; Попытка Док.Провести(); Исключение Сообщить("Ошибка проведения"); Сообщить(ОписаниеОшибки()); КонецПопытки; | |||
| 107
    
        Ёпрст гуру 23.03.12✎ 12:40 | 
        Процедура сформировать()
  Док= создатьОбъект("Документ.ПеремещениеТМЦ"); Рег = СоздатьОбъект("Регистр.ПартииНаличие"); ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Номенклатура"); ТЗ.НоваяКолонка("Сумма"); Док.УстановитьФильтр(1,0); Док.ВыбратьДокументы(НачДата, КонДата); Пока Док.ПолучитьДокумент() = 1 Цикл Если Док.Склад.РозничныйСклад+Док.СкладПолучатель.РозничныйСклад = 0 Тогда Продолжить; КонецЕсли; Рег.ВыбратьДвиженияДокумента(Док.ТекущийДокмент); Пока Рег.ПолучитьДвижение() = 1 Цикл Если Рег.Приход = 1 Тогда Продолжить; КонецЕсли; ТЗ.НоваяСтрока(); ТЗ.Номенклатура = Рег.Номенклатура; ТЗ.Сумма = Рег.СуммаРуб; КонецЦикла; ТЗ.Свернуть("Номенклатура","Сумма"); Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку()=1 Цикл сч=""; Если ТЗ.НайтиЗначение(Док.Номенклатура,Сч,"Номенклатура")=1 Тогда Док.Сумма = ТЗ.ПолучитьтЗначение(сч,"Сумма"); глПересчетТаблЧасти(Док,"Сумма"); КонецЕсли; КонецЦикла; Док.Записать(); Док.ПАровести(); КонецЦикла; КонецПроцедуры наслаждайся док.Записать(); док.Провести(); | |||
| 108
    
        Ёпрст гуру 23.03.12✎ 12:41 | 
        (106) это п..ц а не проверка..
  :) | |||
| 109
    
        Ёпрст гуру 23.03.12✎ 12:42 | 
        вот подправил..
  Процедура сформировать() Док= создатьОбъект("Документ.ПеремещениеТМЦ"); Рег = СоздатьОбъект("Регистр.ПартииНаличие"); ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Номенклатура"); ТЗ.НоваяКолонка("Сумма"); Док.УстановитьФильтр(1,0); Док.ВыбратьДокументы(НачДата, КонДата); Пока Док.ПолучитьДокумент() = 1 Цикл Если Док.Склад.РозничныйСклад+Док.СкладПолучатель.РозничныйСклад = 0 Тогда Продолжить; КонецЕсли; ТЗ.УдалитьСтроки(); Рег.ВыбратьДвиженияДокумента(Док.ТекущийДокмент); Пока Рег.ПолучитьДвижение() = 1 Цикл Если Рег.Приход = 1 Тогда Продолжить; КонецЕсли; ТЗ.НоваяСтрока(); ТЗ.Номенклатура = Рег.Номенклатура; ТЗ.Сумма = Рег.СуммаРуб; КонецЦикла; ТЗ.Свернуть("Номенклатура","Сумма"); Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку()=1 Цикл сч=""; Если ТЗ.НайтиЗначение(Док.Номенклатура,Сч,"Номенклатура")=1 Тогда Док.Сумма = ТЗ.ПолучитьтЗначение(сч,"Сумма"); глПересчетТаблЧасти(Док,"Сумма"); КонецЕсли; КонецЦикла; Док.Записать(); Док.Провести(); КонецЦикла; КонецПроцедуры | |||
| 110
    
        Ёпрст гуру 23.03.12✎ 12:43 | 
        ну и синтаксис там сам исправишь - мне лень.     | |||
| 111
    
        AntiBuh 23.03.12✎ 12:48 | 
        Спасибо
  т.е. получается через ПолучитьСТрокуПоНомеру() не выйдет и нужен перебор ТЧ | |||
| 112
    
        Ёпрст гуру 23.03.12✎ 12:49 | 
        (111) ты не догоняешь - в регистре может быть 20 строк с одинаковой номенклатурой и разных партий.     | |||
| 113
    
        AntiBuh 23.03.12✎ 12:51 | 
        (112) Понимаю, нужную строку я найду и выберу партию что мне нужна     | |||
| 114
    
        Ёпрст гуру 23.03.12✎ 12:53 | 
        (113) ?
  какая из 20-ти будет нужная ? | |||
| 115
    
        AntiBuh 23.03.12✎ 12:56 | 
        (114) та которую укажет бух
  может приход в определенную дату, может с опреденным ВхНомером но скорее всего последняя из списываемых партий | |||
| 116
    
        Ёпрст гуру 23.03.12✎ 12:58 | 
        (115) и как твоя поделка узнает об этом, когда ты в цикле перебираешь документы ?     | |||
| 117
    
        AntiBuh 23.03.12✎ 13:03 | 
        (116) типа из регистра нельзя получить инфу о документе прихода
  Пока Рег.ПолучитьДвижение() = 1 Цикл Если Рег.Приход = 1 Тогда Продолжить; КонецЕсли; ТЗ.НоваяСтрока(); ПрихДокумент = Рег.Партия.ПриходныйДокумент; ТЗ.Номенклатура = Рег.Номенклатура; ТЗ.Сумма = Рег.СуммаРуб; КонецЦикла; | |||
| 118
    
        Ёпрст гуру 23.03.12✎ 13:22 | 
        (117) чудак человек.
  Как ты слова буха будешь превращать в действия ? будешь делать таблицу соответствия для каждой номенклатуры ? Для каждого документа ? | |||
| 119
    
        AntiBuh 23.03.12✎ 13:40 | 
        (118) скорее всего нужна будет последняя партия из набора партий
  это третье дело | |||
| 120
    
        Ёпрст гуру 23.03.12✎ 13:43 | 
        (119) что значит последня ?     | |||
| 121
    
        AntiBuh 23.03.12✎ 13:47 | 
        Последняя попавшая в документ по данной позиции номенклатуры     | |||
| 122
    
        AntiBuh 23.03.12✎ 13:50 | 
        короче проблему с незаписью реквизитов решил
  как - говорить не буду - стыдно | |||
| 123
    
        Ёпрст гуру 23.03.12✎ 13:51 | 
        (122) это, еще сыграем в угадайку на 100 постов ?
  :) колись давай, нам всем за тебя стыдно | |||
| 124
    
        AntiBuh 23.03.12✎ 13:53 | 
        (123) :))))     | |||
| 125
    
        AntiBuh 23.03.12✎ 13:54 | 
        СделатьНеПроведенным() слегка не вовремя :)     | |||
| 126
    
        Ёпрст гуру 23.03.12✎ 13:56 | 
        (125) ну ёпт, грили же тебе - больше кода     | |||
| 127
    
        AntiBuh 23.03.12✎ 14:01 | 
        зато пятница удалась     | |||
| 128
    
        Tymoha 23.03.12✎ 14:03 | 
        (125) хммм .... ну и как это коррелирует с заявлением "в отладчике при записи все гуд"???     | |||
| 129
    
        viktor_vv 23.03.12✎ 14:06 | 
        Ну наконец-то :). Правда я тоже не понял как СделатьНеПроведенным повлияло на незапись документа.     | |||
| 130
    
        AntiBuh 23.03.12✎ 14:09 | 
        (128)потому что "не вовремя"
  попробуй такую последовательность заполняется реквизит, Распроводится, Записывается, Проводится | |||
| 131
    
        Ёпрст гуру 23.03.12✎ 14:11 | 
        (129) при переборе движений в цикл не заходило, таб часть дока не менялась     | |||
| 132
    
        Tymoha 23.03.12✎ 14:13 | 
        (131) ТС утверждал, что в момент записи отладчик показывал результат, нужный ТС ... КАК????     | |||
| 133
    
        AntiBuh 23.03.12✎ 14:14 | 
        (132) и продолжаю утверждать, так и было     | |||
| 134
    
        Ёпрст гуру 23.03.12✎ 14:22 | 
        (132) я хз, код то свой он так и не показал весь целиком     | |||
| 135
    
        viktor_vv 23.03.12✎ 14:22 | 
        (131) Теперь понятно. ТС'у надо разведчиком работать :).     | |||
| 136
    
        viktor_vv 23.03.12✎ 14:23 | 
        (135)+ или шпионом, смотря с какой стороны смотреть :).     | |||
| 137
    
        AntiBuh 23.03.12✎ 14:37 | 
        (136) я Наш :)
  было примерно так Процедура сформировать() Док= создатьОбъект("Документ.ПеремещениеТМЦ"); Рег = СоздатьОбъект("Регистр.ПартииНаличие"); ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Номенклатура"); ТЗ.НоваяКолонка("Сумма"); Док.УстановитьФильтр(1,0); Док.ВыбратьДокументы(НачДата, КонДата); Пока Док.ПолучитьДокумент() = 1 Цикл Если Док.Склад.РозничныйСклад+Док.СкладПолучатель.РозничныйСклад = 0 Тогда Продолжить; КонецЕсли; ТЗ.УдалитьСтроки(); Рег.ВыбратьДвиженияДокумента(Док.ТекущийДокмент); Пока Рег.ПолучитьДвижение() = 1 Цикл Если Рег.Приход = 1 Тогда Продолжить; КонецЕсли; ТЗ.НоваяСтрока(); ТЗ.Номенклатура = Рег.Номенклатура; ТЗ.Сумма = Рег.СуммаРуб; КонецЦикла; ТЗ.Свернуть("Номенклатура","Сумма"); Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку()=1 Цикл сч=""; Если ТЗ.НайтиЗначение(Док.Номенклатура,Сч,"Номенклатура")=1 Тогда Док.Сумма = ТЗ.ПолучитьтЗначение(сч,"Сумма"); глПересчетТаблЧасти(Док,"Сумма"); КонецЕсли; КонецЦикла; //------ Док. СделатьНеПроведенным(); //------ Док.Записать(); Док.Провести(); КонецЦикла; КонецПроцедуры | |||
| 138
    
        alxxsssar 23.03.12✎ 14:38 | 
        не понимаю как СделатьНеПроведенным() повлияло на изменение суммы в ТЧ. Я тупой наверное     | |||
| 139
    
        Tymoha 23.03.12✎ 14:38 | 
        (133) да дело в том что наиболее вероятный вариант в (131) .. и он абсолютно противоречит варианту в (130) ... в общем, что-то тут не так )))). ну да ладно - проблема решилась и хорошо ... только вот реально: в след раз лучше сначала отладчиком проверяй, а не на 130 постов телепатические навыки ёпрста проверяй )))     | |||
| 140
    
        Tymoha 23.03.12✎ 14:40 | 
        (137) а приведи-ка, мил человек, код Обработки отмены проведения ....     | |||
| 141
    
        Ёпрст гуру 23.03.12✎ 14:49 | 
        (137) забавно, отменяет ли СделатьНеПроведенным все изменения с переменной Док ?
  лень проверять - никогда так не писал, хотя, всё может быть | |||
| 142
    
        AntiBuh 23.03.12✎ 14:50 | 
        (138)вот в том то и фокус
  переставил перед Док.ВыбратьСтроки() и получилось щастье (140) а нет ее | |||
| 143
    
        Ёпрст гуру 23.03.12✎ 14:50 | 
        (142) а зачем ты его распроводишь?     | |||
| 144
    
        AntiBuh 23.03.12✎ 14:52 | 
        (141) если и изменяет то весьма странно, после отмены проведения в самой переменной ничего не изменилось, точнее всё осталось измененным
  и движения сформировались с измененными данными | |||
| 145
    
        viktor_vv 23.03.12✎ 14:53 | 
        (141) У меня тоже была первая мысль об этом.     | |||
| 146
    
        AntiBuh 23.03.12✎ 14:53 | 
        (143) это с первого варианта еще осталось
  время документа изменял | |||
| 147
    
        Tymoha 23.03.12✎ 14:56 | 
        (142) ну так а как же отладчик при записи???     | |||
| 148
    
        Ёпрст гуру 23.03.12✎ 14:57 | 
        (147) если предположение в (141) верно, то отладчик будет всё верно казать.. как и говорил автор     | |||
| 149
    
        Tymoha 23.03.12✎ 15:04 | 
        (148) с каких делов? ведь отмена проведения происходила после заполнения ТЧ, но перед записью ... соответственно - если отмена проведения сбрасывает все итерации с ТЧ, то как жеж отладчик будет правильно казать? ... ниче не понимаю ((((     | |||
| 150
    
        viktor_vv 23.03.12✎ 15:05 | 
        (148) Заинтриговали. Проверил. СделатьНеПроведенным не отменяет изменения.
  Процедура Сформировать() ДокРН = СоздатьОбъект("Документ.РасходнаяНакладная") ; ДокРН.НайтиДокумент(фасРН); Сообщить(ДокРН.ВидРасхода); ДокРН.ВидРасхода = Перечисление.ВидыРасхода.Нал ; Сообщить(ДокРН.ВидРасхода); ДокРН.СделатьНеПроведенным() ; Сообщить(ДокРН.ВидРасхода); ДокРН.Записать(); Сообщить(ДокРН.ВидРасхода); КонецПроцедуры Результат. По счету Нал Нал Нал то есть СделатьНеПроведенным вызывает неявную запись объекта с изменениями. | |||
| 151
    
        viktor_vv 23.03.12✎ 15:11 | 
        А посыпаю голову. В базе все осталось по старому :).     | |||
| 152
    
        viktor_vv 23.03.12✎ 15:15 | 
        Вот так нагляднее будет.
  //******************************************* Процедура Сформировать() ДокРН = СоздатьОбъект("Документ.РасходнаяНакладная") ; ДокРНПроверка = СоздатьОбъект("Документ.РасходнаяНакладная") ; ДокРНПроверкаЗапись = СоздатьОбъект("Документ.РасходнаяНакладная") ; ДокРН.НайтиДокумент(фасРН); Сообщить(ДокРН.ВидРасхода); ДокРН.ВидРасхода = Перечисление.ВидыРасхода.Нал ; Сообщить(ДокРН.ВидРасхода); ДокРН.СделатьНеПроведенным() ; ДокРНПроверка.НайтиДокумент(ДокРН.ТекущийДокумент()); Сообщить(ДокРНПроверка.ВидРасхода); ДокРН.Записать(); ДокРНПроверкаЗапись.НайтиДокумент(ДокРН.ТекущийДокумент()); Сообщить(ДокРНПроверкаЗапись.ВидРасхода); //Сообщить(ДокРН.ВидРасхода); КонецПроцедуры Результат. По счету Нал По счету По счету | |||
| 153
    
        Tymoha 23.03.12✎ 15:17 | 
        (151), (152) - офигеть ... ТС, приношу свои извинения за недоверчивость ))))     | |||
| 154
    
        AntiBuh 23.03.12✎ 15:21 | 
        секретная недокументированная фича 1С :)     | |||
| 155
    
        alxxsssar 23.03.12✎ 15:26 | 
        вот веть пиляха муха     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |