К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

странное поведение 1с - не очищает движения регистров с первого раза

Гость
0 - 22.02.2013 - 08:53
Хочу в документе возвратОтПокупателя ( 1с комплексная 7.7 DBF ) сделать одну хитрую штуку. чтобы 1С при проведении документа штатно сделала движения регистров остатки, партии, потом я их "перехватываю" в момент формирования проводок, и беру оттуда суммы чтобы сделать немного другие проводки ( суть - понадобилось чтобы возврат сначала на транзит счет бух операцию делал ) . потом я хочу эти движения убрать ! все получается, но есть один глюк. - движения регистра убираются, если документ провести второй раз. то есть первый раз провожу - движения регистра остаются ! второй раз нажимаю "провести" - все - они убираются . очищение делаю так - в самом конце процедуры ОбработкаПроведения :

ОчиститьДвижения("Регистр.ОстаткиТМЦ");
ОчиститьДвижения("Регистр.ПартииНаличие");



Гость
1 - 22.02.2013 - 10:27
Нормальные герои всегда идут в обход? Отредактировать шаблон проводок в предприятии для тебя унизительно?
Гость
2 - 22.02.2013 - 10:46
Неа, тут посложней дело, надо если один флажок в документе - то так делать, иначе - по штатному механизму. и само главное - шаблон проводок я отредактирую - но регистры то останутся. а тут надо чтобы проводки были а регистров не было. но проводки пусть штатный механизм комплексной делает - регистры - проводки. потом просто убиваем эти регистры. а проводки я потом подменяю перехватываю в глобальн модуле ( по этому флажку ). но если флажок не установлен - то надо чтобы работал штатный механизм комплексной. то есть - просто лень - хотелось заставить 1сный механизм сработать ( не писать самому списания по ФИО лифо среднее)
3 - 22.02.2013 - 12:06
какой то огород городим!!! оло-ло
Гость
4 - 22.02.2013 - 12:15
нифига не понял, но вот если ты делаешь движения, а потом их читаешь, то это должен быть облом. Все движения надо сразу запоминать в таблицу значений, чтобы их можно было использовать
А чем не устраивает автоматическое удаление движений?
5 - 22.02.2013 - 12:41
Цитата:
Сообщение от USSR Посмотреть сообщение
А чем не устраивает автоматическое удаление движений?
Слишком просто.
Гость
6 - 22.02.2013 - 12:52
Мне надо ( придумал что можно так сделать )- чтобы документ был проведенным, проводки были, но в особом случае - другие( по шаблонам не сделать - надо перехватывать ) , а вот движений регистров чтобы не было. проводки самому рисовать в данном случае неохота - нужно чтобы сработал типовой механизм по шаблонам ( а они базируются на движениях регистров ). автоматическое удаление движений тут не причем вроде.
Гость
7 - 22.02.2013 - 13:07
притом, что это работает очень успешно. только единственный глюк - если документ проводится "впервые" то движения не удаляются. потом, если провести его снова ( нажать кнопку провести ) , или выйти и войти и провести, или обработкой провести, движения регистров - пропадают. вот и спрашиваю что за притча такая ?? почему с первого раза не удаются ? и как бы обойти это чтобы с первого разу удалялось
Гость
8 - 22.02.2013 - 23:58
"по шаблонам не сделать - надо перехватывать", "проводки самому рисовать в данном случае неохота - нужно чтобы сработал типовой механизм по шаблонам"
Какие то противоречивые желания. Ты хочешь все таки типовые проводки, которые будут нанизаны на движения регистров справочником хозопераций, но без этих самых движений регистров? То есть: - движения -> типовой механизм хозопераций -> проводки -> удалить проводки ?
Если так, то почему стали не нужны движения? Может есть другое решение твоего особенного учета? Надо всегда плясать от печки, то есть не от частной проблемы (удалить вдруг ставшие ненужными движения), а от общей задачи (почему вдруг в конфигурации, построенной на регистрах оперативного учета стали не нужны движения регистров, а проводки, основанные на этих движениях - нужны). Согласись, странно? Что это за проводки такие хитрые и движения ненужные?
Гость
9 - 23.02.2013 - 00:29
8-USSR > Ы. Тут интересное кино вырисовывается. Долг покупателя уменьшается как в бухгалтерском, так и в управленческом контуре. Товар проходит только по бух. учету, где-то на "транзитном счете". Интересно, что же это за "транзитный счет"? Уж не 94-й ли?
Гость
10 - 25.02.2013 - 09:47
Да, кино интересное, спрашиваю про одно , спрашивают зачем это нужно. вобщем, еще более подробно : счет не 94. Аудиторы потребовали буха чтобы процесс возврата от покупателя проходил через "транзит". придумали такую схему , в том числе и программную ( может и кривовато конечно ). старый документ ВозвратОтПокупателя - делает проводки на транзитный счет 41.8 ( завели в плане счетов ), то есть товар приходит на этот счет , а по регистрам - он не должен приходить , даже на какой нибудь специально созданный "виртуальный" склад. Затем, когда товар реально приходит на склад - завели в конфигурации новый документ , ПриходИзВозврата. который и делает проводки 41.1 - 41.8 и по регистрам приход . Так вот чтобы работал штатный механизм 1с комплексной по регистрам, я в возврате от покупателя - код оставляю как есть - типовой, в глобальнике перехватываю 41.1 по нему - подменяю проводку на 41.8. а затем - в конце обработкипроведения возвратаотпокупателя - очищаю регистры. так они , очищаются, только когда документ проводится 2 ( ДВА ) раза. про это я спрашивал.
Гость
11 - 25.02.2013 - 10:37
Автор, юзай принудительно алгоритм из ОбработкаУдаленияПроведения().
Скорее всего ситуация возникает при перепроведении документа без отмены проведения, тогда регистры не обнуляются до начала процедуры проведения, а потом переписываются уже на результат.
Гость
12 - 25.02.2013 - 12:06
из процедуры обработки проведения ломать результаты этой процедуры - да вы знаете толк в извращениях.
в (11) правильный ответ
Гость
13 - 25.02.2013 - 12:44
12-BigBro >в обработкеУдаленияПроведения ничего нужного нет. там код по удалению партий товаров. а результаты процедуры я можно сказать не ломаю, а изменяю :). это же документированная функция - ОчиститьДвижения()- сама 1с ее активно применяет в типовых, но в начале проведения. тем более, что у меня случай когда часть проводко все же остается типовыми, то есть надо очистить движения только по товарам ( такая хотелка ). транзит только по товару, а задолженность клиента и по регистру и по провокдам остается.
Гость
14 - 25.02.2013 - 13:27
СпецХ, то, что я описал выше имеет смысл в случае, если надо получить движение по регистру без учета движухи текущего документа, т.е. надо сначала очистить то что он насоздавал, а затем считать (бывает надо забежать по регистрам вперед). В снеговике проще - можно поменять флаг Записывать на Ложь, в 7ке уж лучше вычистить это на уровне алгоритма.
Гость
15 - 25.02.2013 - 13:37
14+ последнее я написал - если нужно вычистить текущее создаваемое при проведении.
Гость
16 - 25.02.2013 - 13:40
14-Том >не подскажешь тогда , как это сделать ( мне как раз и надо забежать по регистрам вперед ). может тогда и не надо этого что я сделал.
Гость
17 - 25.02.2013 - 14:32
16 - вот простой вариант
Процедура ОбработкаПроведения()
ОчиститьДвижения("Регистр.Новый");
//чтоб считалось, что текущий документ уже не проведен

Рег = СоздатьОбъект("Регистр.Новый");

Рег.ВыбратьИтоги();
// - тут можно даты вписать

Пока Рег.ПолучитьИтог()=1 Цикл
Продолжить;
//здесь работаем с результатом
КонецЦикла;
.... и т.д.
Гость
18 - 25.02.2013 - 16:21
17-Том >Спасибо, но это то чего мне как раз не хотелось делать, обрабатывать самому эти итоги...
Гость
19 - 25.02.2013 - 17:08
Ну так, там вроде можно отборов напхать :)))
Можно чёрным запросом работать, но это уже ближе к черной магии
Гость
20 - 26.02.2013 - 03:46
Полный изврат, все сделано наоборот. В чем проблема завести специальный регистр "ТоварвВПути", по нему приходное движение и "надеть"требуемые проводки, затем возвратом все закрывать. И никаких упражнений с регистрами "а ля проктолог"и товар видно в регистре. Тем более, что комплексная - это конфигурация оперативного учета + натянутого на регистры бухгалтерского, а не наоборот
Гость
21 - 26.02.2013 - 09:52
20-USSR >согласен насчет доп регистра - можно по нему доп отчеты делать . - а суммы проводок на транзит откуда брать ? или самому рисовать( не хочется изобретать велосипеды - тем более что типовая все это делает ) , или брать из механизма типовой , как я и сделал. весь смысл - чтобы убрать ( чтобы не было ) движений по остаткам и партиям , а бух проводки были.
Гость
22 - 26.02.2013 - 19:02
(21)Зачем рисовать? достаточно скопировать требуемые записи справочника хозоперации и подставить в него свой регистр
Гость
23 - 25.04.2013 - 09:15
Кстати, докладываю. проблему свою все таки решил как мне надо ( обошел ). давно еще встречал не помню только кто автор идеи. вобщем, при записи документа возврата !!вызывается обработка которая закрывает первоначальный документ, затем я в ней анализирую есть ли требуемые движения регистра, если есть - то в обработке перепровожу изначальный док. ну и в закрытии возврата также прописано немного. Спасибо всем за отклики. могу тут код разместить.


К списку вопросов






Copyright ©, Все права защищены