Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Перепроведение из модуля проведения (число прочтений - 6141 )
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Перепроведение из модуля проведения
05. Октября 2007 :: 07:39
Печать  
Как такое реализовать ? Стандартно нельзя.
Обьясню зачем мне это.
Пишу автозакрытие дебеторки по договорам во взаморасчетах.
Например была ситуация. 9 и 10 числа  соотвественно отразили услуги Контрагента Петя по договору дог1 на сумму 100р , по дог2 на 200р. 12 числа отразили поступление денег от Пети 120 . При проведении поступления договор не указываем программа автоматом их распределит на дог1 100 и дог2 20р, по ФИФО (по дате возникновения долга).
Но например была обнаружена бухг. ошибка и 11 числа нужно отразить поступление еще 100 р. Программа опять их закроет на дог1, и на конец 12 числа там возникнет кредиторка 100р. А по дог2 дебеторка 180р.
Если вручную перепровести документы поступления денег, то все придет в норму,  по дог2 останется дебет 80р.
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #1 - 05. Октября 2007 :: 07:52
Печать  
(0) Если итерактивно  из формы документа то я делал так

ЛокалПерем НадоПровести = 0;
Призаписи()
....
НадоПровести = 1;
....
ПриЗАкрытии()
Если НадоПровести = 1 Тогда
  Твое проведение
КонецЕсли;


Способ 2 ищи в интернете автор ROM двигательРегистров

Способ3
В модуле проведения пишем первого документа пишем
  ОткрытьФормуМодально(ДругойДок,"ОсобоеПроведение")
в том документе
ПриОткрытии()
Если Форма.Параметр = "ОсобоеПроведение" Тогда
   Провести();
   СтатусВозврата(0);
   return;
КонецЕсли;

  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #2 - 05. Октября 2007 :: 08:37
Печать  
Перепровожу естественно неинтерактивно,
двигатель регистров - это универсальный документ с табл. частью http://1c.proclub.ru/modules/mydownloads/singlefile.php?lid=3495&viewmode=flat&t..., автор правда не ROM ?
Варинт 3 как раз работает, но как анализировать результат проведения дока2 в моем случае ?
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #3 - 05. Октября 2007 :: 09:07
Печать  
А может завести глоб. таблицу со списком документов, и при появлении в ней документов из глобальника инициировать перепроведение ? Обработка ожидания - это плохо .., а есть другой путь ?
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #4 - 05. Октября 2007 :: 09:46
Печать  
А может тебе написать робота нажимающего клавиши ?
Робот открывает итерактивно нужный документ
и проводит его
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #5 - 05. Октября 2007 :: 10:05
Печать  
Граница последовательности уже не катит?
  
Наверх
www  
IP записан
 
Boris_1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 129
Зарегистрирован: 29. Января 2007
Re: Перепроведение из модуля проведения
Ответ #6 - 05. Октября 2007 :: 10:27
Печать  
Все можно сделать проще...

Из модуля проведения документа1 делаем такую штуку:
ОткрытьФормуМодально(Документ2,"Перепровести")

В процедуре приОткрытии() документа2 делаем так:

Если Форма.Параметр()="Перепровести" Тогда
  Провести();
  статусВозврата(0);
  возврат;
КонецЕсли
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #7 - 08. Октября 2007 :: 02:05
Печать  
fez писал(а) 05. Октября 2007 :: 10:05:
Граница последовательности уже не катит?

Можно было ввести границу последовательности, думал об этом. но активных пользователей немного 6. Так что захотелось решить без восстановления последовательности, чтобы все было актуально сразу после проведения документа.

Была такая мысль ввести границу последовательности для каждого контрагента, вместо общей, тогда сократилось бы количество документов которое треб-ся перепровести.
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #8 - 08. Октября 2007 :: 02:10
Печать  
Z1 писал(а) 05. Октября 2007 :: 09:46:
А может тебе написать робота нажимающего клавиши ?
Робот открывает итерактивно нужный документ
и проводит его


если алгоритм интерактивного проведения будет отличаться от неинтерактивного это уже плохо.
А робот если я правильно понял будет реализовать логику похожую на логику восстановления последовательности. Тогда уж лучше на проведение из формы повесить

Если Провести() = 1 Тогда

....//алгоритм перепроведения нужных документов
КонецЕсли
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #9 - 08. Октября 2007 :: 21:09
Печать  
Такие финты возникают от нежелания подумать и поменять схему у целом
Сломается все это и вылезет боком...
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #10 - 09. Октября 2007 :: 01:11
Печать  
Цитата:
Такие финты возникают от нежелания подумать и поменять схему у целом
Сломается все это и вылезет боком...


по сути пытаюсь реализовать восстановление хронологической последовательности документов в реальном времени, может кто нибудь делал что нибудь подобное поделитесь соображениями?
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Перепроведение из модуля проведения
Ответ #11 - 09. Октября 2007 :: 08:15
Печать  
ev-kov писал(а) 09. Октября 2007 :: 01:11:
Цитата:
Такие финты возникают от нежелания подумать и поменять схему у целом
Сломается все это и вылезет боком...


по сути пытаюсь реализовать восстановление хронологической последовательности документов в реальном времени, может кто нибудь делал что нибудь подобное поделитесь соображениями?


Насколько я знаю - общепригодного решения нет. Только отдельные наработки для конкретных случаев.
Причем нет ни в одной системе учета.
Самое разумное - ничего не проводить задним числом - исправления делать документом "Сторно".
Впрочем, как показывает опыт, доказывать это также бесполезно.
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #12 - 09. Октября 2007 :: 08:25
Печать  
Вот одна из мыслей пришедшая на тему чем заменить проведение из модуля проведения, можно робота по проведению документов создать, но список доков к перепроведению должен быть общий для всех пользователей, это либо справочник либо документ, справочник удобнее конечно. В обработке ожидания или просто в цикле с методом sleep() делать паузу на опрос на появление новых элементов, при появлении проводить документ, сразу после проведения удалять этот элемент справочника. Покритикуйте пожалуйста.
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #13 - 09. Октября 2007 :: 08:35
Печать  
ОбщийРеквизитДокумента.флПерепровести(Число,1) с отбором.
  
Наверх
ICQ  
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Перепроведение из модуля проведения
Ответ #14 - 09. Октября 2007 :: 08:38
Печать  
dnp писал(а) 09. Октября 2007 :: 08:35:
ОбщийРеквизитДокумента.флПерепровести(Число,1) с отбором.
Если роботу надо провести 1 ставим, провели - ставим 0.  Неплохо, только не натолкнуться бы на блокировку 1sjourn
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать