Имя: Пароль:
1C
1C 7.7
v7: Провести док дважды.
0 koteyka-2
 
25.11.11
21:48
Не могу сообразить, как лучше сделать?
Есть процедура "глРасчет" в глобальнике. Есть документ "Тест". Документ написан не мной. Трабла в следующем: В документе есть процедура "Рассчитать", в ней сначала проводится документ (т.к. в обработке проведения прописано еще куча расчетов), затем выполняется "глРасчет", которая заполняет некоторые колонки табличной части, а при закрытии документа на вопрос "Пере провести" отвечаем ДА и док снова проводится с уже новыми значениями табличной части.
Мне же нужно, чтобы при обработке "Проведение Документов" (в сервисе), делался перерасчет с выполнением процедуры глРасчет. Если прописать обращение к этой процедуре в конце процедуры ОбработкаПроведения, то ничего не выйдет. Чтобы было понятнее накидаю следующее -
Форма документа:
Процедура Расчет()
Провести();
глРасчет();
КонецПроцедуры

Модуль документа:
Процедура ОбработкаПроведения()
РасчитатьОстаток();
РасчитатьПартию();
........
КонецПроцедуры

Как можно выйти из этой ситуации?
1 zak555
 
25.11.11
21:48
укр ?
2 koteyka-2
 
25.11.11
21:49
Да
3 Рэйв
 
25.11.11
21:50
>>которая заполняет некоторые колонки табличной части

Во время провеления?  Заполнняет колонки таб части??


У вас там топор далеко?
4 Рэйв
 
25.11.11
21:50
*проведения
5 koteyka-2
 
25.11.11
21:51
(3) Нет. Проводится, выгружается табл. Часть, дозаполняется, загружается таб. часть, перепроводится при закрытии снова.
6 koteyka-2
 
25.11.11
21:52
Не я писал. переписывать весь док - это задница. А почему так написал программер до меня не в курсе.
7 Рэйв
 
25.11.11
21:53
(5)Криво , очень криво.
8 Рэйв
 
25.11.11
21:54
(5) при ступенчатых проведениях какбэ надо держать флаг состояния
9 Рэйв
 
25.11.11
21:55
и мало того что держать...еще и пипец как непросто обрабатывать
10 koteyka-2
 
25.11.11
21:55
(8) Дело в том, что прописана еще обработка удаления проведения, которая очищает док при отмене проведения, что и происходит при групповом проведении.
11 koteyka-2
 
25.11.11
21:56
Вот процедура из глобальника

Процедура глРассчитатьСмешивания(Конт,Флаг = 0) Экспорт
       Перем СмРасход, СмРег;  
       ТД = Конт.ТекущийДокумент();  
       Сообщить(ТД);
       ТД.Провести();
       СмТЗ = СоздатьОбъект( "ТаблицаЗначений" );
       ТД.ВыгрузитьТабличнуюЧасть( СмТЗ );
       СмТЗ.Заполнить( 0, , , "СуммаУчБезНДС" );
       
       ТД.Себестоимость = 0;
       СмРег = СоздатьОбъект( "Регистр.ПартииТоваров" );
       СмРег.ВыбратьДвиженияДокумента( ТД.ТекущийДокумент() );
       Пока СмРег.ПолучитьДвижение() = 1 Цикл
           Если ПустоеЗначение( СмРег.Фирма ) = 1 Тогда
               Продолжить;
           КонецЕсли;    // ПустоеЗначение( Рег.Фирма ) = 1
           Если СмРег.Расход = 1 Тогда
               ТД.Себестоимость    = ТД.Себестоимость + СмРег.Стоимость;
               Стр = 0;
               Если СмТЗ.НайтиЗначение( СмРег.Товар, Стр, "Товар" ) = 0 Тогда
                   Сообщить( "Какой-то бедлам творится, не должно такого быть... обратитесь к разработчику." );
                   Возврат;
               КонецЕсли;
               СмТЗ.УстановитьЗначение( Стр, "СуммаУчБезНДС", СмТЗ.ПолучитьЗначение( Стр, "СуммаУчБезНДС" ) + СмРег.Стоимость );
           КонецЕсли;    // Рег.Расход = 1
       КонецЦикла;    // Рег.ПолучитьДвижение() = 1
       
       ТД.ЗагрузитьТабличнуюЧасть( СмТЗ );
   
КонецПроцедуры    // Рассчитать
12 koteyka-2
 
25.11.11
21:57
Сообщить - это уже я дописал для теста.
13 koteyka-2
 
25.11.11
21:57
И ТД.Провести тоже (не работет так)
14 koteyka-2
 
25.11.11
21:58
Эти две строки не читать
15 Рэйв
 
25.11.11
21:58
(0)Два варианта.
1. Или ты все сложное  упростишь
2. Или под все сложное будехь изобретать квадротный дерижабль обратного хода на ядерном топливе
16 koteyka-2
 
25.11.11
22:00
По ходу нужно переписыват док? Малой кровью не обойтись?
17 koteyka-2
 
25.11.11
22:02
Дохренища писать. Слишком много завязано на этом доке. И партии, и остатки, и взаиморасчеты, и еще хрень всякая.
18 Рэйв
 
25.11.11
22:03
(17)А ты думала адинесники за просто так  больше топ менеджеров получают?
19 Рэйв
 
25.11.11
22:05
+ думаЛ :-)
20 koteyka-2
 
25.11.11
22:09
(19) Нет не думал, но время не позволяет особо тянуть. Быстрее будет ручками открыть каждый док, пересчитать и пере провести.
21 koteyka-2
 
25.11.11
22:12
А выполнить процедуру внутри модуля формы программно по ходу нельзя, насколько я знаю? Или я ошибаюсь?
22 Рэйв
 
25.11.11
22:12
(20)поверь моему опыту. Иногда именно быстрее и правильнее руками все сделать. Это , если сразу начать, намного экономнее изобретения велосипедов.
А уж про сидения на мисте и вопросов нет:-)
23 koteyka-2
 
25.11.11
22:15
Хотя стоп. Я же могу написать обработку, которая мне программно проведет этот док, затем выполнит процедуру из глобальника, затем снова проведет док. Так ведь? Или не выйдет так?
24 koteyka-2
 
25.11.11
22:16
Просто этот док из группового проведения я уберу, а для него (этого вида) сделаю отдельную обработку.
25 Рэйв
 
25.11.11
22:16
(23)НЕ слушаешь ты что тебе говорят старшие.А жаль...
26 koteyka-2
 
25.11.11
22:18
(23) Я только в чужом коде разбираться сутки буду, а потом еще и переписывать. Этот док не стандартный и слишком много цепляет. Нужно еще будет понять, что куда и от куда.
27 koteyka-2
 
25.11.11
22:19
Проще будет обработкой. Но всё равно спасибо за помощь.
28 Рэйв
 
25.11.11
22:20
(26)Одинесник, который боится разобраться в чужом коде - это ламер, а не одинесник
29 koteyka-2
 
25.11.11
22:21
(28) Не боюсь я. Времени нет. Цех стоит. После разберусь и переделаю. Почему и зашел на форум, думал подскажут варианты попроще.
30 Рэйв
 
25.11.11
22:23
(29)Никто  за тебя код не напишет даже тут. И никто в коде, которого ты не боишься за тебя не разберется..Уж извини.
31 koteyka-2
 
25.11.11
22:24
Ясно. Спс.
32 Рэйв
 
25.11.11
22:24
Цех стоит?..Тогда какого х#я ты тут делаешь???
Иди работать.
33 koteyka-2
 
25.11.11
22:25
Я параллельно и код пишу. Прям как Юлий Цезарь :-)
34 Рэйв
 
25.11.11
22:27
(33)ты себе льстишь.
35 zak555
 
25.11.11
22:27
(2)

1. от кого слова произошло "Украина" ?
2. и в каком году ...
36 koteyka-2
 
25.11.11
22:28
(35) Окраина
37 Рэйв
 
25.11.11
22:28
(35) отсыпишь?:-) Я тоже так хочу
38 Сияющий Асинхраль
 
25.11.11
22:29
(3) в семерке изменение реквизитов при проведении - это в порядке вещей, в частности и поэтому бывшие семерочники к восьмерке тяжко привыкают. Другое дело двукратное проведение - вот это криво.
39 Рэйв
 
25.11.11
22:30
(36)Ты "на окраине" или "в окраине"? :-)
40 Рэйв
 
25.11.11
22:30
как правильно?:)
41 koteyka-2
 
25.11.11
22:31
В
42 zak555
 
25.11.11
22:31
(36) как тогда сформулируешь слово Белоруссия ?
43 zak555
 
25.11.11
22:31
(37) смотря что =)
44 koteyka-2
 
25.11.11
22:32
Чистая Русь
45 syktyk
 
25.11.11
22:32
Сделал так, что док Перемещение, при некоторых условиях, нужно проводить дважды. Причем в первый раз товар уходит со склада, а второй раз - приходит.
46 Рэйв
 
25.11.11
22:33
(41)Ответ неверный. Правильно На окраине
47 koteyka-2
 
25.11.11
22:33
(42) Там что, кроссворд?
48 zak555
 
25.11.11
22:34
Рэйв оттуда ?
49 zak555
 
25.11.11
22:34
(47) мне нужно понять : "кто ты"
что б ответить на (0)
50 Рэйв
 
25.11.11
22:34
(48)нет слава богу..Но в теме
51 zak555
 
25.11.11
22:35
бу га га
52 Рэйв
 
25.11.11
22:35
(51)Да...Я тоже..Это..Га:-)
53 koteyka-2
 
25.11.11
22:35
(49) Я уже решил этот вопрос.
54 zak555
 
25.11.11
22:36
(53) не верю
ибо глРасчет -- ужас, а не реализация
55 Рэйв
 
25.11.11
22:37
(53) шел бы ты...А то щас пьяный zak тебя еще не то спросит:-))
56 zak555
 
25.11.11
22:39
(55) он не пьёт =)
57 Ёпрст
 
25.11.11
22:40
58 Рэйв
 
25.11.11
22:41
(56)Ну значит курит:-)
59 zak555
 
25.11.11
22:41
(58) отказался от этой привычки
60 Рэйв
 
25.11.11
22:42
(59)Ой не ври!. Царь врешь!! (С)
61 Рэйв
 
25.11.11
22:42
*Царю
62 zak555
 
25.11.11
22:55
царь это да